BizTalk Serverにロジック アプリ アダプターをインストールして使用する

BizTalk Serverは、Logic Apps アダプターを使用して Azure ロジック アプリからメッセージを受信するか、Azure ロジック アプリにメッセージを送信します。

Azure では、ロジック アプリを作成します。 このロジック アプリでは、BizTalk コネクタを使用して、BizTalk Serverに作成した受信場所に接続します。 このトピックでは、Azure Logic Apps に関する知識があることを前提としています。 ロジック アプリを初めて使用する場合は、 ロジック アプリについてさらに学習し、 独自のロジック アプリを作成することをお勧めします。

このトピックでは、ロジック アプリから BizTalk Server でメッセージを受信する手順を示します。 別の言い方をすると、ロジック アプリはメッセージをBizTalk Serverに送信します。 受信側では、IIS のアプリケーションを使用して、Azure サービスとの通信を処理します。 BizTalk Serverがオンプレミスの場合は、BizTalk Serverにデータ ゲートウェイもインストールし、Azure にゲートウェイを作成します。

BizTalk Serverが Azure 仮想マシン (VM) にインストールされている場合は、VM を HTTP エンドポイントとして公開するか (URL を取得します)、HTTP エンドポイントとして公開しないことを選択できます。 公開する場合は、ゲートウェイを使用する必要はありません。 ロジック アプリの BizTalk コネクタに URL を入力できます。 VM を公開しない場合 (URL なし)、ゲートウェイを使用する必要があります。 これらの手順については、このトピックで説明します。

また、BizTalk Serverから Azure ロジック アプリにメッセージを送信する方法についても説明します。 別の言い方をすると、ロジック アプリはBizTalk Serverからメッセージを受信します。 このトピックで説明するように、送信側は非常に簡単です。

このトピックでは、Logic Apps アダプターを使用して受信場所と送信ポートを作成します。 LogicApp アダプターは、オンプレミス (ドメインに参加) BizTalk Server、またはBizTalk Server実行されている Azure 仮想マシンで使用できます。

必要条件

  • Azure portalにサインインし、ロジック アプリを作成するための Azure サブスクリプション。
  • 省略可能。 ロジック アプリにテスト メッセージを送信するには、 FiddlerPostman などの HTTP テスト ツールをインストールします。 別のメソッドを使用してロジック アプリにメッセージを送信する場合、これらのツールを使用する必要はありません。

ロジック アプリ アダプターをインストールする

BizTalk Server 2020 以降

BizTalk Server 2020 以降では、ロジック アプリ アダプターがBizTalk Serverインストールに含まれています。

BizTalk Server 2016

  1. BizTalk Serverで、ロジック アプリ アダプターをダウンロードしてインストールします。
  2. インストールする LogicApp Adapter.msi をダブルクリックします。 使用許諾契約書に同意し、[ インストール] を選択します
  3. インストールを完了し、BizTalkServerApplication および BizTalkServerIsolatedHost ホスト インスタンスを再起動します。

インストールすると、次のようになります。

  • LogicApp アダプターが BizTalk 管理に追加されます。

  • 送信ハンドラーが作成され、BizTalkServerApplication ホストが使用されます。

  • 受信ハンドラーは WCF サービスとして作成され、BizTalkServerIsolatedHost ホストを使用します。

  • このフォルダーは LogicApp Adapter BizTalk インストール ディレクトリ内に作成され、Management と ReceiveService の 2 つのサービスが含まれています。

    管理は、データ ゲートウェイを使用してBizTalk Serverに接続するために、ロジック アプリの BizTalk コネクタによって使用されます。 この管理サービスを使用すると、BizTalk Serverはデータ ゲートウェイを使用して Azure ロジック アプリからメッセージを受信できます。 このサービスは、BizTalk の受信側でのみ使用されます。 送信側では使用されません。

    ReceiveService は、受信場所を入力するときに、ロジック アプリの BizTalk コネクタによって使用されます。 ReceiveService は、ロジック アプリからメッセージを送信する役割を担います。 このサービスは、BizTalk の受信側でのみ使用されます。 送信側では使用されません。

ロジック アプリからメッセージを受信する

