Aufrufen von Dienstendpunkten per HTTP oder HTTPS aus Azure Logic AppsCall service endpoints over HTTP or HTTPS from Azure Logic Apps

Mit Azure Logic Apps und dem integrierten HTTP-Trigger oder einer HTTP-Aktion können Sie automatisierte Tasks und Workflows erstellen, die ausgehende Anforderungen an Endpunkte für andere Dienste über HTTP oder HTTPS senden können.With Azure Logic Apps and the built-in HTTP trigger or action, you can create automated tasks and workflows that can send outbound requests to endpoints on other services and systems over HTTP or HTTPS. Um stattdessen eingehende HTTPS-Aufrufe zu empfangen und darauf zu reagieren, verwenden Sie den integrierten Anforderungstrigger und die Antwortaktion.To receive and respond to inbound HTTPS calls instead, use the built-in Request trigger and Response action.

Sie können beispielsweise einen Dienstendpunkt für Ihre Website überwachen, indem Sie ihn nach einem bestimmten Zeitplan überprüfen.For example, you can monitor a service endpoint for your website by checking that endpoint on a specific schedule. Wenn das angegebene Ereignis (beispielsweise ein Ausfall Ihrer Website) an diesem Endpunkt auftritt, löst das Ereignis den Workflow Ihrer Logik-App aus und führt die darin enthaltenen Aktionen aus.When the specified event happens at that endpoint, such as your website going down, the event triggers your logic app's workflow and runs the actions in that workflow.

  • Um einen Endpunkt nach einem wiederkehrenden Zeitplan zu überprüfen oder abzurufen, können Sie den HTTP-Trigger Ihrem Workflow als ersten Schritt hinzufügen.To check or poll an endpoint on a recurring schedule, add the HTTP trigger as the first step in your workflow. Jedes Mal, wenn der Trigger den Endpunkt überprüft, führt er einen Aufruf bzw. das Senden einer Anforderung an den Endpunkt durch.Each time that the trigger checks the endpoint, the trigger calls or sends a request to the endpoint. Die Antwort des Endpunkts bestimmt, ob der Workflow der Logik-App ausgeführt wird.The endpoint's response determines whether your logic app's workflow runs. Der Trigger übergibt alle Inhalte aus der Antwort des Endpunkts an die Aktionen in Ihrer Logik-App.The trigger passes any content from the endpoint's response to the actions in your logic app.

  • Fügen Sie die entsprechende HTTP-Aktion hinzu, um einen Endpunkt an einem anderen Punkt Ihres Workflows aufzurufen.To call an endpoint from anywhere else in your workflow, add the HTTP action. Die Antwort des Endpunkts bestimmt, wie die restlichen Aktionen des Workflows ausgeführt werden.The endpoint's response determines how your workflow's remaining actions run.

Dieser Artikel zeigt, wie Sie den HTTP-Trigger und die HTTP-Aktion verwenden können, damit Ihre Logik-App ausgehende Aufrufe an andere Dienste und Systeme senden kann.This article shows how to use the HTTP trigger and HTTP action so that your logic app can send outbound calls to other services and systems.

Informationen zu Verschlüsselung, Sicherheit und Autorisierung für ausgehende Aufrufe Ihrer Logik-App, etwa Transport Layer Security (TLS) (früher bekannt als Secure Sockets Layer (SSL)), selbstsignierte Zertifikate oder Azure Active Directory Open Authentication (Azure AD OAuth), finden Sie unter Sicherer Zugriff und Daten: Zugriff für ausgehende Aufrufe anderer Dienste und Systeme.For information about encryption, security, and authorization for outbound calls from your logic app, such as Transport Layer Security (TLS), previously known as Secure Sockets Layer (SSL), self-signed certificates, or Azure Active Directory Open Authentication (Azure AD OAuth), see Secure access and data - Access for outbound calls to other services and systems.

