BizTalk Server 中的 Azure Blob 存储适配器
从 2020 BizTalk Server 及更新版本开始,可以在BizTalk Server和 Azure Blob 存储之间发送和接收消息。
Azure Blob 存储是 Microsoft 针对云的对象存储解决方案,针对存储大量非结构化数据进行了优化。 有关详细信息,请参阅 什么是 Azure Blob 存储?。
必备条件
使用容器创建 Azure Blob 存储帐户 。
将消息发送到 Azure Blob 存储
在BizTalk Server管理控制台中,右键单击“发送端口>”“新建>静态单向发送端口”。
创建发送端口 提供了一些指导。
输入“名称”。 在 “传输”中,将 “类型 ”设置为 “AzureBlobStorage”,然后选择“ 配置”。
配置 Azure 帐户 属性。
提示
适配器配置窗口可以在登录到 Azure 订阅后自动填充 Azure 资源。 这样,配置就更容易了。 登录到 Azure 订阅是可选择的。
- 登录:登录到 Azure 帐户。
- 订阅:选择具有 Azure 存储帐户的订阅。
- 资源组:选择具有 Azure 存储帐户的资源组。
配置 “常规 ”属性:
存储身份验证:选择身份验证方法:
- 默认选择共享访问签名。 必须在“连接字符串”字段中输入共享访问签名连接字符串。
- 如果使用 访问密钥,则会在“ 帐户 ”下拉列表中填充存储帐户集合。 选择存储帐户后, “连接字符串 ”字段将自动填充主访问密钥(也称为 key1)。
以下链接是可帮助确定哪种身份验证方法适合方案的良好资源:
Blob 容器名称:从下拉列表中选择 Blob 容器的名称。 输入 连接字符串 后,将自动填充列表。
Blob 名称:输入适配器要使用的 Blob 的名称。 可以在 Blob 名称中使用宏。 有关可用宏,请参阅 在文件名中使用宏。
Blob 元数据的命名空间:输入命名空间作为筛选器。 如果属性的命名空间与此字段匹配,则消息的上下文属性将写入 Blob 元数据。
完成后,属性将如下所示:
配置 高级 属性:
- Blob 类型:输入要使用的 Blob 类型 。 有关详细信息,请参阅 Blob 类型。
- 写入模式:当给定 的 Blob 名称 已存在时,使用此设置指定适配器行为。
- 新建:适配器始终尝试创建新 Blob。 如果已存在同名的 Blob,则 BizTalk 消息将挂起。
- 覆盖:如果 Blob 名称已存在,适配器将覆盖。 元数据也会被覆盖。
- 追加:如果 Blob 已存在,适配器会将消息正文追加到现有 Blob。 元数据不会更改。
选择“确定”,保存所做更改。
测试发送端口
可以使用简单的文件接收端口和位置将消息发送到 Azure Blob 存储。
使用文件适配器创建名为 FileReceivePort 的接收端口。 在接收位置中,将 “接收”文件夹 设置为
C:\Temp\In\\
,并将文件掩码设置为\*.xml
。在 Azure Blob 存储发送端口属性中,将 “筛选器” 设置为
BTS.ReceivePortName == FileReceivePort
。将以下内容粘贴到文本编辑器中,并将文件另存为 AzureBlobStorageMessage.xml。 此文件是示例消息。
<Data> <DataID>DataID_0</DataID> <DataDetails>DataDetails_0</DataDetails> </Data>
启动文件接收位置和 Azure Blob 存储发送端口。
将 AzureBlobStorageMessage.xml 示例邮件复制到接收文件夹,例如
C:\Temp\In\
。 发送端口将 XML 文件发送到 Azure Blob 存储。 通过查看 Azure 存储容器并查看新创建或更新的文件进行确认。
从 Azure Blob 存储接收消息
在BizTalk Server管理控制台中,右键单击“接收端口>”“新建>单向接收端口”。
创建接收端口 提供了一些指导。
输入名称,然后选择“ 接收位置”。
选择“ 新建”,并 命名 接收位置。 在“传输”中,从“类型”下拉列表中选择“AzureBlobStorage”。 选择“配置” 。
配置 Azure 帐户 属性:
提示
与发送适配器类似,这是可选的。
- 登录:登录到 Azure 帐户。
- 订阅:选择具有 Azure 存储帐户的订阅。
- 资源组:选择具有 Azure 存储帐户的资源组。
配置 “常规 ”属性:
存储身份验证:选择身份验证方法:
- 默认选择共享访问签名。 必须在“连接字符串”字段中输入共享访问签名连接字符串。
- 如果使用 访问密钥,则会在“ 帐户 ”下拉列表中填充存储帐户集合。 选择存储帐户后, “连接字符串 ”字段将自动填充主访问密钥(也称为 key1)。
以下链接是有助于确定哪种方案适合你的方案的良好资源:
Blob 容器名称:从下拉列表中选择 Blob 容器的名称。 输入 连接字符串 后,将自动填充列表。
Blob 名称前缀:输入前缀(如果适用)。 例如,如果将“order/”用于 Blob 名称前缀,则接收位置仅选取“order”文件夹中的文件。
Blob 元数据的命名空间:输入适配器的命名空间,以便从自定义 Blob 元数据创建上下文属性。
提升元数据属性:选择是否升级自定义 Blob 元数据。
注意
默认情况下,所有标准 Blob 属性(如 Blob Uri、Name 和 BlobType)都设置为具有 命名空间的 BizTalk 消息的
http://schemas.microsoft.com/BizTalk/Adapter/AzureStorage-properties
上下文属性。完成后,属性将如下所示:
配置 高级 属性:
- 轮询间隔:输入轮询间隔。
- 每个批的最大消息数:输入适配器在提交到 BizTalk 时批处理的消息数。
- 并行下载:输入允许并行下载的最大 Blob 数。
- 错误阈值:输入错误阈值。 当接收位置达到此数量的错误时,将禁用接收位置。
选择“确定”,保存所做更改。
测试接收设置
可以使用简单的文件发送端口从 Azure Blob 存储接收消息。
- 使用文件适配器创建发送端口。 在发送端口属性中,将 “目标”文件夹 设置为
C:\Temp\Out\\
,并将 和 “文件名” 设置为%MessageID%.xml
。 - 在“文件发送端口属性”中,将 “筛选器” 设置为
BTS.ReceivePortName == BlobReceivePort
。 - 创建名为 BlobReceivePort 的接收端口,并创建 Azure Blob 存储接收位置。 启动它。
- 将文件上传到Azure 门户中的 blob 容器。 请注意在适配器中配置的匹配前缀。 在目标文件夹中查找 (c:\temp\out) 的邮件。
重要
Azure Blob 存储接收适配器在 Blob 提交到 BizTalk MessageBox 数据库后删除该 Blob。
Azure Blob 存储适配器的高可用性
Azure Blob 存储接收适配器支持高可用性。 可以在同一 Azure Blob 存储适配器接收处理程序中添加多个主机实例,以便同时从同一 Blob 容器接收。 Blob 租赁用作锁,以避免多个主机实例接收相同的 Blob。 因此:
- Azure Blob 存储适配器不会接收由其他进程租用的 Blob。
- Azure Blob 存储适配器接收的 Blob 在处于租用状态时无法更新。
有关 Azure Blob 租赁的详细信息,请参阅 blob 的悲观并发。
与大多数发送适配器一样,Azure Blob 存储发送适配器在同一个发送主机中具有多个主机实例,从而为发送主机提供高可用性。