BizTalk Serverがロジック アプリからメッセージを受信するには、いくつかの手順が必要です。 ここでは、これらの手順を示します。 Azure のユーザー インターフェイスが変更される可能性があるため、一部の手順が記載されているとおりではない可能性があります。

前提条件

NullAdapter とロジック アプリ アダプターの併用 - BizTalk Server 2016 のみ

ロジック アプリ アダプターと NullAdapter をインストールすると、次のエラーが表示されることがあります。

Another adapter with the same OutboundEngineCLSID value already exists

Adapter クラスの GUID は、ロジック アプリ アダプターと NullAdapter で同じです。 両方のアダプターが必要な場合は、次のことができます。

  1. GitHub で NullAdapter ソース コードをダウンロードします
  2. NullSendAdapter.cs クラスの GUID を更新します。
  3. NullAdapter.reg ファイルの OutboundEngineCLSID 値を更新します。
  4. NullAdapter をビルドしてデプロイします。

手順 1: IIS アプリケーションを作成する

IIS アプリケーションでは、Management サービスと ReceiveService サービスが使用されます。

IIS アプリケーションは、新しいアプリケーション プールまたは既存のアプリケーション プールを使用して実行できます。 AppPool の ID には、BizTalk アプリケーション ユーザーグループや BizTalk 分離ホスト ユーザー グループなど、BizTalk サービスを実行するアカウントと同じグループへのメンバーシップが必要です。

ヒント

新しいアプリケーション プールを作成する場合は、既定の .NET CLR バージョンとマネージド パイプラインをそのまま使用します。 BizTalk サービス アカウントと同じ BizTalk グループへのメンバーシップを持つ ID (詳細設定) を選択してください。

管理 IIS アプリケーションを作成する

この IIS アプリケーションの URL は、BizTalk コネクタ (ロジック アプリ内) によって使用され、BizTalk Server上のデータ ゲートウェイを使用します。

BizTalk Server 2020 以降
  1. BizTalk 構成ウィザードを使用して REST API を構成します。 構成に関するヘルプについては、 構成ガイドを参照してください。 REST API の詳細については、「BizTalk REST API リファレンス」を参照してください。
  2. Web ブラウザーを開き、http://localhost/BizTalkManagementService/Schemas に移動します。 スキーマの一覧が表示されるか、または を開く/保存 schemas.jsonするように求められます。 実際の結果は、Web ブラウザーによって異なります。 これらのいずれかが発生しない場合は、REST API の構成をチェックしてください。
BizTalk Server 2016
  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. [既定の Web サイト] を右クリックし、[アプリケーションの追加] をクリックします。 この新しいアプリケーションでは、次の操作を行います。

    1. IISLogicApp など、アプリケーションのエイリアス (名前) を入力します。
    2. アプリケーション プールを選択します。
    3. [物理パス] を にC:\Program Files (x86)\Microsoft BizTalk Server 2016\LogicApp Adapter\Management設定します。
    4. アプリケーション プール ID が認証と承認のテストに合格することを確認するためのテスト設定。
  3. [OK] を選択して変更を保存します。

  4. Web ブラウザーを開き、 などの http://localhost/IISLogicApp/Schemas?api-version=2016-10-26に移動しますhttp://localhost/YourApplicationAlias/schemas?api-version=2016-10-26。 スキーマの一覧が表示されるか、または を開く/保存 schemas.jsonするように求められます。 実際の結果は、Web ブラウザーによって異なります。 これらのいずれかが発生しない場合は、AppPool ID に BizTalk グループのメンバーシップがない可能性があります。

BizTalk ReceiveService IIS アプリケーションを作成する

この IIS アプリケーションの URL は、受信場所を選択するときに (ロジック アプリで) BizTalk コネクタによって使用されます。

  1. インターネット インフォメーション サービス (IIS) マネージャーを開きます。

  2. [既定の Web サイト] を右クリックし、[アプリケーションの追加] をクリックします。 この新しいアプリケーションでは、次の操作を行います。

    1. アプリケーションの エイリアス (名前) ( ReceiveWCFService など) を入力します。

    2. 前の IIS アプリケーションと同じアプリケーション プールを選択します。

    3. 物理パスを次のように設定します。

      • BizTalk Server 2020: C:\Program Files (x86)\Microsoft BizTalk Server\LogicApp Adapter\ReceiveService
      • BizTalk Server 2016: C:\Program Files (x86)\Microsoft BizTalk Server 2016\LogicApp Adapter\ReceiveService
    4. アプリケーション プール ID が認証と承認のテストに合格することを確認するためのテスト設定。

  3. [OK] を選択して変更を保存します。

手順 2: ロジック アプリを作成する

  1. Azure portal で、新しいロジック アプリを作成します。

  2. HTTP 要求の受信時トリガーを追加します。

  3. [BizTalk Server - JSON からメッセージを準備する] アクションを追加します。

  4. 省略可能: [ オンプレミス データ ゲートウェイ経由で接続する] を選択し、次のように入力します。

    プロパティ 説明
    BizTalk Server URL IIS アプリケーション URL に BizTalk Management の完全修飾ドメイン名 (FQDN) を入力します。 たとえば、「http://BizTalkServerName.corp.contoso.com/IISLogicApp/」と入力します。
    認証の種類 [Windows] を選択します。
    ユーザー名 IIS アプリケーション プールの ID を入力します。
    Password IIS アプリケーション プールのパスワードを入力します。
    Gateway 作成したゲートウェイを選択します。

    ヒント

    データ ゲートウェイは、次の場合にのみ必要です。

    • オンプレミスのBizTalk Serverを使用している
    • BizTalk Server Azure 仮想マシンを使用していて、VM が HTTP エンドポイントとして公開されていない (URL なし)
  5. [作成] を選択します

  6. アクションを構成します。 [ 本文] で、HTTP 本文の出力を選択します。 [ スキーマ] で、使用するスキーマを選択します。

    Note

    この手順では、BizTalk のスキーマに精通しており、必要なスキーマを把握していることを前提としています。 不明な場合は、HelloWorld SDK サンプルをデプロイし、その成果物を更新してロジック アプリ アダプターを使用し、そのスキーマとサンプル メッセージを使用します。

  7. 新しいステップを追加し、[BizTalk Server - メッセージの送信] アクションを選択します。 [ 受信場所] で、ドロップダウン リストから URL を選択するか、ReceiveService IIS アプリケーション URL の完全修飾ドメイン名 (FQDN) を入力します。 たとえば、「http://BizTalkServerName.corp.contoso.com/ReceiveWCFService/Service1.svc」と入力します。

    ヒント

    受信場所を作成すると、この正確な URL は、受信場所のトランスポート プロパティにも [パブリック アドレス ] ([全般] タブ) として入力されます。

    [本文] で、前のBizTalk Serverアクションの本文出力を選択します。

  8. 変更内容を保存します。

保存すると、HTTP 要求トリガーによって URL が自動的に作成されます。 この URL をコピーします。 これは 、手順 4: メッセージを送信する (この記事内) で必要です。

手順 3: 受信ポートと受信場所を作成する

注意

独自の受信ポートと受信場所を作成する代わりに、HelloWorld SDK サンプルをデプロイできます。 Logic Apps アダプターを使用するように成果物を更新します。