VoraussetzungenPrerequisites

  • Ein Azure-Konto und ein Azure-Abonnement.An Azure account and subscription. Wenn Sie nicht über ein Azure-Abonnement verfügen, können Sie sich für ein kostenloses Azure-Konto registrieren.If you don't have an Azure subscription, sign up for a free Azure account.

  • Die URL für den Zielendpunkt, den Sie aufrufen möchtenThe URL for the target endpoint that you want to call

  • Grundlegende Kenntnisse über das Erstellen von Logik-Apps.Basic knowledge about how to create logic apps. Falls Sie noch nicht mit Logik-Apps vertraut sind, finden Sie weitere Informationen unter Was ist Azure Logic Apps?.If you're new to logic apps, review What is Azure Logic Apps?

  • Die Logik-App, von der aus Sie den Zielendpunkt aufrufen möchten.The logic app from where you want to call the target endpoint. Um mit dem HTTP-Trigger zu beginnen, erstellen Sie eine leere Logik-App.To start with the HTTP trigger, create a blank logic app. Um die HTTP-Aktion zu verwenden, starten Sie Ihre Logik-App mit einem beliebigen Trigger.To use the HTTP action, start your logic app with any trigger that you want. Dieses Beispiel verwendet den HTTP-Trigger als ersten Schritt.This example uses the HTTP trigger as the first step.

Hinzufügen eines HTTP-TriggersAdd an HTTP trigger

Dieser integrierte Trigger führt einen HTTP-Aufruf der angegebenen URL für einen Endpunkt aus und gibt eine Antwort zurück.This built-in trigger makes an HTTP call to the specified URL for an endpoint and returns a response.

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal. Öffnen Sie Ihre leere Logik-App im Logik-App-Designer.Open your blank logic app in Logic App Designer.

  2. Wählen Sie im Suchfeld des Designers die Option Integriert aus.Under the designer's search box, select Built-in. Geben Sie im Suchfeld den Begriff http als Filter ein.In the search box, enter http as your filter. Wählen Sie in der Liste Trigger den HTTP-Trigger aus.From the Triggers list, select the HTTP trigger.

    Auswählen des HTTP-Triggers

    Dieses Beispiel benennt den Trigger in „HTTP trigger“ um, damit der Schritt über einen aussagekräftigeren Namen verfügt.This example renames the trigger to "HTTP trigger" so that the step has a more descriptive name. Darüber hinaus fügt das Beispiel später eine HTTP-Aktion hinzu, und beide Namen müssen eindeutig sein.Also, the example later adds an HTTP action, and both names must be unique.

  3. Geben Sie die Werte für die HTTP-Triggerparameter ein, die Sie in den Aufruf des Zielendpunkts aufnehmen möchten.Provide the values for the HTTP trigger parameters that you want to include in the call to the target endpoint. Geben Sie mithilfe einer Wiederholung an, wie oft der Trigger den Zielendpunkt überprüfen soll.Set up the recurrence for how often you want the trigger to check the target endpoint.

    Eingeben der HTTP-Triggerparameter

    Wenn Sie einen anderen Authentifizierungstyp als Keiner auswählen, unterscheiden sich die Authentifizierungseinstellungen je nach Ihrer Auswahl.If you select an authentication type other than None, the authentication settings differ based on your selection. Weitere Informationen zu verfügbaren Authentifizierungstypen für HTTP finden Sie unter den folgenden Themen:For more information about authentication types available for HTTP, see these topics:

  4. Öffnen Sie zum Hinzufügen weiterer verfügbarer Parameter die Liste Neuen Parameter hinzufügen, und wählen Sie die gewünschten Parameter aus.To add other available parameters, open the Add new parameter list, and select the parameters that you want.

  5. Fahren Sie mit dem Erstellen des Workflows Ihrer Logik-App fort, und fügen Sie weitere Aktionen hinzu, die bei Auslösung des Triggers ausgeführt werden.Continue building your logic app's workflow with actions that run when the trigger fires.

  6. Speichern Sie die Logik-App unbedingt, wenn Sie fertig sind.When you're done, remember to save your logic app. Wählen Sie auf der Symbolleiste des Designers Speichern aus.On the designer toolbar, select Save.

Hinzufügen einer HTTP-AktionAdd an HTTP action

