Unidirektionale Anforderung senden

GILT FÜR: Alle API Management-Ebenen

Die send-one-way-request-Richtlinie sendet die bereitgestellte Anforderung an die angegebene URL, ohne auf eine Antwort zu warten.

Hinweis

Legen Sie die Elemente und untergeordneten Elemente einer Richtlinie in der Reihenfolge fest, die in der Richtlinienanweisung angegeben ist. Erfahren Sie mehr darüber, wie Sie API Management-Richtlinien festlegen oder bearbeiten.

Richtlinienanweisung

<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>

Attribute

Attribut BESCHREIBUNG Erforderlich Standard
Modus Bestimmt, ob es sich um eine new-Anforderung oder eine copy von Header und Text in der aktuellen Anforderung handelt. Im Abschnitt für ausgehende Richtlinien initialisiert mode=copy den Anforderungstext nicht. Richtlinienausdrücke sind zulässig. Nein new
timeout Das Zeitüberschreitungsintervall in Sekunden, bis für den Aufruf der URL ein Fehler auftritt. Richtlinienausdrücke sind zulässig. Nein 60

Elemente

Element BESCHREIBUNG Erforderlich
set-url Die URL der Anforderung. Richtlinienausdrücke sind zulässig. Nein, wenn mode=copy, andernfalls ja.
set-method Legt die Methode der Anforderung fest. Richtlinienausdrücke sind nicht zulässig. Nein, wenn mode=copy, andernfalls ja.
set-header Legt einen Header in der Anforderung fest. Verwenden Sie mehrere set-header-Elemente für mehrere Anforderungsheader. Nein
set-body Legt den Text der Anforderung fest. Nein
authentication-certificate Zertifikat für die Clientauthentifizierung, angegeben in einem thumbprint-Attribut. Nein
proxy Leitet Anforderungen über den HTTP-Proxy weiter. Nein

Verwendung

Beispiel

Dieses Beispiel verwendet die send-one-way-request-Richtlinie zum Senden einer Nachricht an einen Slack-Chatraum, wenn der HTTP-Antwortcode größer als oder gleich 500 ist. Weitere Informationen zu diesem Beispiel finden Sie unter Verwenden externer Dienste über den Azure API Management-Dienst.

<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>

Weitere Informationen zum Arbeiten mit Richtlinien finden Sie hier: