次の方法で共有


サービス バス メッセージを送信する

適用対象: 開発者 |基本 |標準 |プレミアム

send-service-bus-message ポリシーは、Azure Service Bus キューまたはトピックにメッセージを送信します。 APIリクエストはオプションでバックエンドサービスに転送することも可能です。

ポリシーの要素と子要素を、ポリシー ステートメントで指定された順序で設定します。 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

使用に関する注記

  • メッセージを受信する 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>

ポリシーに対する処理の詳細については、次のトピックを参照してください。