Diese integrierte Aktion führt einen HTTP-Aufruf der angegebenen URL für einen Endpunkt aus und gibt eine Antwort zurück.This built-in action makes an HTTP call to the specified URL for an endpoint and returns a response.

  1. Melden Sie sich beim Azure-Portal an.Sign in to the Azure portal. Öffnen Sie Ihre Logik-App im Logik-App-Designer.Open your logic app in Logic App Designer.

    Dieses Beispiel verwendet den HTTP-Trigger als ersten Schritt.This example uses the HTTP trigger as the first step.

  2. Wählen Sie im Schritt zum Hinzufügen der HTTP-Aktion die Option Neuer Schritt aus.Under the step where you want to add the HTTP action, select New step.

    Wenn Sie zwischen Schritten eine Aktion einfügen möchten, bewegen Sie den Mauszeiger über den Pfeil zwischen den Schritten.To add an action between steps, move your pointer over the arrow between 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.

  3. Wählen Sie unter Aktion auswählen die Option Integriert aus.Under Choose an action, select Built-in. Geben Sie im Suchfeld den Begriff http als Filter ein.In the search box, enter http as your filter. Wählen Sie in der Liste Aktionen die HTTP-Aktion aus.From the Actions list, select the HTTP action.

    Auswählen der HTTP-Aktion

    Dieses Beispiel benennt die Aktion in „HTTP action“ um, damit der Schritt über einen aussagekräftigeren Namen verfügt.This example renames the action to "HTTP action" so that the step has a more descriptive name.

  4. Geben Sie die Werte für die HTTP-Aktionsparameter ein, die Sie in den Aufruf des Zielendpunkts aufnehmen möchten.Provide the values for the HTTP action parameters that you want to include in the call to the target endpoint.

    Eingeben der Parameter für die HTTP-Aktion

    Wenn Sie einen anderen Authentifizierungstyp als Keiner auswählen, unterscheiden sich die Authentifizierungseinstellungen je nach Ihrer Auswahl.If you select an authentication type other than None, the authentication settings differ based on your selection. Weitere Informationen zu verfügbaren Authentifizierungstypen für HTTP finden Sie unter den folgenden Themen:For more information about authentication types available for HTTP, see these topics:

  5. Öffnen Sie zum Hinzufügen weiterer verfügbarer Parameter die Liste Neuen Parameter hinzufügen, und wählen Sie die gewünschten Parameter aus.To add other available parameters, open the Add new parameter list, and select the parameters that you want.

  6. Speichern Sie die Logik-App unbedingt, wenn Sie fertig sind.When you're done, remember to save your logic app. Wählen Sie auf der Symbolleiste des Designers Speichern aus.On the designer toolbar, select Save.

Ausgaben aus Triggern und AktionenTrigger and action outputs

Hier finden Sie weitere Informationen zu den Ausgaben aus einem HTTP-Trigger oder einer -Aktion, die diese Informationen zurückgeben:Here is more information about the outputs from an HTTP trigger or action, which returns this information:

EigenschaftProperty typeType BESCHREIBUNGDescription
headers JSON-ObjektJSON object Die Header aus der AnforderungThe headers from the request
body JSON-ObjektJSON object Das Objekt mit dem Inhalt des Texts aus der AnforderungThe object with the body content from the request
status code IntegerInteger Der Statuscode aus der AnforderungThe status code from the request
StatuscodeStatus code BESCHREIBUNGDescription
200200 OKOK
202202 ZulässigAccepted
400400 Ungültige AnforderungBad request
401401 Nicht autorisiertUnauthorized
403403 VerbotenForbidden
404404 Nicht gefundenNot Found
500500 Interner Serverfehler.Internal server error. Unbekannter Fehler.Unknown error occurred.

Inhalt des Typs „multipart/form-data“Content with multipart/form-data type

Für die Verarbeitung von Inhalt mit dem Typ multipart/form-data in HTTP-Anforderung können Sie ein JSON-Objekt hinzufügen, das die Attribute $content-type und $multipart im HTTP-Anforderungstext enthält, indem Sie dieses Format verwenden.To handle content that has multipart/form-data type in HTTP requests, you can add a JSON object that includes the $content-type and $multipart attributes to the HTTP request's body by using this format.

"body": {
   "$content-type": "multipart/form-data",
   "$multipart": [
      {
         "body": "<output-from-trigger-or-previous-action>",
         "headers": {
            "Content-Disposition": "form-data; name=file; filename=<file-name>"
         }
      }
   ]
}

