適用対象: 開発者 |基本 |標準 |プレミアム
send-service-bus-message ポリシーは、Azure Service Bus キューまたはトピックにメッセージを送信します。 APIリクエストはオプションでバックエンドサービスに転送することも可能です。
注
- このポリシーは現在プレビュー段階です。
- Azure Service Bus にメッセージを送信するための背景と前提条件については、「Azure API Management から Azure Service Bus にメッセージを送信する方法」を参照してください。
注
ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 API Management ポリシーを設定または編集する方法について説明します。
ポリシー ステートメント
<send-service-bus-message queue-name="service bus queue" topic-name="service bus topic"
namespace="FQDN of service bus namespace" client-id="ID of user-assigned managed identity">
<message-properties>
<message-property name="property-name">property-value</message-property>
<!-- if there are multiple properties, then add additional message-property elements -->
</message-properties>
<payload>"message content"</payload>
</send-service-bus-message>
Attributes
| 特性 | Description | 必須 | 既定値 |
|---|---|---|---|
queue-name |
メッセージの送信先となるサービス バス キューの名前を指定します。 ポリシー式と名前付き値を使用できます。
queue-nameまたはtopic-nameを指定する必要があります。 |
いいえ | N/A |
topic-name |
メッセージの送信先となる Service Bus トピックの名前を指定します。 ポリシー式と名前付き値を使用できます。
queue-nameまたはtopic-nameを指定する必要があります。 |
いいえ | N/A |
namespace |
Service Bus 名前空間の完全修飾ドメイン名を指定します。 ポリシー式と名前付き値を使用できます。 | いいえ | N/A |
client-id |
Service Bus で認証するユーザー割り当てマネージド ID のクライアント ID を指定します。 ID には、Azure Service Bus データ送信者ロールが割り当てられている必要があります。 ポリシー式と名前付き値を使用できます。 指定されていない場合、システム割り当て ID が使用されます。 | いいえ | N/A |
Elements
| 要素 | Description | 必須 |
|---|---|---|
payload |
サービス バスに送信するメッセージ ペイロードを指定します。 ポリシー式と名前付き値を使用できます。 | イエス |
message-properties |
メッセージ ペイロードと共に渡すメタデータを指定する message-property サブ要素のコレクション。 各 message-property は、名前と値のペアで構成されます。 ポリシー式と名前付き値を使用できます。 |
いいえ |
Usage
- ポリシー セクション: 受信、送信、エラー時
- ポリシー スコープ: グローバル、製品、API、操作
- ゲートウェイ: クラシック
使用に関する注記
- メッセージを受信する Azure Service Bus キューまたはトピックを事前に作成する必要があります。
- このポリシーは、ポリシー定義ごとに複数回使用できます。
例示
Service Bus キューにメッセージを送信する
この例では、要求本文で構成されるメッセージが Service Bus キューに送信されます。 API Management インスタンスは、アクセスにユーザー割り当て ID を使用します。 その後、要求はバックエンド サービスに転送されます。
<policies>
<inbound>
<send-service-bus-message queue-name="orders" client-id="00001111-aaaa-2222-bbbb-3333cccc4444" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Service Bus トピックにメッセージを送信する
この例では、要求本文で構成されるメッセージが Service Bus トピックに送信されます。 API Management インスタンスは、アクセスにシステム割り当て ID を使用します。 その後、要求はバックエンド サービスに転送されます。
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
メッセージとメタデータを送信する
この例では、要求本文で構成されるメッセージが Service Bus トピックに送信され、ペイロードを含むメタデータを送信するようにメッセージ プロパティが設定されています。 API Management インスタンスは、アクセスにシステム割り当て ID を使用します。 その後、要求はバックエンド サービスに転送されます。
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<message-properties>
<message-property name="Customer">Contoso</message-property>
</message-properties>
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
メッセージを送信してすぐに返す
この例では、要求本文で構成されるメッセージが Service Bus トピックに送信されます。 API Management インスタンスは、アクセスにシステム割り当て ID を使用します。 その後、 201 応答状態コードが呼び出し元に直ちに返されます。
<policies>
<inbound>
<send-service-bus-message topic-name="orders" namespace="my-service-bus.servicebus.windows.net">
<payload>@(context.Request.Body.As<string>(preserveContent: true))</payload>
</send-service-bus-message>
<return-response>
<set-status code="201" reason="Created!" />
</return-response>
</inbound>
</policies>
関連ポリシー
関連コンテンツ
ポリシーに対する処理の詳細については、次のトピックを参照してください。
- チュートリアル:API を変換および保護する
- ポリシー ステートメントとその設定の完全な一覧については、ポリシー参照をご覧ください。
- ポリシー表現
- ポリシーを設定または編集する
- ポリシー構成を再利用する
- ポリシー スニペット リポジトリ
- ポリシープレイグラウンドリポジトリ
- Azure API Management ポリシー ツールキット
- ポリシーの作成、説明、トラブルシューティングを行う Copilot のサポートを受ける