Microsoft Dynamics CRM との Azure 統合

 

公開日: 2016年11月

対象: Dynamics CRM 2015

Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム を Microsoft Azure プラットフォームに接続できます。これは、Dynamics 365 イベント実行パイプラインを Microsoft Azure サービス バス に結び付けて実現されます。 この接続を使用して、現在の Dynamics 365 操作の一部として処理されたデータをサービス ハブに配置することができます。 「Dynamics 365 に対応する」Microsoft Azure サービス バス ソリューションが、Microsoft Dynamics 365 によってサービス バスにポストされるデータをリスニングして読み取ることができます。 ポストされたデータは、RemoteExecutionContext クラス インスタンスに格納されます。これは、実行時に Microsoft Dynamics 365 非同期プラグインに渡される IExecutionContext の拡張バージョンです。

このように Microsoft Dynamics 365 と Microsoft Azure プラットフォームが接続されると、Dynamics 365 の実行時データを外部のクラウド ベースのビジネス (LOB) アプリケーションと通信するためのチャネルがセキュリティによって保護されます。

このトピックの内容

接続の主な要素

CRM からサービス バスへのシナリオ

CRM と Azure ソリューションの契約の確立

ランタイム エラーの管理

接続の主な要素

Microsoft Dynamics 365 と Microsoft Azure サービス バスの接続を実装する主な要素は次のとおりです。

  • 非同期サービス
    非同期サービスは、Microsoft Dynamics 365 リモート実行コンテキストの Microsoft Azure サービス バスへのポストを行います。 各ポストは非同期サービスのシステム ジョブによって実行されます。 ユーザーは、Microsoft Dynamics 365 Web アプリケーションを使用して各システム ジョブのステータスを表示できます。

  • プラグイン
    接続機能によってサポートされる非同期の登録プラグインは次の2種類です: Dynamics 365 と共に提供される標準(OOB)プラグイン、とカスタム プラグイン。Microsoft Azure での同期プラグインの使用方法の詳細は、通知サービスへのアクセスを参照してください。

    Azure 対応のプラグインは Dynamics 365 で提供されます。 このプラグインは、Microsoft Dynamics 365 プラットフォームに対して完全信頼で実行されます。 このプラグインを Microsoft Dynamics 365 に登録すると、現在の要求のコンテキストを Microsoft Azure サービス バスにポストするように非同期サービスに通知できます。 サービス バスのポスト機能を有効にするには、開発者が、ターゲット メッセージとエンティティを指定するステップをこのプラグインに登録する必要があります。

    また、Azure 対応の独自のカスタム プラグインを記述することもできます。 カスタム プラグインは、部分信頼でサンドボックス内で実行し、すべての Microsoft Dynamics CRM SDK メソッドを呼び出すことができます。 要求コンテキストをポストするよう非同期サービスに通知する標準コード行を含めることにより、Microsoft Dynamics 365 コンテキストのサービス バスへのポストをカスタム プラグインで開始できます。 このクラウド特有コードを使用すると、プラグインを Azure 対応にできます。 プラブイン全般の詳細については、プラグインを記述するを参照してください。Azure 対応プラグインの詳細は、「Azure 対応のカスタム プラグインの記述」を参照してください。

  • ユーザー定義のワークフロー活動
    ユーザー定義のワークフロー活動を作成して、現在の要求のデータ コンテキストを Microsoft Azure サービス バスにポストできます。詳細:サンプル: Azure 対応のユーザー定義ワークフロー活動.

  • Microsoft Azure のサービス バス
    このサービス バスは、リモート実行コンテキストを Microsoft Dynamics 365 と Microsoft Azure サービス バス ソリューション リスナーの間で中継します。Microsoft Azure Active Directory アクセス制御サービス (ACS) は、クレームベース認証セキュリティを管理します。

  • Microsoft Azure ソリューション
    Dynamics 365とAzure の接続機能が作動するためには、Microsoft Azure サービス バス ソリューション アカウントに少なくとも 1 つのソリューションがあり、そのソリューションに 1 つ以上のサービス エンドポイントが含まれる必要があります。 リレー エンドポイント契約では、Dynamics 365 対応のリスナーは、サービス バスでの Dynamics 365 の要求をエンドポイントでアクティブにリスニングする必要があります。 キュー エンドポイント契約では、リスナーはアクティブにリスニングする必要はありません。 リスナーを Dynamics 365 対応にするには、Microsoft.Xrm.Sdk アセンブリにリンクして、RemoteExecutionContext の型が定義されるようにします。詳細:Microsoft Azure ソリューション用リスナーの記述

    Microsoft Dynamics 365 リモート実行コンテキストをサービス バスにポストできるようにソリューションのルールを構成する必要があります。 ポストできるようにするには、ACS が Dynamics 365 展開をサポートされている発行者として認識する必要があります。詳細:Azure と Microsoft Dynamics CRM 2015 との統合の構成.

重要

Microsoft Azure プラットフォームのソリューション リスナーを開発するには、Microsoft AzureSDK バージョン 1.7 または 1.8 を開発用コンピューターにインストールする必要があります。

CRM からサービス バスへのシナリオ

