適用対象: 開発者 |基本 |標準 |プレミアム
この記事では、ポリシー ベースの統合を使用して API Management から Azure Service Bus にメッセージを送信する方法について説明します。 API Management を使用して、Service Bus にメッセージを送信するセキュリティで保護されたスケーラブルな方法を提供します。
Azure Service Bus は、アプリケーションとサービスを分離し、分散システム間で信頼性の高いクラウド メッセージングを可能にするように設計された、フル マネージドのエンタープライズ メッセージング サービスです。 システムがメッセージ キュー にメッセージを送信して 1 対 1 の通信を行い、発行/サブスクライブ パターンの トピック を送信するための AMQP (Advanced Message Queuing Protocol) をサポートします。 Service Bus は、ハイブリッド クラウド環境全体で非同期操作、負荷平準化、または統合を必要とするシナリオに最適です。 詳細については、 Azure Service Bus のドキュメントを参照してください。
ポリシーベースの統合により、API Management では次の機能が提供されます。
- 外部クライアント向けのセキュリティで保護された REST ベースのメッセージング - ネイティブ AMQP サポートがない外部システムとモバイル アプリは、API Management 経由で標準の HTTP/REST API を使用して Service Bus にメッセージを送信できます。 この方法では、カスタム仲介者の必要性を排除することで、統合が簡素化され、セキュリティが強化されます。
- 管理されたサード パーティの統合 - 企業は、組み込みのマネージド ID 認証を使用して API Management を通じて Service Bus エンドポイントを公開し、パートナーやサードパーティのアプリケーションに対してセキュリティで保護された監視可能なメッセージング パターンを実現できます。
- モデルの起動と忘れ - Service Bus にメッセージを送信するために他のバックエンド サービスは必要ありません。これにより、アーキテクチャがシンプルになり、運用オーバーヘッドが削減されます。
注
- API Management と Service Bus の統合は現在プレビュー段階です。
- Service Bus へのメッセージの送信のみがサポートされています。
注
現在、この機能はワークスペースでは利用できません。
[前提条件]
API Management サービス インスタンス。 お持ちでない場合は、「 API Management サービス インスタンスの作成」を参照してください。
Service Bus にメッセージを送信するために使用される API Management API。
メッセージを受信する Azure Service Bus 名前空間内のキューまたはトピック。 詳細な手順については、次のいずれかを参照してください。
注
- トピックとサブスクリプションを使用する場合は、Service Bus Standard レベルまたは Premium レベルを選択します。
- Service Bus リソースは、API Management リソースとは異なるサブスクリプションまたは別のテナントに存在 する場合 があります。
マネージド ID にロールを割り当てる権限。
Service Bus へのアクセスを構成する
サービス バスにメッセージを送信するには、API Management インスタンスのマネージド ID を構成する必要があります。
API Management インスタンスで API Management のシステム割り当てマネージド ID またはユーザー割り当て マネージド ID を 有効にします。
- ユーザー割り当てマネージド ID を有効にする場合は、ID の クライアント ID を書き留めます。
ID に Azure Service Bus データ送信者 ロールを、サービス バスをスコープとする形で割り当てます。 ロールを割り当てるには、 Azure portal またはその他の Azure ツールを使用します。
send-service-bus-message ポリシーを構成する
目的のキューまたはトピックにメッセージを送信するように send-service-bus-message ポリシーを構成します。
たとえば、受信ポリシー セクションの send-service-bus-message ポリシーを使用して、ゲートウェイが受信したときに API 要求の要求本文を送信します。
Azure portal で、API Management インスタンスに移動します。
左側のメニューで [ API] を選択し、ポリシーを追加する API を選択します。
[すべての操作] を選択します。
画面の上部にある [ デザイン ] タブを選択します。
[ 受信処理 ] ウィンドウまたは [ 送信処理 ] ウィンドウで、
</>(コード エディター) アイコンを選択します。 詳細については、「 ポリシーを設定または編集する方法」を参照してください。inboundまたはoutboundポリシー セクションにカーソルを置く。send-service-bus-messageポリシーをポリシー構成に追加し、必要に応じて属性と要素を構成します。たとえば、要求本文をメッセージとして送信します。
<send-service-bus-message queue-name="my-queue"> <payload>@(context.Request.Body.As<string>())</payload> </send-service-bus-message>payload要素の値として文字列を返す任意の式を使用できます。[ 保存] を 選択して、更新されたポリシー構成を保存します。 保存するとすぐにポリシーがアクティブになり、メッセージが指定されたサービス バスに送信されます。