BizTalk Serverの Azure Blob Storage アダプター
BizTalk Server 2020 以降以降では、BizTalk Server と Azure Blob Storage の間でメッセージを送受信できます。
Azure Blob Storage は、大量の非構造化データを格納するために最適化された、クラウド用の Microsoft のオブジェクト ストレージ ソリューションです。 詳細については、「 Azure Blob Storage とは」を参照してください。
前提条件
コンテナーを使用して Azure BLOB ストレージ アカウント を作成します。
Azure Blob Storage にメッセージを送信する
BizTalk Server管理コンソールで、[送信ポート] [新しい>静的一方向送信ポート>] を右クリックします。
送信ポートを作成すると、 いくつかのガイダンスが提供されます。
[名前] を入力します。 [ トランスポート] で、[ 種類 ] を [AzureBlobStorage] に設定し、[構成] を選択 します。
Azure アカウントのプロパティを構成します。
ヒント
アダプター構成ウィンドウでは、Azure サブスクリプションにサインインした後、Azure リソースを自動的に設定できます。 これにより、構成が簡単になります。 Azure サブスクリプションへのサインインはオプトナルです。
- サインイン: Azure アカウントにサインインします。
- サブスクリプション: Azure ストレージ アカウントを持つサブスクリプションを選択します。
- リソース グループ: Azure ストレージ アカウントを持つリソース グループを選択します。
[全般] プロパティを構成します。
ストレージ認証: 認証方法を選択します。
- Shared Access Signature は既定で選択されています。 [接続文字列] フィールドに Shared Access Signature 接続文字列を入力する必要があります。
- アクセス キーを使用する場合は、ストレージ アカウントのコレクションが [アカウント] ドロップダウン リストに入力されます。 ストレージ アカウントを選択すると、[ 接続文字列 ] フィールドにプライマリ アクセス キー ( key1 とも呼ばれます) が自動的に入力されます。
次のリンクは、シナリオに適した認証方法を決定するのに役立つ適切なリソースです。
BLOB コンテナー名: ドロップダウン リストから BLOB コンテナーの名前を選択します。 接続文字列を入力 すると、一 覧が自動的に設定されます。
BLOB 名: アダプターで使用する BLOB の名前を入力します。 マクロは BLOB 名で使用できます。 使用可能なマクロについては、「 ファイル名でのマクロの使用」を参照してください。
BLOB メタデータの名前空間: フィルターとして名前空間を入力します。 プロパティの名前空間がこのフィールドと一致する場合、メッセージのコンテキスト プロパティは BLOB メタデータに書き込まれます。
完了すると、プロパティは次のようになります。
[詳細] プロパティを構成します。
- BLOB の種類: 使用する BLOB の種類 を入力します。 詳細については、「 BLOB の種類」を参照してください。
- 書き込みモード: 指定された BLOB 名 が既に存在する場合のアダプターの動作を指定するには、この設定を使用します。
- 新規作成: アダプターは常に新しい BLOB の作成を試みます。 同じ名前の BLOB が既に存在する場合、BizTalk メッセージは中断されます。
- 上書き: BLOB 名が既に存在する場合、アダプターは上書きします。 メタデータも上書きされます。
- 追加: BLOB が既に存在する場合、アダプターはメッセージ本文を既存の BLOB に追加します。 メタデータは変更されません。
[OK] を選択して変更を保存します。
送信ポートをテストする
単純なファイル受信ポートと場所を使用して、Azure Blob Storage にメッセージを送信できます。
ファイル アダプターを使用して、 FileReceivePort という名前の受信ポートを作成します。 受信場所内で、 受信フォルダー を に
C:\Temp\In\\
設定し、ファイル マスクを に\*.xml
設定します。Azure Blob Storage 送信ポートのプロパティで、[ フィルター] を に
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 Storage からメッセージを受信する
BizTalk Server管理コンソールで、[受信ポート] [新しい>一方向の受信ポート>] を右クリックします。
受信ポートを作成すると、 いくつかのガイダンスが提供されます。
名前を入力し、[ 受信場所] を選択します。
[ 新規] を選択し、受信場所に 名前を付 けます。 [トランスポート] で、[種類] ドロップダウン リストから [AzureBlobStorage] を選択します。 [構成] をクリックします。
Azure アカウントのプロパティを構成します。
ヒント
送信アダプターと同じ方法で、これは省略可能です。
- サインイン: Azure アカウントにサインインします。
- サブスクリプション: Azure ストレージ アカウントを持つサブスクリプションを選択します。
- リソース グループ: Azure ストレージ アカウントを持つリソース グループを選択します。
[全般] プロパティを構成します。
ストレージ認証: 認証方法を選択します。
- Shared Access Signature は既定で選択されています。 [接続文字列] フィールドに Shared Access Signature 接続文字列を入力する必要があります。
- アクセス キーを使用する場合は、ストレージ アカウントのコレクションが [アカウント] ドロップダウン リストに入力されます。 ストレージ アカウントを選択すると、[ 接続文字列 ] フィールドにプライマリ アクセス キー ( key1 とも呼ばれます) が自動的に入力されます。
次のリンクは、シナリオに適した方法を決定するのに役立つ適切なリソースです。
BLOB コンテナー名: ドロップダウン リストから BLOB コンテナーの名前を選択します。 接続文字列を入力 すると、一 覧が自動的に設定されます。
BLOB 名プレフィックス: 必要に応じてプレフィックスを入力します。 たとえば、 BLOB 名プレフィックスに "order/" が使用されている場合、受信場所は "order" フォルダー内のファイルのみを取得します。
BLOB メタデータの名前空間: カスタム BLOB メタデータからコンテキスト プロパティを作成するアダプターの名前空間を入力します。
メタデータ プロパティの昇格: カスタム BLOB メタデータを昇格するかどうかを選択します。
Note
既定では、Blob Uri、Name、BlobType などのすべての標準 BLOB プロパティは、名前空間を持つ
http://schemas.microsoft.com/BizTalk/Adapter/AzureStorage-properties
BizTalk メッセージのコンテキスト プロパティとして設定されます。完了すると、プロパティは次のようになります。
[詳細] プロパティを構成します。
- ポーリング間隔: ポーリング間隔を入力します。
- バッチあたりの最大メッセージ数: BizTalk に送信するときにアダプターがバッチ処理するメッセージの数を入力します。
- [並列ダウンロード]: 並列でダウンロードできる BLOB の最大数を入力します。
- エラーしきい値: エラーしきい値を入力します。 受信場所がこのエラー数に達すると、受信場所は無効になります。
[OK] を選択して変更を保存します。
受信設定をテストする
単純なファイル送信ポートを使用して、Azure Blob Storage からメッセージを受信できます。
- ファイル アダプターを使用して送信ポートを作成します。 送信ポートのプロパティ内で、 Destination フォルダー を に
C:\Temp\Out\\
設定し、 と [ファイル名] を に%MessageID%.xml
設定します。 - [ファイル送信ポート] プロパティで、[ フィルター] を に
BTS.ReceivePortName == BlobReceivePort
設定します。 - BlobReceivePort という名前の受信ポートを作成し、Azure Blob Storage の受信場所を作成します。 起動します。
- Azure portal内の BLOB コンテナーにファイルをアップロードします。 アダプターで構成した一致するプレフィックスに注意してください。 宛先フォルダー (c:\temp\out) 内のメッセージを探します。
重要
Azure Blob Storage 受信アダプターは、BizTalk MessageBox データベースに送信された後、BLOB を削除します。
Azure Blob Storage アダプターの高可用性
Azure Blob Storage 受信アダプターでは、高可用性がサポートされています。 同じ Azure Blob Storage アダプター受信ハンドラーに複数のホスト インスタンスを追加して、同じ BLOB コンテナーから同時に受信できます。 BLOB リースは、同じ BLOB が複数のホスト インスタンスによって受信されないようにするためのロックとして使用されます。 したがって:
- 他のプロセスによってリースされた BLOB は、Azure Blob Storage アダプターによって受信されません。
- Azure Blob Storage アダプターによって受信される BLOB は、リース状態の間は更新できません。
Azure BLOB リースの詳細については、「 BLOB のペシミスティック コンカレンシー」を参照してください。
Azure Blob Storage 送信アダプターは、ほとんどの送信アダプターと同様に、同じ送信ホストに複数のホスト インスタンスを含めることで、送信ホストの高可用性を提供します。