Wyślij jednokierunkowe żądanie

DOTYCZY: Wszystkie warstwy usługi API Management

Zasady send-one-way-request wysyła podane żądanie do określonego adresu URL bez oczekiwania na odpowiedź.

Uwaga

Ustaw elementy zasad i elementy podrzędne w kolejności podanej w instrukcji zasad. Dowiedz się więcej na temat ustawiania lub edytowania zasad usługi API Management.

Instrukcja zasad

<send-one-way-request mode="new | copy" timeout="time in seconds">
  <set-url>request URL</set-url>
  <set-method>...</set-method>
  <set-header>...</set-header>
  <set-body>...</set-body>
  <authentication-certificate thumbprint="thumbprint" />
</send-one-way-request>

Atrybuty

Atrybut opis Wymagani Wartość domyślna
tryb Określa, czy jest new to żądanie, czy copy treść nagłówków i treści w bieżącym żądaniu. W sekcji mode=copy zasad ruchu wychodzącego nie inicjuje treści żądania. Wyrażenia zasad są dozwolone. Nie. new
timeout Interwał limitu czasu w sekundach przed niepowodzeniem wywołania adresu URL. Wyrażenia zasad są dozwolone. Nie. 60

Elementy

Element opis Wymagania
set-url Adres URL żądania. Wyrażenia zasad są dozwolone. Nie, jeśli mode=copy; w przeciwnym razie tak.
set-method Ustawia metodę żądania. Wyrażenia zasad nie są dozwolone. Nie, jeśli mode=copy; w przeciwnym razie tak.
set-header Ustawia nagłówek w żądaniu. Użyj wielu set-header elementów dla wielu nagłówków żądań. Nie.
set-body Ustawia treść żądania. Nie.
uwierzytelnianie certyfikatu Certyfikat do użycia na potrzeby uwierzytelniania klienta określonego w atrybucie thumbprint . Nie.
Serwera proxy Kieruje żądanie za pośrednictwem serwera proxy HTTP. Nie.

Użycie

  • Sekcje zasad: ruch przychodzący, wychodzący, zaplecze, błąd
  • Zakresy zasad: globalny, obszar roboczy, produkt, interfejs API, operacja
  • Bramy: klasyczne, v2, zużycie, self-hosted

Przykład

W tym przykładzie send-one-way-request użyto zasad do wysłania wiadomości do pokoju rozmów usługi Slack, jeśli kod odpowiedzi HTTP jest większy lub równy 500. Aby uzyskać więcej informacji na temat tego przykładu, zobacz Używanie usług zewnętrznych z usługi Azure API Management.

<choose>
    <when condition="@(context.Response.StatusCode >= 500)">
      <send-one-way-request mode="new" timeout="20">
        <set-url>https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX</set-url>
        <set-method>POST</set-method>
        <set-body>@{
                return new JObject(
                        new JProperty("username","APIM Alert"),
                        new JProperty("icon_emoji", ":ghost:"),
                        new JProperty("text", String.Format("{0} {1}\nHost: {2}\n{3} {4}\n User: {5}",
                                                context.Request.Method,
                                                context.Request.Url.Path + context.Request.Url.QueryString,
                                                context.Request.Url.Host,
                                                context.Response.StatusCode,
                                                context.Response.StatusReason,
                                                context.User.Email
                                                ))
                        ).ToString();
            }</set-body>
      </send-one-way-request>
    </when>
</choose>

Aby uzyskać więcej informacji na temat pracy z zasadami, zobacz: