azure - 在使用服务总线触发器在 Azure Functions 上进行本地测试时提供 UserProperties

标签 azure azure-functions azure-functions-runtime

当使用服务总线绑定(bind)在本地开发 Azure Functions 时,可以使用 HTTP 请求向 http://localhost:{port}/admin/functions/{function_name} 发送测试函数的请求。
(参见 https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local 处的非 HTTP 触发函数)。

在 HTTP 请求的正文中,可以发送以下内容来填充服务总线消息的正文:

{
    "input": "<trigger_input>"
}

绑定(bind)到方法中的 message.Body 属性:
例如
public class TestServiceBusTrigger
    {
        [FunctionName("test-servicebus-trigger")]
        public static void ProcessQueueMessage([ServiceBusTrigger("inputqueue")] Message message, TextWriter logger)
        {
            logger.WriteLine(message.Body);
        }
    }

您如何填充 message.UserProperties在 sample 请求中。

目前使用以下版本:
  • Microsoft.Azure.WebJobs 3.0.0-beta5
  • Microsoft.Azure.WebJobs.ServiceBus 3.0.0-beta5
  • Microsoft.NET.Sdk.Functions 1.0.13
  • Azure Functions 核心工具 2.0.1-beta.31
  • 函数运行时版本: 2.0.11888.0
  • 最佳答案

    正如你提到的文件所说,

    The message body is required to have the following JSON format { "input":"<trigger_input>"}.



    您要实现的是模拟一个包含 UserProperties 字段的消息对象。显然,Json 格式字符串不符合此条件。在我的测试中,整个 trigger_input 始终被识别为消息体。

    通常来说(不使用管理端点),我们可以在触发器中声明额外的参数来接收 metadata .所以我尝试了管理端点,也没有工作。看起来函数 host 只接受以 input 命名的字符串,尽管请求正文中有其他参数。

    所以管理端点似乎是一个死胡同。您可以使用this code sample测试服务总线触发器。

    关于azure - 在使用服务总线触发器在 Azure Functions 上进行本地测试时提供 UserProperties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51249592/

    相关文章:

    java - 来自 saml 响应的 opensaml 3 签名为空

    azure - 如何在host.json 中定义每个函数的超时时间?

    linux - 在 Windows azure 中删除 linux vm 中的数据磁盘返​​回错误

    javascript - 来自 CosmosDB JavaScript 的 Azure 函数更改源

    Azure 函数 : The binding type(s) 'eventHubTrigger' are not registered

    azure - 在消耗模式下运行的 Azure Functions 是否适合大量变化但对时间要求严格的负载?

    c# - Azure 存储模拟器 - 动态配置 CORS 会引发服务器身份验证错误

    c# - 异步编程和 Azure 函数

    c# - 如何正常使服务总线触发Azure功能失败

    azure - 我可以使用位于不同资源组和消耗计划中的 Durable Functions 实现 Azure 函数链吗?