从 BizTalk Server 2020 及更新版本开始,可以在 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 管理控制台中,右键单击“ 接收端口>新建> ”One-Way 接收端口。
创建接收端口 提供了一些指导。
输入名称,然后选择“ 接收位置”。
选择“ 新建”,并 命名 接收位置。 在传输中,从“类型”下拉列表中选择 AzureBlobStorage。 选择配置。
配置 Azure 帐户 属性:
小窍门
与发送适配器类似,这是可选的。
- 登录:登录到 Azure 帐户。
- 订阅:选择具有 Azure 存储帐户的订阅。
- 资源组:选择具有 Azure 存储帐户的资源组。
配置 常规 属性:
存储身份验证:选择身份验证方法:
- 默认情况下,已选择共享访问签名。 必须在 “连接字符串 ”字段中输入共享访问签名连接字符串。
- 如果使用 访问密钥,则会在 “帐户 ”下拉列表中填充存储帐户的集合。 选择存储帐户后, 连接字符串 字段会自动填充主访问密钥,也称为 key1。
以下链接是很好的资源,可帮助你确定适合你的方案:
Blob 容器名称:从下拉列表中选择 Blob 容器的名称。 输入 连接字符串 后,会自动填充列表。
Blob 名称前缀:输入一个前缀(如果适用)。 例如,如果“order/”用于 Blob 名称前缀,则接收位置仅接收“order”文件夹中的文件。
Blob 元数据的命名空间:输入适配器的命名空间,以便从自定义 Blob 元数据创建上下文属性。
推广元数据属性:选择是否推广自定义 Blob 元数据。
注释
默认情况下,所有标准 Blob 属性(如 Blob Uri、名称和 BlobType)都设置为包含
http://schemas.microsoft.com/BizTalk/Adapter/AzureStorage-properties
命名空间的 BizTalk 消息的上下文属性。完成后,属性如下所示:
配置 高级 属性:
- 轮询间隔:输入轮询间隔。
- 每个批处理的最大消息数:输入提交到 BizTalk 时适配器批处理的消息数。
- 并行下载:输入允许并行下载的最大 Blob 数。
- 错误阈值:输入错误阈值。 当接收位置出现指定数量的错误时,将停用该接收位置。
选择“确定”,保存所做更改。
测试接收设置
可以使用简单的文件发送端口从 Azure Blob 存储接收消息。
- 使用文件适配器创建发送端口。 在发送端口属性中,将 目标文件夹 设置为
C:\Temp\Out\\
,并将 文件名 设置为%MessageID%.xml
。 - 在文件发送端口属性中,将 筛选器 设置为
BTS.ReceivePortName == BlobReceivePort
。 - 创建名为 BlobReceivePort 的接收端口,并创建 Azure Blob 存储接收位置。 启动它。
- 将文件上传到 Azure 门户中的 Blob 容器。 请注意适配器中配置的匹配前缀。 在目标文件夹中查找邮件(c:\temp\out)。
重要
Azure Blob 存储接收适配器在提交到 BizTalk MessageBox 数据库后删除该 Blob。
Azure Blob 存储适配器的高可用性
Azure Blob 存储接收适配器支持高可用性。 可以在同一 Azure Blob 存储适配器接收处理程序中添加多个主机实例,以便同时从同一 Blob 容器接收。 Blob 租赁用作锁,以避免多个主机实例接收相同的 Blob。 因此:
- Azure Blob 存储适配器不会收到由其他进程租用的 Blob。
- Azure Blob 存储适配器接收的 Blob 在处于租用状态时无法更新。
有关 Azure Blob 租用的详细信息,请参阅 Blob 的悲观并发。
Azure Blob 存储发送适配器(与大多数发送适配器一样),通过在同一发送主机中具有多个主机实例,为发送主机提供高可用性。