Angenommen, Sie verfügen über eine Logik-App, die eine HTTP POST-Anforderung für eine Excel-Datei an eine Website sendet, indem sie die API der Website nutzt, die den Typ multipart/form-data unterstützt.For example, suppose you have a logic app that sends an HTTP POST request for an Excel file to a website by using that site's API, which supports the multipart/form-data type. Diese Aktion könnte folgenderweise aussehen:Here's how this action might look:

Mehrteilige Formulardaten

Das folgende Beispiel entspricht der JSON-Definition der HTTP-Aktion in der zugrundeliegenden Workflowdefinition:Here is the same example that shows the HTTP action's JSON definition in the underlying workflow definition:

"HTTP_action": {
   "inputs": {
      "body": {
         "$content-type": "multipart/form-data",
         "$multipart": [
            {
               "body": "@trigger()",
               "headers": {
                  "Content-Disposition": "form-data; name=file; filename=myExcelFile.xlsx"
               }
            }
         ]
      },
      "method": "POST",
      "uri": "https://finance.contoso.com"
   },
   "runAfter": {},
   "type": "Http"
}

Inhalt des Typs „application/x-www-form-urlencoded“Content with application/x-www-form-urlencoded type

Um „form-urlencoded“-Daten im Text für eine HTTP-Anforderung bereitzustellen, müssen Sie angeben, dass die Daten den Inhaltstyp application/x-www-form-urlencoded aufweisen.To provide form-urlencoded data in the body for an HTTP request, you have to specify that the data has the application/x-www-form-urlencoded content type. Fügen Sie im HTTP-Trigger oder in der Aktion den content-type-Header hinzu.In the HTTP trigger or action, add the content-type header. Legen Sie den Headerwert auf application/x-www-form-urlencoded fest.Set the header value to application/x-www-form-urlencoded.

Angenommen, Sie verfügen über eine Logik-App, die eine HTTP POST-Anforderung an eine Website sendet, die den Typ application/x-www-form-urlencoded unterstützt.For example, suppose you have a logic app that sends an HTTP POST request to a website, which supports the application/x-www-form-urlencoded type. Diese Aktion könnte folgenderweise aussehen:Here's how this action might look:

Ein Screenshot, der eine HTTP-Anforderung anzeigt, bei der der „content-type“-Header auf „application/x-www-form-urlencoded“ festgelegt ist.

Asynchrones Anforderungs-Antwort-VerhaltenAsynchronous request-response behavior

