Empfangen und Beantworten eingehender HTTPS-Anforderungen in Azure Logic AppsReceive and respond to inbound HTTPS requests in Azure Logic Apps

Mit Azure Logic Apps und dem integrierten Anforderungstrigger und der Antwortaktion können Sie automatisierte Tasks und Workflows erstellen, die eingehende HTTPS-Anforderungen über HTTPS empfangen können.With Azure Logic Apps and the built-in Request trigger and Response action, you can create automated tasks and workflows that can receive inbound requests over HTTPS. Verwenden Sie zum Senden von ausgehenden Anforderungen stattdessen den integrierten HTTP-Trigger oder die HTTP-Aktion.To send outbound requests instead, use the built-in HTTP trigger or HTTP action.

Beispielsweise können Sie mit Ihrer Logik-App Folgendes durchführen:For example, you can have your logic app:

  • Empfangen von und Antworten auf eine HTTPS-Anforderung von Daten in einer lokalen Datenbank.Receive and respond to an HTTPS request for data in an on-premises database.

  • Auslösen eines Workflows, wenn ein externes Webhookereignis auftrittTrigger a workflow when an external webhook event happens.

  • Empfangen von und Antworten auf HTTPS-Aufrufe aus einer anderen Logik-App.Receive and respond to an HTTPS call from another logic app.

Dieser Artikel zeigt, wie Sie den Anforderungstrigger und die Antwortaktion verwenden können, damit Ihre Logik-App eingehende Aufrufe empfangen und darauf antworten kann.This article shows how to use the Request trigger and Response action so that your logic app can receive and respond to inbound calls.

Weitere Informationen zu Sicherheit, Autorisierung und Verschlüsselung für eingehende Aufrufe Ihrer Logik-App, etwa über Transport Layer Security (TLS) (früher bekannt als Secure Sockets Layer [SSL]) oder Azure Active Directory Open Authentication (Azure AD OAuth), finden Sie unter Sicherer Zugriff und Daten: Zugriff für eingehende Aufrufe anforderungsbasierter Trigger. In diesem Artikel erfahren Sie auch, wie Sie Ihre Logik-App mit Azure API Management verfügbar machen oder IP-Adressen aus eingehenden Aufrufen einschränken.For more information about security, authorization, and encryption for inbound calls to your logic app, such as Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), Azure Active Directory Open Authentication (Azure AD OAuth), exposing your logic app with Azure API Management, or restricting the IP addresses that originate inbound calls, see Secure access and data - Access for inbound calls to request-based triggers.

VoraussetzungenPrerequisites

Anforderungstrigger hinzufügenAdd Request trigger

Dieser integrierte Trigger erstellt einen manuell aufrufbaren Endpunkt, der nur eingehende Anforderungen über HTTPS verarbeiten kann.This built-in trigger creates a manually callable endpoint that can handle only inbound requests over HTTPS. Wenn ein Aufrufer eine Anforderung an diesen Endpunkt sendet, wird der Anforderungstrigger ausgelöst und führt die Logik-App aus.When a caller sends a request to this endpoint, the Request trigger fires and runs the logic app. Weitere Informationen zum Aufrufen dieses Triggers finden Sie unter Aufrufen, Auslösen oder Schachteln von Workflows mit HTTPS-Endpunkten in Azure Logic Apps.For more information about how to call this trigger, see Call, trigger, or nest workflows with HTTPS endpoints in Azure Logic Apps.

