Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Developer | Podstawowa | Standardowa | Premia
Zasady send-service-bus-message wysyłają komunikat do kolejki lub tematu usługi Azure Service Bus. Możesz opcjonalnie przekierować żądanie API do usługi backend.
Uwaga / Notatka
- Aby uzyskać podstawowe informacje i wymagania wstępne dotyczące wysyłania komunikatów do usługi Azure Service Bus, zobacz Jak wysyłać komunikaty do usługi Azure Service Bus z usługi Azure API Management.
Uwaga / Notatka
Ustaw elementy zasad i elementy podrzędne w kolejności podanej w oświadczeniu zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.
Oświadczenie polityki
<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-id="message ID"
session-id="session ID"
time-to-live="message time to live"
response-variable-name="context variable name"
ignore-error="false">
<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
| Attribute | Description | Wymagane | Default |
|---|---|---|---|
queue-name |
Określa nazwę kolejki usługi Service Bus do wysłania komunikatu. Wyrażenia zasad i nazwane wartości są dozwolone.
queue-name Albo topic-name musi być określony. |
Nie. | N/A |
topic-name |
Określa nazwę tematu usługi Service Bus do wysłania komunikatu. Wyrażenia zasad i nazwane wartości są dozwolone.
queue-name Albo topic-name musi być określony. |
Nie. | N/A |
namespace |
Określa w pełni kwalifikowaną nazwę domeny przestrzeni nazw usługi Service Bus. Wyrażenia zasad i nazwane wartości są dozwolone. | Nie. | N/A |
client-id |
Określa identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika do uwierzytelniania za pomocą usługi Service Bus. Tożsamość musi mieć przypisaną rolę Nadawca danych usługi Azure Service Bus. Wyrażenia zasad i nazwane wartości są dozwolone. Jeśli nie określisz tego atrybutu, używa się tożsamości przypisanej przez system. | Nie. | N/A |
message-id |
Identyfikator wiadomości. Musi to być prawidłowy identyfikator GUID. Wyrażenia zasad są dozwolone. Jeśli zostanie pominięty, zarządzanie API generuje GUID. | Nie. | Wygenerowany GUID |
session-id |
Identyfikator sesji Service Bus używany do grupowania powiązanych wiadomości. Musi to być prawidłowy identyfikator GUID. Wyrażenia zasad są dozwolone. | Nie. | N/A |
time-to-live |
Jak długo wiadomość pozostaje dostępna do przetworzenia przed jej wygaśnięciem. Użyj wartości TimeSpan, na przykład 00:10:00. |
Nie. | N/A |
response-variable-name |
Nazwa zmiennej kontekstowej, która otrzymuje informacje o operacji wysłania Service Bus. | Nie. | N/A |
ignore-error |
Czy awaria wysłania Service Bus powinna pozwolić na kontynuowanie wykonywania polityki.
true = kontynuuj; false = wywołaj normalne obsługiwanie błędów. |
Nie. | false |
Uwaga / Notatka
Gdy określasz response-variable-name, zarządzanie API przechowuje informacje o operacji wysyłania Service Bus w tej zmiennej kontekstowej. Przy sukcesie zawiera , MessageIdSessionId, oraz TimeToLive. W przypadku ignorowanego niepowodzenia wysyłania zawiera i Error.ReasonError.Message.
Elements
| Składnik | Description | Wymagane |
|---|---|---|
payload |
Określa ładunek komunikatu do wysłania do magistrali usług. Wyrażenia zasad i nazwane wartości są dozwolone. | Tak |
message-properties |
Kolekcja message-property podelementów określających metadane, które mają być przekazywane z ładunkiem komunikatu. Każda message-property z nich składa się z pary nazwa-wartość. Wyrażenia zasad i nazwane wartości są dozwolone. |
Nie. |
Usage
- Sekcje zasad: ruch przychodzący, wychodzący, on-error
- Zakresy zasad: globalny, produkt, interfejs API, operacja
- Bramy: klasyczne
Uwagi dotyczące użycia
- Musisz wstępnie utworzyć kolejkę lub temat usługi Azure Service Bus, który odbiera komunikat.
- Tych zasad można używać wiele razy na definicję zasad.
- Jeśli pominiesz
message-id, API Management generuje GUID. - Konfigurowane
message-idwartości isession-idwartości muszą być ważnymi GUID. - Używaj
session-id, gdy jednostka Service Bus wymaga sesji. -
time-to-liveużywaTimeSpanwartości takiej jak00:10:00. -
ignore-errorDotyczy nieudanych wysłuchań. Nieprawidłowa konfiguracja wiadomości, taka jak nieprawidłowy GUID lub TTL, nadal powoduje awarię polityki.
Przykłady
Wysyłanie komunikatu do kolejki usługi Service Bus
W tym przykładzie wiadomość składająca się z ciała żądania jest wysyłana do kolejki zamówień. ID żądania staje się ID wiadomości, wiadomość wygasa po 10 minutach, a informacje o wysyłaniu są przechowywane w serviceBusResult. Niepowodzenie wysyłania wysyła proces obsługi błędów w API Management. Wystąpienie usługi API Management używa tożsamości przypisanej przez użytkownika na potrzeby dostępu. Żądanie jest następnie przekazywane do usługi zaplecza.
<policies>
<inbound>
<send-service-bus-message
queue-name="orders"
namespace="contoso-messaging.servicebus.windows.net"
message-id="@(context.RequestId.ToString())"
time-to-live="00:10:00"
response-variable-name="serviceBusResult"
ignore-error="false">
<payload>
@(context.Request.Body.As<string>(preserveContent: true))
</payload>
</send-service-bus-message>
</inbound>
<backend>
<forward-request timeout="60"/>
</backend>
</policies>
Wysyłanie komunikatu do tematu usługi Service Bus
W tym przykładzie wysyłasz wiadomość zawierającą ciało żądania do tematu magistrali usługowej. Wystąpienie usługi API Management używa tożsamości przypisanej przez system na potrzeby dostępu. Następnie przekierowujesz żądanie do usługi backend.
<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>
Wysyłanie komunikatu i metadanych
W tym przykładzie wysyłasz wiadomość zawierającą ciało żądania do tematu magistrali serwisowej i ustawiasz właściwość wiadomości, która wysyła metadane wraz z tym ładunkiem. Wystąpienie usługi API Management używa tożsamości przypisanej przez system na potrzeby dostępu. Następnie przekierowujesz żądanie do usługi backend.
<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>
Wysyłanie wiadomości i natychmiastowe zwracanie
W tym przykładzie wysyłasz wiadomość zawierającą ciało żądania do tematu magistrali usługowej. Wystąpienie usługi API Management używa tożsamości przypisanej przez system na potrzeby dostępu. Następnie natychmiast zwracasz 201 kod statusu odpowiedzi do dzwoniącego.
<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>
Powiązane zasady
Treści powiązane
Aby uzyskać więcej informacji na temat pracy z politykami, zobacz:
- Samouczek: jak chronić i przekształcać swoje API
- Odniesienia do zasad dla pełnej listy oświadczeń polityki i ich ustawień
- Wyrażenia zasad
- Ustawianie lub edytowanie zasad
- Wykorzystywanie konfiguracji polityki
- Repozytorium fragmentów polityki
- repozytorium przykładów Policy
- Zestaw narzędzi zasad usługi Azure API Management
- Zyskaj wsparcie Copilot w tworzeniu, wyjaśnianiu i rozwiązywaniu problemów z zasadami