Alle HTTP-basierten Aktionen in Azure Logic Apps befolgen erst einmal das Standardmuster für asynchrone Vorgänge.By default, all HTTP-based actions in Azure Logic Apps follow the standard asynchronous operation pattern. Laut diesem Muster gibt der Empfänger sofort eine 202 ACCEPTED-Antwort zurück, wenn eine HTTP-Aktion einen Endpunkt, einen Dienst, das System oder die API aufruft oder eine Anforderung an ebendiese sendet.This pattern specifies that after an HTTP action calls or sends a request to an endpoint, service, system, or API, the receiver immediately returns a "202 ACCEPTED" response. Dieser Code bestätigt, dass der Empfänger die Anforderung akzeptiert, aber die Verarbeitung noch nicht abgeschlossen hat.This code confirms that the receiver accepted the request but hasn't finished processing. Die Antwort kann einen location-Header enthalten, in dem die URL und eine Aktualisierungs-ID angegeben sind, mit denen der Aufrufer den Status der asynchronen Anforderung abrufen oder überprüfen kann, bis der Empfänger die Verarbeitung beendet und eine Antwort mit dem Code 200 OK oder einem anderen Statuscode zurückgibt, der nicht 202 ist.The response can include a location header that specifies the URL and a refresh ID that the caller can use to poll or check the status for the asynchronous request until the receiver stops processing and returns a "200 OK" success response or other non-202 response. Der Aufrufer muss jedoch nicht darauf warten, dass die Verarbeitung der Anforderung abgeschlossen wird, und kann mit der Ausführung der nächsten Aktion fortfahren.However, the caller doesn't have to wait for the request to finish processing and can continue to run the next action. Weitere Informationen finden Sie unter Gegenüberstellung von synchronem und asynchronem Messaging.For more information, see Asynchronous microservice integration enforces microservice autonomy.

  • Im Logik-App-Designer verfügt die HTTP-Aktion, nicht der Trigger, über eine Einstellung für das asynchrone Muster, die automatisch aktiviert ist.In the Logic App Designer, the HTTP action, but not trigger, has an Asynchronous Pattern setting, which is enabled by default. Diese Einstellung gibt an, dass der Aufrufer nicht auf den Abschluss der Verarbeitung wartet, sondern mit der nächsten Aktion fortfahren kann, dass er aber weiterhin den Status überprüft, bis die Verarbeitung beendet wird.This setting specifies that the caller doesn't wait for processing to finish and can move on to the next action but continues checking the status until processing stops. Wenn diese Einstellung deaktiviert ist, gibt sie an, dass der Aufrufer auf den Abschluss der Verarbeitung wartet, bevor er mit der nächsten Aktion fortfährt.If disabled, this setting specifies that the caller waits for processing to finish before moving on to the next action.

    Führen Sie die folgenden Schritte aus, um diese Einstellung zu suchen:To find this setting, follow these steps:

    1. Wählen Sie auf der Titelleiste der HTTP-Aktion die Schaltfläche mit den Auslassungspunkten ( ... ) aus, woraufhin die Einstellungen der Aktion geöffnet werden.On the HTTP action's title bar, select the ellipses (...) button, which opens the action's settings.

    2. Suchen Sie die Einstellung Asynchrones Muster.Find the Asynchronous Pattern setting.

      Einstellung „Asynchrones Muster“

  • In der JSON-Definition (JavaScript Object Notation), die der HTTP-Aktion zugrunde liegt, folgt implizit dem Muster für asynchrone Vorgänge.The HTTP action's underlying JavaScript Object Notation (JSON) definition implicitly follows the asynchronous operation pattern.

Deaktivieren asynchroner VorgängeDisable asynchronous operations

In bestimmten Szenarios sollten Sie das asynchrone Verhalten von HTTP-Aktionen deaktivieren, z. B.:Sometimes, you might want to the HTTP action's asynchronous behavior in specific scenarios, for example, when you want to:

Deaktivieren der Einstellung Asynchrones MusterTurn off Asynchronous Pattern setting

  1. Klicken Sie im Logik-App-Designer in der Titelleiste der HTTP-Aktion auf die Schaltfläche mit den Auslassungspunkten ( ... ). Daraufhin werden die Einstellungen der Aktion geöffnet.In the Logic App Designer, on the HTTP action's title bar, select the ellipses (...) button, which opens the action's settings.

  2. Suchen Sie die Einstellung Asynchrones Muster, deaktivieren Sie diese, indem Sie sie auf Aus festlegen (falls sie aktiviert ist), und klicken Sie auf Fertig.Find the Asynchronous Pattern setting, turn the setting to Off if enabled, and select Done.

    Suchen der Einstellung „Asynchrones Muster“

Deaktivieren des asynchronen Musters in der JSON-Definition einer AktionDisable asynchronous pattern in action's JSON definition

Fügen Sie in der JSON-Definitionsdatei, die der HTTP-Aktion zugrunde liegt, die Option für den Vorgang "DisableAsyncPattern" zur Aktionsdefinition hinzu, damit die Aktion stattdessen das synchrone Vorgangsmuster befolgt.In the HTTP action's underlying JSON definition, add the "DisableAsyncPattern" operation option to the action's definition so that the action follows the synchronous operation pattern instead. Weitere Informationen finden Sie unter Ausführen von Aktionen in einem synchronen Vorgangsmuster.For more information, see also Run actions in a synchronous operation pattern.

Vermeiden von HTTP-Timeouts bei Aufgaben mit langer AusführungszeitAvoid HTTP timeouts for long-running tasks