Ihre Logik-App hält eine eingehende Anforderung nur für begrenzte Zeit geöffnet.Your logic app keeps an inbound request open only for a limited time. Unter der Annahme, dass Ihre Logik-App eine Antwortaktion enthält, gibt Ihre Logik-App einen 504 GATEWAY TIMEOUT-Status an den Aufrufer zurück, wenn Ihre Logik-App nach Ablauf dieses Zeitraums keine Antwort an den Aufrufer sendet.Assuming that your logic app includes a Response action, if your logic app doesn't send a response back to the caller after this time passes, your logic app returns a 504 GATEWAY TIMEOUT status to the caller. Wenn Ihre Logik-App keine Antwortaktion enthält, gibt sie sofort einen 202 ACCEPTED-Status an den Aufrufer zurück.If your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED status to the caller.

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal. Erstellen einer leeren Logik-AppCreate a blank logic app.

  2. Wenn der Designer für Logik-Apps geöffnet wird, geben Sie im Suchfeld http request als Filter ein.After Logic App Designer opens, in the search box, enter http request as your filter. Wählen Sie aus der Triggerliste diesen Trigger aus: Beim Empfang einer HTTP-Anforderung.From the triggers list, select the When an HTTP request is received trigger.

    Anforderungstrigger auswählen

    Der Anforderungstrigger zeigt diese Eigenschaften an:The Request trigger shows these properties:

    Anforderungstrigger

    EigenschaftennameProperty name JSON-EigenschaftennameJSON property name ErforderlichRequired BESCHREIBUNGDescription
    HTTP-POST-URLHTTP POST URL {keine}{none} JaYes Die Endpunkt-URL, die nach dem Speichern der Logik-App generiert wird und zum Aufrufen ihrer Logik-App verwendet wirdThe endpoint URL that's generated after you save the logic app and is used for calling your logic app
    JSON-Schema für AnforderungstextRequest Body JSON Schema schema NeinNo Das JSON-Schema, das die Eigenschaften und Werte im Text der eingehenden Anforderung beschreibtThe JSON schema that describes the properties and values in the incoming request body
  3. Geben Sie im Feld JSON-Schema für Anforderungstext optional ein JSON-Schema ein, das den Text in der eingehenden Anforderung beschreibt. Beispiel:In the Request Body JSON Schema box, optionally enter a JSON schema that describes the body in the incoming request, for example:

    Beispiel für das JSON-Schema

    Der Designer verwendet dieses Schema zum Generieren von Token für die Eigenschaften in der Anforderung.The designer uses this schema to generate tokens for the properties in the request. Auf diese Weise kann Ihre Logik-App Daten aus der Anforderung über den Trigger analysieren, nutzen und an den Workflow übergeben.That way, your logic app can parse, consume, and pass along data from the request through the trigger into your workflow.

    Hier sehen Sie das Beispielschema:Here is the sample schema:

    {
       "type": "object",
       "properties": {
          "account": {
             "type": "object",
             "properties": {
                "name": {
                   "type": "string"
                },
                "ID": {
                   "type": "string"
                },
                "address": {
                   "type": "object",
                   "properties": {
                      "number": {
                         "type": "string"
                      },
                      "street": {
                         "type": "string"
                      },
                      "city": {
                         "type": "string"
                      },
                      "state": {
                         "type": "string"
                      },
                      "country": {
                         "type": "string"
                      },
                      "postalCode": {
                         "type": "string"
                      }
                   }
                }
             }
          }
       }
    }
    

    Wenn Sie ein JSON-Schema eingeben, zeigt der Designer eine Erinnerung an, dass der Content-Type-Header in die Anforderung eingeschlossen und der Headerwert auf application/json festgelegt werden muss.When you enter a JSON schema, the designer shows a reminder to include the Content-Type header in your request and set that header value to application/json. Weitere Informationen finden Sie unter Behandeln von Inhaltstypen.For more information, see Handle content types.

    Erinnerung zum Einschließen des Headers „Content-Type“

    Dieser Header sieht im JSON-Format wie folgt aus:Here's what this header looks like in JSON format:

    {
       "Content-Type": "application/json"
    }
    

    Zum Generieren eines JSON-Schemas, das auf der erwarteten Nutzlast (Daten) basiert, können Sie ein Tool wie z. B. JSONSchema.net verwenden oder die folgenden Schritte ausführen:To generate a JSON schema that's based on the expected payload (data), you can use a tool such as JSONSchema.net, or you can follow these steps:

    1. Wählen Sie im Anforderungstrigger Beispielnutzlast zum Generieren eines Schemas verwenden aus.In the Request trigger, select Use sample payload to generate schema.

      Screenshot mit ausgewählter Option „Beispielnutzdaten zum Generieren eines Schemas verwenden“

    2. Geben Sie die Beispielnutzlast ein, und wählen Sie dann Fertig aus.Enter the sample payload, and select Done.

      Eingeben einer Beispielnutzlast zum Generieren eines Schemas

      Hier sehen Sie die Beispielnutzlast:Here is the sample payload:

      {
         "account": {
            "name": "Contoso",
            "ID": "12345",
            "address": {
               "number": "1234",
               "street": "Anywhere Street",
               "city": "AnyTown",
               "state": "AnyState",
               "country": "USA",
               "postalCode": "11111"
            }
         }
      }
      
  4. Gehen Sie folgendermaßen vor, um zu überprüfen, ob der eingehende Aufruf einen Anforderungstext enthält, der dem angegebenen Schema entspricht:To check that the inbound call has a request body that matches your specified schema, follow these steps:

    1. Klicken Sie auf der Titelleiste des Anforderungstriggers auf die Schaltfläche mit den Auslassungspunkten ( ... ).In the Request trigger's title bar, select the ellipses button (...).

    2. Aktivieren Sie in den Einstellungen des Triggers die Schemavalidierung, und wählen Sie Fertig aus.In the trigger's settings, turn on Schema Validation, and select Done.

      Wenn der Anforderungstext des eingehenden Aufrufs nicht mit dem Schema identisch ist, gibt der Trigger eine HTTP 400 Bad Request-Fehlermeldung zurück.If the inbound call's request body doesn't match your schema, the trigger returns an HTTP 400 Bad Request error.

  5. Öffnen Sie zum Hinzufügen weiterer Eigenschaften die Liste Neuen Parameter hinzufügen, und wählen Sie die Parameter aus, die hinzugefügt werden sollen.To specify additional properties, open the Add new parameter list, and select the parameters that you want to add.

    EigenschaftennameProperty name JSON-EigenschaftennameJSON property name ErforderlichRequired BESCHREIBUNGDescription
    MethodeMethod method NeinNo Die Methode, die die eingehende Anforderung zum Aufrufen der Logik-App verwenden mussThe method that the incoming request must use to call the logic app
    Relativer PfadRelative path relativePath NeinNo Der relative Pfad für den Parameter, der von der Endpunkt-URL der Logik-App akzeptiert werden kannThe relative path for the parameter that the logic app's endpoint URL can accept

    In diesem Beispiel wird die Eigenschaft Methode hinzugefügt:This example adds the Method property:

    Hinzufügen des Methodenparameters

    Die Eigenschaft Methode wird im Trigger angezeigt, sodass Sie eine Methode aus der Liste auswählen können.The Method property appears in the trigger so that you can select a method from the list.

    Wählen Sie die Methode aus.

  6. Fügen Sie nun eine weitere Aktion als nächsten Schritt in Ihrem Workflow hinzu.Now, add another action as the next step in your workflow. Wählen Sie unter dem Trigger die Option Nächster Schritt aus, um die Aktion zu finden, die Sie hinzufügen möchten.Under the trigger, select Next step so that you can find the action that you want to add.

    Beispielsweise können Sie auf die Anforderung reagieren, indem Sie eine Antwortaktion hinzufügen, um damit eine benutzerdefinierte Antwort zurückzugeben. Dies wird weiter unten in diesem Thema beschrieben.For example, you can respond to the request by adding a Response action, which you can use to return a customized response and is described later in this topic.

    Ihre Logik-App hält die eingehende Anforderung nur für begrenzte Zeit geöffnet.Your logic app keeps the incoming request open only for a limited time. Falls der Logik-App-Workflow eine Antwortaktion enthält, gibt Ihre Logik-App ein 504 GATEWAY TIMEOUT an den Aufrufer zurück, wenn die Logik-App nach diesem Zeitraum nicht geantwortet hat.Assuming that your logic app workflow includes a Response action, if the logic app doesn't return a response after this time passes, your logic app returns a 504 GATEWAY TIMEOUT to the caller. Falls Ihre Logik-App keine Antwortaktion enthält, gibt Ihre Logik-App sofort eine 202 ACCEPTED-Antwort an den Aufrufer zurück.Otherwise, if your logic app doesn't include a Response action, your logic app immediately returns a 202 ACCEPTED response to the caller.

  7. Wenn Sie fertig sind, speichern Sie Ihre Logik-App.When you're done, save your logic app. Wählen Sie auf der Symbolleiste des Designers Speichern aus.On the designer toolbar, select Save.

    Dieser Schritt generiert die URL, die zum Senden der Anforderung verwendet werden soll, durch die die Logik-App ausgelöst wird.This step generates the URL to use for sending the request that triggers the logic app. Um diese URL zu kopieren, wählen Sie das Kopiersymbol neben der URL aus.To copy this URL, select the copy icon next to the URL.

    URL zum Auslösen Ihrer Logik-App

    Hinweis

    Wenn Sie das Hash- oder Nummernzeichen ( # ) im URI verwenden möchten, wenn Sie einen Aufruf an den Anforderungstrigger senden, nutzen Sie stattdessen diese codierte Version: %25%23.If you want to include the hash or pound symbol (#) in the URI when making a call to the Request trigger, use this encoded version instead: %25%23

  8. Senden Sie zum Testen Ihrer Logik-App eine HTTP-Anforderung an die generierte URL.To test your logic app, send an HTTP request to the generated URL.

    Zum Senden der HTTP-Anforderung kann beispielsweise ein Tool wie Postman verwendet werden.For example, you can use a tool such as Postman to send the HTTP request. Weitere Informationen zur zugrunde liegenden JSON-Definition des Triggers und zum Aufzurufen dieses Triggers finden Sie in den Themen Anforderungstriggertyp und unter Aufrufen, Auslösen oder Schachteln von Workflows mit HTTP-Endpunkten in Azure Logic Apps.For more information about the trigger's underlying JSON definition and how to call this trigger, see these topics, Request trigger type and Call, trigger, or nest workflows with HTTP endpoints in Azure Logic Apps.

Weitere Informationen zu Sicherheit, Autorisierung und Verschlüsselung für eingehende Aufrufe Ihrer Logik-App, etwa über Transport Layer Security (TLS) (früher bekannt als Secure Sockets Layer [SSL]) oder Azure Active Directory Open Authentication (Azure AD OAuth), finden Sie unter Sicherer Zugriff und Daten: Zugriff für eingehende Aufrufe anforderungsbasierter Trigger. In diesem Artikel erfahren Sie auch, wie Sie Ihre Logik-App mit Azure API Management verfügbar machen oder IP-Adressen aus eingehenden Aufrufen einschränken.For more information about security, authorization, and encryption for inbound calls to your logic app, such as Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), Azure Active Directory Open Authentication (Azure AD OAuth), exposing your logic app with Azure API Management, or restricting the IP addresses that originate inbound calls, see Secure access and data - Access for inbound calls to request-based triggers.

