如何使用 C# 编写可在项目出现在 azure 服务总线队列中时触发的 azure 函数?
How to write azure function that can get triggered when an item appears in azure service bus queue using C#?
新的 azure 函数预览包含一些 C# 模板。但是 C# 没有服务总线队列模板。有一个带有服务总线的节点的触发器模板。但仔细检查,它只支持通知中心而不支持服务总线队列。是否有可能编写一个只能在项目出现在 azure 服务总线队列中时触发的 azure 函数?如果现在做不到,近期会不会有这样的模板?
谢谢。
拉古/..
根据 https://azure.microsoft.com/en-us/documentation/articles/functions-reference/,与 SB 没有绑定。
最好的方法是在 UserVoice 上提交您的想法 - https://feedback.azure.com/forums/355860-azure-functions .
更新: 以下步骤和信息仍然有效,但是我们现在在门户中有一个 "ServiceBusQueueTrigger - C#" 模板,因此不再需要解决方法步骤:)
C# 已经支持 ServiceBus,我们只需要为它添加一个模板(我们很快就会添加)。通常,模板只是起点 - 您始终可以通过添加额外的绑定来修改模板,或者从空模板开始构建您自己的函数。
在我们上传模板之前,您可以从 C# 空模板 开始自行完成此工作。例如,您可以在 高级编辑器 的 集成 选项卡上输入如下绑定信息:
{
"bindings": [
{
"type": "serviceBusTrigger",
"name": "message",
"direction": "in",
"queueName": "samples-input",
"connection": "myServiceBus"
}
]
}
确保您的 Function App 具有与 connection
属性 名称匹配的 AppSetting,其中包含您的 ServiceBus 连接字符串。看起来我们目前在 ServiceBus 的连接字符串选择器方面存在一些问题(也将很快修复),但您可以使用 "Function app settings"/"Go to App Service Settings"/"Application Settings" 添加此应用环境。然后就可以使用对应的Function代码了:
using System;
using Microsoft.Azure.WebJobs.Host;
public static void Run(string message, TraceWriter log)
{
log.Verbose($"C# ServiceBus Queue function processed message: {message}");
}
只要有新消息添加到 ServiceBus 队列,就会调用此函数 samples-input
。
新的 azure 函数预览包含一些 C# 模板。但是 C# 没有服务总线队列模板。有一个带有服务总线的节点的触发器模板。但仔细检查,它只支持通知中心而不支持服务总线队列。是否有可能编写一个只能在项目出现在 azure 服务总线队列中时触发的 azure 函数?如果现在做不到,近期会不会有这样的模板?
谢谢。 拉古/..
根据 https://azure.microsoft.com/en-us/documentation/articles/functions-reference/,与 SB 没有绑定。 最好的方法是在 UserVoice 上提交您的想法 - https://feedback.azure.com/forums/355860-azure-functions .
更新: 以下步骤和信息仍然有效,但是我们现在在门户中有一个 "ServiceBusQueueTrigger - C#" 模板,因此不再需要解决方法步骤:)
C# 已经支持 ServiceBus,我们只需要为它添加一个模板(我们很快就会添加)。通常,模板只是起点 - 您始终可以通过添加额外的绑定来修改模板,或者从空模板开始构建您自己的函数。
在我们上传模板之前,您可以从 C# 空模板 开始自行完成此工作。例如,您可以在 高级编辑器 的 集成 选项卡上输入如下绑定信息:
{
"bindings": [
{
"type": "serviceBusTrigger",
"name": "message",
"direction": "in",
"queueName": "samples-input",
"connection": "myServiceBus"
}
]
}
确保您的 Function App 具有与 connection
属性 名称匹配的 AppSetting,其中包含您的 ServiceBus 连接字符串。看起来我们目前在 ServiceBus 的连接字符串选择器方面存在一些问题(也将很快修复),但您可以使用 "Function app settings"/"Go to App Service Settings"/"Application Settings" 添加此应用环境。然后就可以使用对应的Function代码了:
using System;
using Microsoft.Azure.WebJobs.Host;
public static void Run(string message, TraceWriter log)
{
log.Verbose($"C# ServiceBus Queue function processed message: {message}");
}
只要有新消息添加到 ServiceBus 队列,就会调用此函数 samples-input
。