HTTP-Anforderungen unterliegen einem Timeoutlimit.HTTP requests have a timeout limit. Wenn eine Ihrer HTTP-Aktionen mit langer Ausführungszeit aufgrund dieses Timeoutlimits beendet wird, haben Sie die folgenden Möglichkeiten:If you have a long-running HTTP action that times out due to this limit, you have these options:

  • Deaktivieren des Musters für asynchrone Vorgänge, das die HTTP-Aktion befolgt, damit die Aktion nicht fortlaufend den Anforderungsstatus abfragt oder überprüft.Disable the HTTP action's asynchronous operation pattern so that the action doesn't continually poll or check the request's status. Die Aktion wartet dann stattdessen darauf, dass der Empfänger den Status und die Ergebnisse in der Antwort sendet, nachdem die Verarbeitung der Anforderung abgeschlossen wurde.Instead, the action waits for the receiver to respond with the status and results after the request finishes processing.

  • Ersetzen der HTTP-Aktion durch eine HTTP-Webhook-Aktion, die darauf wartet, dass der Empfänger den Status und die Ergebnisse in der Antwort sendet, nachdem die Verarbeitung der Anforderung abgeschlossen wurdeReplace the HTTP action with the HTTP Webhook action, which waits for the receiver to respond with the status and results after the request finishes processing.

Deaktivieren der Überprüfung von Location-HeadernDisable checking location headers

Einige Endpunkte, Dienste, Systeme oder APIs geben eine Antwort mit dem Statuscode „202 ACCEPTED“ zurück. Dieser Antworttyp enthält keinen location-Header.Some endpoints, services, systems, or APIs return a "202 ACCEPTED" response that don't have a location header. Damit eine HTTP-Aktion nicht fortlaufend den Anforderungsstatus überprüft, obwohl kein location-Header vorhanden ist, können Sie wie folgt vorgehen:To avoid having an HTTP action continually check the request status when the location header doesn't exist, you can have these options:

  • Deaktivieren des Musters für asynchrone Vorgänge, das die HTTP-Aktion befolgt, damit die Aktion nicht fortlaufend den Anforderungsstatus abfragt oder überprüft.Disable the HTTP action's asynchronous operation pattern so that the action doesn't continually poll or check the request's status. Die Aktion wartet dann stattdessen darauf, dass der Empfänger den Status und die Ergebnisse in der Antwort sendet, nachdem die Verarbeitung der Anforderung abgeschlossen wurde.Instead, the action waits for the receiver to respond with the status and results after the request finishes processing.

  • Ersetzen der HTTP-Aktion durch eine HTTP-Webhook-Aktion, die darauf wartet, dass der Empfänger den Status und die Ergebnisse in der Antwort sendet, nachdem die Verarbeitung der Anforderung abgeschlossen wurdeReplace the HTTP action with the HTTP Webhook action, which waits for the receiver to respond with the status and results after the request finishes processing.

Bekannte ProblemeKnown issues

Ausgelassene HTTP-HeaderOmitted HTTP headers

Wenn ein HTTP-Trigger oder eine HTTP-Aktion diese Header enthält, entfernt Logic Apps sie aus der generierten Anforderungsnachricht, ohne eine Warnung oder einen Fehler anzuzeigen:If an HTTP trigger or action includes these headers, Logic Apps removes these headers from the generated request message without showing any warning or error:

  • Accept-*-Header, außer für Accept-versionAccept-* headers except for Accept-version
  • Allow
  • Content-*-Header mit Ausnahme von Content-Disposition, Content-Encoding und Content-Type, wenn Sie POST- und PUT-Vorgänge verwenden, aber nicht für GET-VorgängeContent-* headers except for Content-Disposition, Content-Encoding, and Content-Type when you use POST and PUT operations, but are not included for GET operations
  • Cookie
  • Expires
  • Host
  • Last-Modified
  • Origin
  • Set-Cookie
  • Transfer-Encoding

Logic Apps verhindert nicht, dass Sie Logik-Apps speichern, in denen ein HTTP-Trigger oder eine HTTP-Aktion mit diesen Headern verwendet wird, sondern diese Header werden von Logic Apps ignoriert.Although Logic Apps won't stop you from saving logic apps that use an HTTP trigger or action with these headers, Logic Apps ignores these headers.

Connector-ReferenzConnector reference

Weitere Informationen zu Trigger- und Aktionsparametern finden Sie in diesen Abschnitten:For more information about trigger and action parameters, see these sections:

Nächste SchritteNext steps