ここでは、これまでに説明した接続コンポーネントを実装するシナリオについて説明します。 前提条件として、ACS は Microsoft Dynamics 365 をサポートされている発行者として認識しており、リスナーのいるエンドポイントに Microsoft Dynamics 365 がポストできるルールが Microsoft Azure サービス バス ソリューションに構成されています。

次の図は、シナリオを構成する物理要素を示しています。

Microsoft Dynamics CRM からサービス バスへのシナリオ

この図に示すイベントの順序は次のとおりです。

  1. リスナーが Microsoft Azure サービス バス ソリューション エンドポイントに登録され、Microsoft Dynamics 365 リモート実行コンテキストをサービス バスでアクティブにリスニングし始めます。

  2. ユーザーが Microsoft Dynamics 365 で何かの操作を実行すると、登録済みの OOB プラグインまたはカスタム Azure 対応プラグインの実行がトリガーされます。 プラグインが、非同期サービス システム ジョブを介して、現在の要求コンテキストのサービス バスへのポストを開始します。

  3. ACS は Microsoft Dynamics 365 によってポストされたクレームを認証します。 次に、サービス バスが、リモート実行コンテキストをリスナーに渡します。 リスナーはコンテキスト情報を処理し、その情報に対してビジネス関連タスクを実行します。 サービス バスから非同期サービスにポストの成功が通知され、関連するシステム ジョブが完了ステータスに設定されます。

CRM と Azure ソリューションの契約の確立

ソリューション エンドポイントごとに契約を構成して、サービス バスでのこれらのリモート実行コンテキストの "メッセージ" の処理と、そのエンドポイントで使用する必要があるセキュリティを定義します。 サービス バス メッセージは、ここに示す 1 件のサポート契約を使用してエンドポイントで受信されます。

  • キュー
    キュー契約は、クラウドでメッセージ キューを提供します。 キュー契約では、リスナーはエンドポイントでメッセージをアクティブにリスニングする必要はありません。 キューに対しては破壊読み取りと非破壊読み取りがあります。 破壊読み取りでは、キューにあるメッセージが読み取られ、メッセージが削除されます。 非破壊読み取りでは、メッセージがキューから削除されません。

    Microsoft Dynamics 365でサポートされているキューには、メッセージ バッファーのキューおよび耐久性できるキューの 2 種類があります。 メッセージ バッファーのキューでは、事前に構成した長さの時間内に読まれない場合は削除されます。一般的にこの長さは 10 分未満です。 永久キューでは、メッセージが有効なより長い期間をコードで指定できます。

  • 一方向
    一方向契約ではアクティブなリスナーが必要です。 エンドポイントにアクティブなリスナーがないと、サービス バスへの Microsoft Dynamics 365 ポストが失敗します。 要求を投稿する非同期システム ジョブが最終的に中止され、そのステータスが "失敗" にセットされるまで、Microsoft Dynamics 365 は指数関数的に長い期間、投稿を再試行します。

  • 二方向
    二方向契約は一方向契約と似ていますが、文字列値がリスナーから Microsoft Dynamics 365 に返される点が異なります。

  • REST
    REST 契約は REST エンドポイントでの二方向契約に似ています。

  • トピック
    一つ以上のリスナーがトピックをサブスクライブしてトピックからメッセージを受信することができること以外は、キューに似ています。

重要

これらの契約を使用するには、Microsoft AzureSDK v1.7 または 1.8 を使用してリスナー アプリケーションを記入する必要があります。

メッセージ バッファーのキューは、Microsoft Dynamics CRM SDK の将来のリリースでは廃止され、サポートされません。

契約の構成では、契約で使用されるセキュリティの種類を指定します。 契約は、Secure Sockets Layer (SSL) (https) を使用するトランスポート セキュリティを使用できます。

クレーム認証は、サービス バスに対するセキュリティで保護されたアクセスのために使用されます。 サービス バスへの認証で使用されるクレームは、Microsoft Dynamics 365 内で生成され、Microsoft Dynamics 365 構成データベースに指定されている AppFabricIssuer 証明書によって署名されます。

ランタイム エラーの管理

サービス バスへのポストが試行された後でエラーが発生した場合は、Microsoft Dynamics 365 Web アプリケーションの関連するシステム ジョブのステータスを調べて、エラーの詳細を確認します。 サービス バスが停止しているか、リスナーまたはエンドポイントが使用できない場合、Microsoft Dynamics 365 で処理されている現在のメッセージはバスにポストされません。 非同期サービスはメッセージのポスト試行を継続しますが、最初は頻繁に試行されるものの、その後は試行間隔が急激に長くなります。 内部の Microsoft Dynamics 365 エラーの場合、メッセージのポストは試行されません。 外部のサービス バスまたはネットワークのエラーの場合、関連するシステム ジョブは「待機」状態になります。

関連項目

Microsoft Dynamics CRM 2015 の Azure 拡張機能
Azure と Microsoft Dynamics CRM 2015 との統合の構成
ビジネス プロセスを拡張するためのプラグインを記述する
Microsoft Dynamics CRM 2015 での非同期サービス
AsyncOperation (システム ジョブ) エンティティ

© 2017 Microsoft. All rights reserved. 著作権