具有输出绑定到队列的 Http 触发功能

2024-01-08

我在.Net5 中有一个http 触发函数,隔离函数。

我很难让输出绑定适用于此 https 函数。

https 函数检索对象列表。这些对象需要作为单独的消息添加到队列中。

[FunctionName("TestQueueOutput")]
[return: Queue("myqueue-items", Connection = "AzureWebJobsStorage")]    
public async Task<HttpResponseData> RunAsync([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestData req,          
            FunctionContext context)
{
    HttpResponseData okResponse = null; 
    okResponse = req.CreateResponse(System.Net.HttpStatusCode.OK);     

    // List of Objects
    var _list= await _repo.Get();
    await okResponse.WriteAsJsonAsync(_list);
    return okResponse;       
}

当我运行该函数时,http 响应可以看到该列表,但 Azure 中定义的队列中没有任何内容。

我进一步按照以下文章将输出绑定添加到 Http 触发器。

https://learn.microsoft.com/en-us/azure/azure-functions/functions-add-output-binding-storage-queue-vs?tabs=in-process https://learn.microsoft.com/en-us/azure/azure-functions/functions-add-output-binding-storage-queue-vs?tabs=in-process

当我为独立进程添加多响应类、QueueOutput 的输出绑定时,该函数为其提供红色波浪线。找不到正确的块包来修复它。

我花了无数的时间来将列表项作为消息添加到队列中。

我这样做对吗?任何指导将不胜感激

更新#1: 当我添加MultiResponse类,我不知道如何解决QueueOutput问题如下图所示:


您需要注意以下几点。其一,您期望返回HttpResponseData,但也有一个return绑定设置。并且,作为HttpResponseData预计,你会返回一个HttpResponse。但是returns绑定正在尝试将其转换为队列消息。并且消息信息似乎被写入响应正文,这不是它应该如何工作的。

根据您链接的文章,请尝试以下操作:

  1. 将一个类添加到您的项目中,并调用它MultiRepsonse
  2. 实施MultiResponse类如下
  3. Use the MultiResponse您的函数中的类如下所示

这实现了 MultiResponse,告诉函数使用它并使您能够返回HttpResonse将消息写入队列时。请注意:下面是浏览器编写的、未经验证的代码。

多响应.cs

public class MultiResponse
{
    [QueueOutput("myqueue-items",Connection = "AzureWebJobsStorage")]
    public string[] Messages { get; set; }

    public HttpResponseData HttpResponse { get; set; }
}

测试队列输出.cs

[FunctionName("TestQueueOutput")]
public async Task<MultiResponse> RunAsync(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestData req,
    FunctionContext context)
{
    var response = new MultiResponse();
    response.HttpResponse = req.CreateResponse(HttpStatusCode.OK);

    var _list = await _repo.Get();
    response.Messages = new string[_list.Count];
    foreach (var item in _list)
    {
        // Add the item to the list
    }

    return response;       
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有输出绑定到队列的 Http 触发功能 的相关文章

随机推荐

  • 有效使用reinterpret_cast?

    根据经验 以下工作 gcc 和 VC 但它是有效且可移植的代码吗 typedef struct int w 2 A struct B int blah 2 void my func B b using namespace std cout
  • Keras 使用 tf.data.Dataset 预测循环内存泄漏,但不使用 numpy 数组

    我在循环 Keras 模型时遇到内存泄漏和性能下降predict使用时的功能tf data Dataset为模型提供数据 但在使用 numpy 数组提供数据时则不然 有谁了解造成此问题的原因和 或如何解决该问题 最小可重现代码片段 复制 粘
  • 根据 WooCommerce 中的付款方式提高购物车商品价格

    我想根据所选的支付网关为购物车商品价格添加百分比值 我面临的问题是产品价格的变化没有更新产品价格 最初选择的价格始终显示 我怎样才能得到相应的改变后的价格 到目前为止我的代码 Set custom cart item price funct
  • 根据不同列中的值重复行

    我有一个交易数据框 每行代表两个项目的交易 可以将其想象为 2 个活动门票或其他东西的交易 我想根据销售数量复制每一行 这是示例代码 dictionary of transactions d 1 20 NYC 2 2 30 NYC 2 3
  • Gradle 构建找不到包“java.net.http”

    我已经在 Intellij 中建立了一个 Java 项目 当我在 Intellij 中构建我的项目时 一切正常 但是当我尝试使用命令行构建它时gradle build在项目目录中 Gradle 抱怨找不到 java net http 包 这
  • 使用 javascript 从数组中删除重复的对象

    我试图找出一种有效的方法来删除数组中重复的对象 并寻找最有效的答案 我环顾互联网 一切似乎都在使用原始数据 或者对于大型数组来说不可扩展 这是我当前的实现 可以改进并且希望尝试避免标签 Test prototype unique funct
  • 使用 Spring 和 Hibernate 的嵌套事务

    在我的应用程序中 有多个步骤 其中许多提交将通过多种方法按顺序进行 例子 A gt B gt C gt D gt E gt F gt G A 调用 B B 调用 C 然后 B 调用 D D 调用 E 依此类推 所有这些方法都有一些数据库操作
  • T-SQL 条件排序依据

    我正在尝试编写一个存储过程 它返回一个对象列表 其中包含用户选择的排序顺序和排序方向并作为 sql 参数传入 假设我有一个包含以下列的产品表 product id int name varchar value int created dat
  • 为什么这个 Javascript DOM 代码只能在 FF 上运行,而不能在 IE 上运行?

    create an instance of the XML parser if window ActiveXObject Checking if the browser is IE xmlDoc new ActiveXObject Micr
  • 为什么 innerHTML 返回“未定义”?

    我试图捕捉这个 div 中的 值 它是可编辑的 div class editable div Hey div 我想我可以通过 JavaScript 简单地做到这一点 var changedText editable div innerHtm
  • Iphone Textview 不调用 TouchesBegan

    我有一个文本字段 当我触摸屏幕上的其他位置时 通过我的 TouchesBegan 函数并辞职 等等 它会隐藏键盘 但是当我触摸 Textview 时 TouchesBegan 不会被调用 键盘也不会隐藏 有没有办法调用 TouchesBeg
  • F# 记录类型的序列化

    我知道如何使用可变对象在 F 中序列化 但是有没有办法使用 XmlSerializer 或 DataContractSerializer 使用记录类型进行序列化 反序列化 看起来有一种方法可以使用 KnownType 属性为有区别的联合执行
  • 随机密码生成器上的 OpenMP 多线程

    我正在尝试使用集成到 Visual Studio 2010 中的 OpenMP 多线程来制作快速密码生成器 假设我有一个基本的字符串生成器 它可以从字符串中随机提取字符 srand time 0 for i 0 i lt length i
  • PHP - 生成给定字符的所有可能组合

    Update 是的 我知道不建议将所有内容存储在单个数组中 我一次添加了 5000 个组合的限制 但出现了一个新问题 我可以得到前 5000 个组合 但我想不出任何东西可以生成其余的组合 5001 到 10000 10001 到 15000
  • 在 Spark scala 中将行转换为地图

    我有数据框中的一行 我想将其转换为 Map String Any 将列名称映射到该列的行中的值 有简单的方法吗 我是为字符串值做的 比如 def rowToMap row Row Map String String row schema f
  • 在程序重新启动之间保存状态

    如何声明一个可以永远保存刺痛的变量 我的意思是 如果用户关闭并重新启动程序 该字符串值不会丢失 如何才能做到这一点 有多种不同的方法来存储应用程序的状态 该方法实际上取决于您存储的数据类型和其他要求 Options Use the Sett
  • stanford corenlp,分割句子,缩写例外

    斯坦福 Corenlp 中有指定缩写的选项吗 例如句子中 The reason pt stayed at home was to rest pt 是病人的缩写 corenlp 错误地将其分成两个句子 我想知道如何将缩写列表传递给斯坦福大学的
  • 将 MAC 地址字节数组格式化为字符串

    我正在使用此代码来查找机器的 MAC 地址 此代码直接打印 MAC 地址 但我想将其作为字符串返回 我完全困惑了 请帮忙 try InetAddress add InetAddress getByName 10 123 96 102 Net
  • Asp.net core blazor 与 .net core mvc with razor

    使用 razor 与 blazor 之间的架构差异是什么 文档建议我在使用 blazor 时必须编写一个 Web Api 是否仍然可以像传统 razor 一样传递模型对象 0 带有视觉解释的视频 我决定制作一个视频 因为有人问了有关 Bla
  • 具有输出绑定到队列的 Http 触发功能

    我在 Net5 中有一个http 触发函数 隔离函数 我很难让输出绑定适用于此 https 函数 https 函数检索对象列表 这些对象需要作为单独的消息添加到队列中 FunctionName TestQueueOutput return