BizTalk Server 中的 Azure Blob 存储适配器

从 2020 BizTalk Server 及更新版本开始,可以在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 元数据。

    完成后,属性将如下所示:

    Azure blob 存储发送适配器 BizTalk Server 中的常规属性

  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管理控制台中,右键单击“接收端口>”“新建>单向接收端口”。

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

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

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

  4. 配置 Azure 帐户 属性:

    提示

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

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

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

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

      以下链接是有助于确定哪种方案适合你的方案的良好资源:

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

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

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

    • 提升元数据属性:选择是否升级自定义 Blob 元数据。

    注意

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

    完成后,属性将如下所示:

    Azure Blob 存储接收适配器 BizTalk Server 中的常规属性

  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 存储接收适配器在 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 中的适配器