TriggerausgabenTrigger outputs

Im Folgenden finden Sie weitere Informationen zu den Ausgaben des Anforderungstriggers:Here's more information about the outputs from the Request trigger:

JSON-EigenschaftennameJSON property name DatentypData type BESCHREIBUNGDescription
headers ObjectObject Ein JSON-Objekt, das die Header aus der Anforderung beschreibtA JSON object that describes the headers from the request
body ObjectObject Ein JSON-Objekt, das den Textinhalt aus der Anforderung beschreibtA JSON object that describes the body content from the request

Hinzufügen einer AntwortaktionAdd a Response action

Wenn Sie den Anforderungstrigger zur Verarbeitung eingehender Anforderungen verwenden, können Sie die Antwort modellieren und die Nutzlastergebnisse mithilfe der integrierten Antwortaktion an den Aufrufer zurücksenden.When you use the Request trigger to handle inbound requests, you can model the response and send the payload results back to the caller by using the built-in Response action. Sie können die Antwortaktion nur mit dem Anforderungstrigger verwenden.You can use the Response action only with the Request trigger. Diese Kombination aus dem Anforderungstrigger und der Antwortaktion erstellt die Anforderungs-/Antwortmuster.This combination with the Request trigger and Response action creates the request-response pattern. Außer innerhalb von Foreach-Schleifen und Until-Schleifen sowie parallelen Branches können Sie die Antwortaktion an beliebiger Stelle in Ihren Workflow hinzufügen.Except for inside Foreach loops and Until loops, and parallel branches, you can add the Response action anywhere in your workflow.