このセクションでは、独自の成果物を作成する手順を示します。

  1. [BizTalk Server管理] で[BizTalk Server管理]、[BizTalk グループ]、[アプリケーション] の順に展開し、受信場所を実行するアプリケーションを展開します。 たとえば、 BizTalk Application 1 を展開します。

  2. [ 受信ポート] を右選択し、[ 新規] を選択し、[ 一方向の受信ポート] を選択します。

  3. [受信ポート] プロパティに、次のように入力します。

    プロパティ 目的
    名前 受信ポートの名前を入力します。 たとえば、「 LAReceivePort」と入力します
    認証 オプション:
    • 認証なし: 既定値。 認証を無効にします。
    • 認証に失敗した場合にメッセージを削除する: 認証を有効にしますが、認証されていないメッセージを削除します。
    • 認証に失敗した場合はメッセージを保持する: 認証を有効にし、認証されていないメッセージを保持するには、このオプションをクリックします。
    失敗したメッセージをルーティングする 処理に失敗したメッセージをサブスクライブしているアプリケーション (別の受信ポートやオーケストレーション スケジュールなど) にルーティングします。 失敗したメッセージを中断し、否定受信確認 (NACK) を生成するには、このオプションをオフにします。 既定値はオフです。 詳細については、「 受信ポートの失敗したメッセージのルーティングを有効にする方法」を参照してください。
  4. [ 受信場所] を選択し、[新規] を選択 します

  5. 受信場所の [名前] を入力します 。 たとえば、「 LAReceiveLoc」と入力します

  6. [ 種類] で、一覧から [LogicApp ] を選択し、[ 構成] ボタンを選択します。

  7. [ 全般 ] タブで、ロジック アプリのエンドポイント アドレスを構成します。

    プロパティ 目的
    アドレス (URI) 必須。 BizTalk ReceiveService IIS アプリケーション URL (/YourIISApp2Name/Service1.svc) を入力します。 たとえば、「/ReceiveWCFService/Service1.svc」と入力します。
    パブリック アドレス 必須。 「http://<your fully qualified machine name>/YourIISApp2Name/Service1.svc」と入力します。 たとえば、「http://btsProd.northamerica.corp.contoso.com/ReceiveWCFService/Service1.svc」と入力します。

    この正確な URL は、受信場所のロジック アプリにも一覧表示されます。
  8. オプション。 [ バインド ] タブで、基になるWCF-WebHttp バインドのタイムアウトとエンコード関連のプロパティを構成します。 これらのプロパティは、大きなメッセージを処理するときに役立ちます。

    プロパティ 目的
    タイムアウトを開く チャネルオープン操作が完了するまでに必要な時間間隔を入力します。 System.TimeSpan.Zero 以上の値を指定してください。

    既定値:00:01:00
    最大値: 23:59:59
    送信タイムアウト 送信操作が完了するまでに必要な時間間隔を入力します。 System.TimeSpan.Zero 以上の値を指定してください。 要求/応答受信ポートを使用する場合、クライアントから大きなメッセージが返された場合でも、この値は対話全体が完了するための期間を指定します。

    既定値:00:01:00
    最大値: 23:59:59
    タイムアウトを閉じる チャネルのクローズ操作が完了するまでに必要な時間間隔を入力します。 System.TimeSpan.Zero 以上の値を指定してください。

    既定値:00:01:00
    最大値: 23:59:59
    [最大受信メッセージ サイズ (バイト単位)] ネットワークで受信するヘッダーを含むメッセージの最大サイズをバイト単位で入力します。 メッセージのサイズは、各メッセージに割り当てられたメモリの量によって制限されます。 このプロパティを使用して、サービス拒否 (DoS) 攻撃にさらされる危険性を制限できます。

    既定値:65536
    最大値: 2147483647
    [最大同時呼び出し数] 1 つのサービス インスタンスに対する同時呼び出しの数を入力します。 制限を超える呼び出しはキューに格納されます。 この値を 0 に設定することは、Int32.MaxValue に設定することと同じです。

    既定では 200 です。
  9. オプション。 [ セキュリティ ] タブで、セキュリティ プロパティを構成します。 開発の目的で、[なし] を選択できます。

    プロパティ 目的
    [セキュリティ モード] オプション:

    • なし: メッセージは、転送中にセキュリティ保護されません。
    • [トランスポート]: セキュリティは、HTTPS トランスポートを使用して提供されます。 SOAP メッセージは、HTTPS を使用してセキュリティ保護されます。 このモードを使用するには、インターネット インフォメーション サービス (IIS) で Secure Sockets Layer (SSL) を設定する必要があります。
    • TransportCredentialOnly: 既定値。
    トランスポート クライアントの資格情報の種類 クライアント認証を使用する場合は、資格情報の種類を選択します。 オプション:

    • なし: トランスポート レベルでの認証は行われません。
    • 基本: 基本認証を使用して、ネットワーク経由でユーザー名とパスワードをプレーンテキストで送信します。 資格情報に対応するドメイン ユーザー アカウントまたはローカル ユーザー アカウントを作成する必要があります。
    • ダイジェスト: ダイジェスト認証を使用して、ネットワーク経由でパスワードをハッシュ値として送信します。 Windows Server オペレーティング システム認証を実行しているドメイン コントローラーを持つドメインでのみ使用できます。 クライアントの資格情報に対応するドメイン ユーザー アカウントまたはローカル ユーザー アカウントを作成する必要があります。
    • Ntlm: 既定値。 クライアントは、この受信場所にパスワードを送信せずに資格情報を送信します。 クライアントの資格情報に対応するドメイン ユーザー アカウントまたはローカル ユーザー アカウントを作成する必要があります。
    • Windows: Windows 統合認証は Kerberos または NTLM をネゴシエートします。ドメインが存在する場合は Kerberos を優先します。 Kerberos を使用するには、クライアントにサービス プリンシパル名 (SPN) を使用してサービスを識別してもらう必要があります。 クライアントの資格情報に対応するドメイン ユーザー アカウントまたはローカル ユーザー アカウントを作成する必要があります。
    • 証明書: クライアント証明書を使用します。 クライアント X.509 証明書の CA 証明書チェーンは、クライアントがこの受信場所に対して認証できるように、このコンピューターの信頼されたルート証明機関証明書ストアにインストールする必要があります。
    • InheritedFromHost
    シングル サインオンの使用
  10. オプション。 [ メッセージ ] タブで、[ 送信 HTTP ヘッダー] プロパティを使用してカスタム ヘッダーを追加し、エラーに役立つ追加のプロパティを使用します。

    プロパティ 目的
    送信 HTTP ヘッダー 応答メッセージにスタンプを付けたい HTTP ヘッダーを入力します。
    [エラー発生時に場所を無効にする] 受信パイプラインのエラーまたはルーティングエラーが原因で受信処理が失敗した場合は、受信場所を無効にします。 既定値はオフになっています。
    [エラー発生時に要求メッセージを保留する] 受信パイプラインのエラーまたはルーティングエラーが原因で受信処理が失敗した場合は、要求メッセージを中断します。 既定値はオフになっています。
    [エラーに例外の詳細を含める] エラーが発生すると、デバッグに役立つ SOAP エラーが返されます。 既定値はオフになっています。

