Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Functions 通过触发器和绑定与 Azure 服务总线集成。 与服务总线集成后,你可以构建响应和发送队列或主题消息的函数。
你安装的扩展 NuGet 包取决于你在函数应用中使用的 C# 模式:
函数在独立的 C# 工作进程中执行。 若要了解详细信息,请参阅有关在独立工作进程中运行 C# Azure Functions 的指南。
通过安装此 NuGet 包将该扩展添加到你的项目。
扩展的功能因扩展版本而异:
此版本引入了使用标识而不是机密进行连接的功能。 有关使用托管标识配置函数应用的教程,请参阅使用基于标识的连接创建函数应用教程。
此版本允许绑定到 Azure.Messaging.ServiceBus 中的类型。
此版本支持通过 .NET Aspire 集成配置触发器和绑定。
通过安装 NuGet 包版本 5.x 将该扩展添加到你的项目。
服务总线绑定是在 host.json 项目文件中指定的扩展捆绑包的一部分。 如果尚未安装捆绑包,你可能需要修改此捆绑包才能更改绑定的版本。 若要了解详细信息,请参阅扩展捆绑包。
此版本引入了使用标识而不是机密进行连接的功能。 有关使用托管标识配置函数应用的教程,请参阅使用基于标识的连接创建函数应用教程。
可以通过在 host.json
文件中添加或替换以下代码,从扩展捆绑包 v3 添加该扩展的这一版本:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
若要了解详细信息,请参阅更新扩展。
.NET 支持的绑定类型取决于扩展版本和 C# 执行模式,可以是以下类型之一:
请选择一个版本来查看模式和版本的绑定类型详细信息。
独立工作进程支持下表所示的参数类型。
服务总线触发器
如果希望函数处理单条消息,服务总线触发器可以绑定到以下类型:
类型 | DESCRIPTION |
---|---|
string |
字符串格式的消息。 当消息为简单文本时使用。 |
byte[] |
消息的字节数。 |
JSON 可序列化类型 | 当事件包含 JSON 数据时,Functions 会尝试将 JSON 数据反序列化为普通的旧 CLR 对象 (POCO) 类型。 |
ServiceBusReceivedMessage |
(预览版1) 消息对象。 |
如果希望函数处理一批消息,服务总线触发器可以绑定到以下类型:
类型 | DESCRIPTION |
---|---|
T[] ,其中 T 是单消息类型之一 |
批处理中的事件数组。 每个条目表示一个事件。 |
独立进程模型尚不支持服务总线触发器的消息解决方案。
1 若要使用这些类型,需要引用 Microsoft.Azure.Functions.Worker.Extensions.ServiceBus 5.10.0-preview2 或更高版本以及 SDK 类型绑定的常见依赖项。
服务总线输出绑定
如果希望函数写入单个消息,服务总线输出绑定可以绑定到以下类型:
类型 | DESCRIPTION |
---|---|
string |
字符串格式的消息。 当消息为简单文本时使用。 |
byte[] |
消息的字节数。 |
JSON 可序列化类型 | 表示消息的对象。 函数尝试将普通旧 CLR 对象 (POCO) 类型序列化为 JSON 数据。 |
如果希望函数写入多个消息,服务总线输出绑定可以绑定到以下类型:
类型 | DESCRIPTION |
---|---|
T[] ,其中 T 是单消息类型之一 |
包含多个消息的数组。 每个条目表示一个消息。 |
对于其他输出方案,请直接创建和使用 Azure.Messaging.ServiceBus 中的类型。
本部分介绍可用于此绑定的配置设置,具体取决于运行时和扩展版本。
{
"version": "2.0",
"extensions": {
"serviceBus": {
"clientRetryOptions":{
"mode": "exponential",
"tryTimeout": "00:01:00",
"delay": "00:00:00.80",
"maxDelay": "00:01:00",
"maxRetries": 3
},
"prefetchCount": 0,
"transportType": "amqpWebSockets",
"webProxy": "https://proxyserver:8080",
"autoCompleteMessages": true,
"maxAutoLockRenewalDuration": "00:05:00",
"maxConcurrentCalls": 16,
"maxConcurrentSessions": 8,
"maxMessageBatchSize": 1000,
"minMessageBatchSize": 1,
"maxBatchWaitTime": "00:00:30",
"sessionIdleTimeout": "00:01:00",
"enableCrossEntityTransactions": false
}
}
}
clientRetryOptions
设置仅适用于与服务总线服务的交互。 它们不影响函数执行的重试。 有关详细信息,请参阅重试。
1 使用 minMessageBatchSize
和 maxBatchWaitTime
需要 v5.10.0 或更高版本的 Microsoft.Azure.WebJobs.Extensions.ServiceBus
包。