Morning Girl

Web API, Windows, C#, .NET, Dynamics 365/CRM etc..

【Dynamics CRM】【Azure】Dynamics CRMとAzure Service Busの連携 その2

前回、Dynamics CRMとAzure Service Busの連携概要をお伝えしました。

今回は実際にDynamics CRMへAzure ServiceBusの連携設定をする手順を記載していきます。

Azure Service Bus連携の前準備:認証方式

Azure Servie Busと連携する際に認証を通す必要がありますが、その方式として2種類アプローチが存在します。(そもそもここがよくわかってなかった(´゚д゚`))

ACSAccess Controle Service

https://msdn.microsoft.com/ja-jp/library/azure/jj945613.aspx

SAS = Shared Access Signature

azure.microsoft.com

ACSはAzure Active Direcory のアクセスコントロールを介して、Service Busの認証として利用するもの。

SASは各サービスごとにアクセスキーを生成し、それをクライアント・リスナー側それぞれで設定して認証するものです。

今回はお手軽に実施可能(っぽい)SASを利用します。(ACSはまだ試していません。ACSを使えるようにするために、PowerShellからのサービス作成が必要?)

ServiceBusキューの作成

ServiceBus用名前空間は作成されている前提です。

ServiceBusメニューからキューを作成します。

f:id:sugimomoto:20160718222807p:plain

キュー作成後、SAS構成のため「構成」を選択し、共有アクセスポリシーを設定します。

クライアント、リスナーどちらでも使用するので、今回は送信・リッスンをそれぞれ選択します。

f:id:sugimomoto:20160718222831p:plain

「接続文字列の表示」からSAS接続文字列を取得します。

f:id:sugimomoto:20160718223026p:plain

f:id:sugimomoto:20160718223030p:plain

以上で、キュー側の準備は完了です。

ServiceBus用エンドポイントの登録

ServiceBus用エンドポイントはPluginRegistrationToolを使います。

若干古いバージョンですと、SAS用設定画面が表示されませんでしたので、最新ダウンロードをお勧めします。(私は8.1を使いました)

PluginRegistrationToolを実行し、Register New ServiceEndpointを選択

f:id:sugimomoto:20160718223503p:plain

上のラジオボタンを選択し、事前に生成しておいた、SASの接続文字列を貼り付けます。

f:id:sugimomoto:20160718223513p:plain

接続文字列の情報を元に、Endpointの構成情報が表示されますので、そのまま保存します。

f:id:sugimomoto:20160718223519p:plain

Endpoint作成後、受け渡すContextを決めるため、Stepを登録します。

Endpointを選択し、Register New Stepをクリック

f:id:sugimomoto:20160718223607p:plain

今回はAccountのCreate時のContextを送ります。

StepのMessageにCreate・Primary EntityにAccount

あと、ServiceEndpointに対するStepは必ずPost-OperationのAsyncにする必要があるみたいです。

f:id:sugimomoto:20160718223721p:plain

以上で設定完了です。

取引先企業作成後、以下のようにシステムジョブに実行結果が表示されれば、無事ServiceBusにメッセージが送れていることを確認できます。

f:id:sugimomoto:20160718223920p:plain

次回は、ServiceBusからデータを受信するアプリケーションを作成します。