受信場所の管理 では、追加のプロパティについて説明します。

手順 4: メッセージを送信する

  1. Fiddler または Postman (または任意の任意の) を開きます。

  2. ロジック アプリから要求トリガーの URL を貼り付けます。 手順 3 でこの URL をコピーしました。

  3. HTTP 動詞として [POST] を選択し、 Content-type ヘッダーを に application/json設定します。 本文に、次の JSON を貼り付けます。

    {"hello":"world"}
    
  4. これは BizTalk の一方向の呼び出しであるため、結果は HTTP 202 になります。 HelloWorld SDK サンプルを使用している場合は、BizTalk サーバーに移動します。 送信フォルダーにファイルが存在する可能性があります。

ロジック アプリにメッセージを送信する

手順 1:ロジック アプリを作成します

  1. Azure portal で、新しいロジック アプリを作成します。

  2. HTTP 要求の受信時トリガーを追加する

  3. [Outlook - 電子メールの送信] アクションOffice 365追加します。 [宛先] アドレス、Office 365アドレスを入力します。 [ 件名] に「」と入力します Sending from BizTalk。 [本文] で、[HTTP 要求の受信時] トリガーから [本文] 出力を選択します。

  4. ロジック アプリは、次の例のようになります。

    Office 365と Outlook を使用する LogicApp アダプターの例

  5. ロジック アプリを保存するときに自動的に作成される HTTP POST URL をコピーします。この URL は、次の手順で必要になります。 URL を表示するには、ロジック アプリを閉じて再度開く必要がある場合があります。

手順 2: 送信ポートを作成する

