BizTalk Server 中的 Azure Blob 存储适配器

从 BizTalk Server 2020 及更新版本开始,可以在 BizTalk Server 和 Azure Blob 存储之间发送和接收消息。

Azure Blob 存储是云Microsoft的对象存储解决方案,该解决方案针对存储大量非结构化数据进行了优化。 有关详细信息,请参阅什么是 Azure Blob 存储?

先决条件

使用容器创建 Azure Blob 存储帐户

将消息发送到 Azure Blob 存储

  1. 在 BizTalk Server 管理控制台中,右键单击“ 发送端口>新建>静态单向发送端口”。

    创建发送端口 提供了一些指导。

  2. 输入名称。 在 传输中,将 类型 设置为 AzureBlobStorage,然后选择“ 配置”。

  3. 配置 Azure 帐户 属性。

    小窍门

    登录 Azure 订阅后,适配器配置窗口可以自动填充 Azure 资源。 这样,配置就更容易了。 登录 Azure 订阅是可选的。

    • 登录:登录到 Azure 帐户。
    • 订阅:选择具有 Azure 存储帐户的订阅。
    • 资源组:选择具有 Azure 存储帐户的资源组。
  4. 配置 常规 属性:

    • 存储身份验证:选择身份验证方法:

      • 默认情况下,已选择共享访问签名。 必须在 “连接字符串 ”字段中输入共享访问签名连接字符串。
      • 如果使用 访问密钥,则会在 “帐户 ”下拉列表中填充存储帐户的集合。 选择存储帐户后, 连接字符串 字段会自动填充主访问密钥,也称为 key1

      以下链接是很好的资源,可帮助你确定哪种身份验证方法适合你的方案:

    • Blob 容器名称:从下拉列表中选择 Blob 容器的名称。 输入 连接字符串 后,会自动填充列表。

    • Blob 名称:输入适配器要使用的 Blob 的名称。 宏可以用于 Blob 名称。 有关可用宏,请参阅 在文件名中使用宏

    • Blob 元数据的命名空间:输入命名空间作为筛选器。 如果属性的命名空间与此字段匹配,则消息的上下文属性将写入 Blob 元数据。

    完成后,属性如下所示:

    BizTalk Server 中的 Azure Blob 存储发送适配器一般属性

  5. 配置 高级 属性:

    • Blob 类型:输入要使用的 Blob 类型 。 有关详细信息,请参阅 Blob 类型
    • 写入模式:当给定 的 Blob 名称 已存在时,使用此设置指定适配器行为。
      • 新建:适配器始终尝试创建新的 Blob。 如果已存在同名的 Blob,BizTalk 消息会被挂起。
      • 覆盖:如果 Blob 名称已存在,适配器会覆盖。 元数据也会被覆盖。
      • 追加:如果 Blob 已存在,适配器会将消息正文追加到现有 Blob。 元数据不会更改。
  6. 选择“确定”,保存所做更改。

测试发送端口

可以使用简单的文件接收端口和位置将消息发送到 Azure Blob 存储。

  1. 使用文件适配器创建名为 FileReceivePort 的接收端口。 在接收位置中,将 “接收”文件夹 设置为 C:\Temp\In\\,并将文件掩码设置为 \*.xml

  2. 在 Azure Blob 存储发送端口属性中,将 筛选器 设置为 BTS.ReceivePortName == FileReceivePort

  3. 将以下内容粘贴到文本编辑器中,并将该文件另存为 AzureBlobStorageMessage.xml。 此文件是示例消息。

    <Data>
      <DataID>DataID_0</DataID>
      <DataDetails>DataDetails_0</DataDetails>
    </Data>
    
  4. 启动文件接收位置和 Azure Blob 存储发送端口。

  5. AzureBlobStorageMessage.xml 示例邮件复制到接收文件夹中,例如 C:\Temp\In\。 发送端口将 XML 文件发送到 Azure Blob 存储。 通过查看 Azure 存储容器并查看新创建或更新的文件进行确认。

从 Azure Blob 存储接收消息

  1. 在 BizTalk Server 管理控制台中,右键单击“ 接收端口>新建> ”One-Way 接收端口

    创建接收端口 提供了一些指导。

  2. 输入名称,然后选择“ 接收位置”。

  3. 选择“ 新建”,并 命名 接收位置。 在传输中,从“类型”下拉列表中选择 AzureBlobStorage。 选择配置

  4. 配置 Azure 帐户 属性:

    小窍门

    与发送适配器类似,这是可选的。

    • 登录:登录到 Azure 帐户。
    • 订阅:选择具有 Azure 存储帐户的订阅。
    • 资源组:选择具有 Azure 存储帐户的资源组。
  5. 配置 常规 属性:

    • 存储身份验证:选择身份验证方法:

      • 默认情况下,已选择共享访问签名。 必须在 “连接字符串 ”字段中输入共享访问签名连接字符串。
      • 如果使用 访问密钥,则会在 “帐户 ”下拉列表中填充存储帐户的集合。 选择存储帐户后, 连接字符串 字段会自动填充主访问密钥,也称为 key1

      以下链接是很好的资源,可帮助你确定适合你的方案:

    • Blob 容器名称:从下拉列表中选择 Blob 容器的名称。 输入 连接字符串 后,会自动填充列表。

    • Blob 名称前缀:输入一个前缀(如果适用)。 例如,如果“order/”用于 Blob 名称前缀,则接收位置仅接收“order”文件夹中的文件。

    • Blob 元数据的命名空间:输入适配器的命名空间,以便从自定义 Blob 元数据创建上下文属性。

    • 推广元数据属性:选择是否推广自定义 Blob 元数据。

    注释

    默认情况下,所有标准 Blob 属性(如 Blob Uri、名称和 BlobType)都设置为包含 http://schemas.microsoft.com/BizTalk/Adapter/AzureStorage-properties 命名空间的 BizTalk 消息的上下文属性。

    完成后,属性如下所示:

    BizTalk Server 中 Azure Blob 存储接收适配器的一般属性

  6. 配置 高级 属性:

    • 轮询间隔:输入轮询间隔。
    • 每个批处理的最大消息数:输入提交到 BizTalk 时适配器批处理的消息数。
    • 并行下载:输入允许并行下载的最大 Blob 数。
    • 错误阈值:输入错误阈值。 当接收位置出现指定数量的错误时,将停用该接收位置。
  7. 选择“确定”,保存所做更改。

测试接收设置

可以使用简单的文件发送端口从 Azure Blob 存储接收消息。

  1. 使用文件适配器创建发送端口。 在发送端口属性中,将 目标文件夹 设置为 C:\Temp\Out\\,并将 文件名 设置为 %MessageID%.xml
  2. 在文件发送端口属性中,将 筛选器 设置为 BTS.ReceivePortName == BlobReceivePort
  3. 创建名为 BlobReceivePort 的接收端口,并创建 Azure Blob 存储接收位置。 启动它。
  4. 将文件上传到 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 存储发送适配器(与大多数发送适配器一样),通过在同一发送主机中具有多个主机实例,为发送主机提供高可用性。

后续步骤

BizTalk Server 中的适配器