Wichtig

Wenn eine Antwortaktion diese Header enthält, entfernt Logic Apps sie aus der generierten Antwortnachricht, ohne eine Warnung oder einen Fehler anzuzeigen:If a Response action includes these headers, Logic Apps removes these headers from the generated response message without showing any warning or error:

  • Allow
  • Content-* mit den folgenden Ausnahmen: Content-Disposition, Content-Encoding und Content-Type.Content-* with these exceptions: Content-Disposition, Content-Encoding, and Content-Type
  • Cookie
  • Expires
  • Last-Modified
  • Set-Cookie
  • Transfer-Encoding

Logic Apps verhindert nicht, dass Sie Logik-Apps speichern, in denen eine Antwortaktion mit diesen Headern verwendet wird, sondern ignoriert diese Header.Although Logic Apps won't stop you from saving logic apps that have a Response action with these headers, Logic Apps ignores these headers.

  1. Wählen Sie im Logik-App-Designer unter dem Schritt, dem Sie eine Antwortaktion hinzufügen möchten, die Option Neuer Schritt aus.In the Logic App Designer, under the step where you want to add a Response action, select New step.

    Verwenden Sie beispielsweise den zuvor beschriebenen Anforderungstrigger:For example, using the Request trigger from earlier:

    Neuen Schritt hinzufügen

    Wenn Sie zwischen Schritten eine Aktion einfügen möchten, bewegen Sie den Mauszeiger über den Pfeil zwischen diesen Schritten.To add an action between steps, move your pointer over the arrow between those steps. Wählen Sie das angezeigte Pluszeichen ( + ) aus, und wählen Sie dann Aktion hinzufügen aus.Select the plus sign (+) that appears, and then select Add an action.

  2. Geben Sie unter Aktion auswählen im Suchfeld den Text response als Filter ein, und wählen Sie die Antwortaktion aus.Under Choose an action, in the search box, enter response as your filter, and select the Response action.

    Auswählen der Aktion „Antwort“

    Der Anforderungstrigger ist in diesem Beispiel der Einfachheit halber zugeklappt.The Request trigger is collapsed in this example for simplicity.

  3. Fügen Sie alle Werte hinzu, die für die Antwortnachricht erforderlich sind.Add any values that are required for the response message.

    Bei einigen Feldern wird durch Klicken die Liste mit dynamischen Inhalten geöffnet.In some fields, clicking inside their boxes opens the dynamic content list. Anschließend können Sie Token auswählen, die die verfügbaren Ausgaben aus vorherigen Schritten des Workflows darstellen.You can then select tokens that represent available outputs from previous steps in the workflow. Eigenschaften aus dem Schema, das im vorherigen Beispiel angegeben wurde, werden jetzt in der Liste mit dynamischen Inhalten angezeigt.Properties from the schema specified in the earlier example now appear in the dynamic content list.

    Schließen Sie beispielsweise im Feld Header den Eintrag Content-Type als Schlüsselnamen ein, und legen Sie den Schlüsselwert auf application/json fest, wie weiter oben in diesem Thema beschrieben.For example, for the Headers box, include Content-Type as the key name, and set the key value to application/json as mentioned earlier in this topic. Für das Feld Text können Sie die Ausgabe des Triggertexts aus der Liste mit dynamischen Inhalten auswählen.For the Body box, you can select the trigger body output from the dynamic content list.

    Details der Antwortaktion

    Um die Header im JSON-Format anzuzeigen, wählen Sie Zur Textansicht wechseln aus.To view the headers in JSON format, select Switch to text view.

    Header: Zur Textansicht wechseln

    Hier finden Sie weitere Informationen zu den Eigenschaften, die Sie in der Antwortaktion festlegen können.Here is more information about the properties that you can set in the Response action.

    EigenschaftennameProperty name JSON-EigenschaftennameJSON property name ErforderlichRequired BESCHREIBUNGDescription
    StatuscodeStatus Code statusCode JaYes Der in der Antwort zurückzugebende StatuscodeThe status code to return in the response
    HeadersHeaders headers NeinNo Ein JSON-Objekt, das einen oder mehrere Header beschreibt, die in die Antwort eingeschlossen werden sollenA JSON object that describes one or more headers to include in the response
    TextBody body NeinNo Der Antworttext.The response body
  4. Um weitere Eigenschaften hinzuzufügen, z. B. das JSON-Schema für den Antworttext, öffnen Sie die Liste Neuen Parameter hinzufügen, und wählen Sie die Parameter aus, die hinzugefügt werden sollen.To specify additional properties, such as a JSON schema for the response body, open the Add new parameter list, and select the parameters that you want to add.

  5. Wenn Sie fertig sind, speichern Sie Ihre Logik-App.When you're done, save your logic app. Wählen Sie auf der Symbolleiste des Designers Speichern aus.On the designer toolbar, select Save.

Nächste SchritteNext steps