BizTalk Serverがロジック アプリにメッセージを送信するには、ロジック アプリに手動トリガー (例: 手動 - HTTP 要求を受信したとき) が必要です

  1. [BizTalk Server管理] で、[BizTalk Server管理] を展開し、[BizTalk グループ]、[アプリケーション] の順に展開し、送信ポートを実行するアプリケーションを展開します。 たとえば、 BizTalk Application 1 を展開します。

  2. [ 送信ポート] を右選択し、[ 新規] を選択し、[ 静的一方向送信ポート] を選択します。

  3. 送信ポートの [名前] を入力します 。 たとえば、「 LASendPort」と入力します。

  4. [ 種類] で、一覧から [LogicApp ] を選択し、[ 構成 ] ボタンを選択します。

  5. [ 全般 ] タブで、ロジック アプリ トリガーの コールバック URI を 構成します。 この作業を実行する 2 つの方法があります。

    オプション 1 : 前の手順でコピーした HTTP POST URL を [トリガー (コールバック URI)] プロパティに貼り付けます。 次の手順を使用して URI をコピーすることもできます。

    1. Azure portalで、Logic Apps デザイナー (編集モード) でロジック アプリを開きます。

    2. [HTTP 要求が受信されたとき] カード選択し、URL をコピーします

    3. 送信ポートで、この URL を [トリガー (コールバック URI)] プロパティに貼り付けます。

      ヒント

      また、管理 API を使用してこの URI を取得することもできます。

      オプション 2 : トリガーのコールバック URI がわからない場合は、[ 構成] を選択し、Azure にサインインします。 次に、ドロップダウン リストを使用して、 サブスクリプションリソース グループロジック アプリ、トリガーを選択 します

  6. オプション。 [ バインド ] タブで、基になるWCF-WebHttp バインドのタイムアウトおよびエンコード関連のプロパティを構成します。 これらのプロパティは、大きなメッセージを処理するときに役立ちます。

    プロパティ 目的
    タイムアウトを開く チャネルを開く操作が完了するまでに必要な時間間隔を入力します。 System.TimeSpan.Zero 以上の値を指定してください。

    既定値:00:01:00
    最大値: 23:59:59
    送信タイムアウト 送信操作が完了するまでに必要な時間間隔を入力します。 System.TimeSpan.Zero 以上の値を指定してください。 要求/応答受信ポートを使用する場合、この値は、クライアントから大きなメッセージが返された場合でも、操作全体が完了するまでの期間を指定します。

    既定値:00:01:00
    最大値: 23:59:59
    タイムアウトを閉じる チャネルの閉じる操作が完了するまでに必要な時間間隔を入力します。 System.TimeSpan.Zero 以上の値を指定してください。

    既定値:00:01:00
    最大値: 23:59:59
    [最大受信メッセージ サイズ (バイト単位)] ヘッダーを含むメッセージをネットワークで受信する最大サイズをバイト単位で入力します。 メッセージのサイズは、各メッセージに割り当てられたメモリの量によってバインドされます。 このプロパティを使用して、サービス拒否 (DoS) 攻撃にさらされる危険性を制限できます。

    ロジック appa アダプターは、バッファー転送モードの WebHttpBinding クラスを 利用してエンドポイントと通信します。 バッファリングされたトランスポート モードでは、 WebHttpBinding.MaxBufferSize プロパティは常にこのプロパティの値と等しくなります。

    既定値:65536
    最大値: 2147483647
  7. オプション。 [ メッセージ ] タブで、[ 送信 HTTP ヘッダー] プロパティを使用して、送信メッセージにカスタム ヘッダーを追加します。

  8. [OK] を選択して構成を保存します。

送信ポートと送信ポート グループの管理 では、追加の送信ポート プロパティについて説明します。

手順 3: いくつかのメッセージを送信する

ファイル アダプターを使用して、受信ポートと受信場所を作成できます。 ロジック アプリが有効になっていることを確認します。

  1. FileSendPort などの受信ポートを作成する

  2. 受信場所を作成し、次のようなプロパティを設定します。

    プロパティ サンプル入力
    受信フォルダ C:\temp\In\
    ファイル マスク *.txt
    パイプライン PassThruReceive
  3. 作成した送信ポートで、フィルターを次のように設定 します

    プロパティ 演算子
    BTS.ReceivePortName == FileSendPort
  4. 次のテキストを含むテキスト ファイル (FileName.txt) を作成します。 サンプル メッセージとして次のテキスト ファイルを使用します。

    <Data>
      <DataID>DataID_0</DataID>
      <DataDetails>DataDetails_0</DataDetails>
    </Data>
    
  5. サンプル メッセージ (FileName.txt) を受信フォルダーにコピーします。 送信ポートは、入力した URI を使用して、.txt ファイルをロジック アプリに送信します。 ロジック アプリはファイルを受け取ります。 Office 365 Outlook コネクタを使用した場合は、[宛先] メール アドレスにサンプル メッセージと共にメールが届きます。

次へ

Logic Apps とは

ロジック アプリの作成

BizTalk Serverでのアダプターの使用