Anmerkung
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Azure Logic Apps (Verbrauch + Standard)
Einige Szenarien erfordern möglicherweise, dass Sie einen Logik-App-Workflow, der eingehende Anforderungen von anderen Diensten oder Workflows empfangen kann, oder einen Workflow erstellen, den Sie mithilfe einer URL aufrufen können. Für diese Aufgabe können Sie einen nativen synchronen HTTPS-Endpunkt in Ihrem Workflow verfügbar machen, wenn Sie einen der folgenden anforderungsbasierten Triggertypen verwenden:
- Anforderung
- HTTP-Webhook
- Verwaltete Connectortrigger vom Typ ApiConnectionWebhook, die eingehende HTTPS-Anforderungen empfangen können
In diesem Leitfaden wird gezeigt, wie Sie einen aufrufbaren Endpunkt für Ihren Workflow erstellen, indem Sie den Anforderungstrigger hinzufügen und diesen Endpunkt dann aus einem anderen Workflow aufrufen. Alle Prinzipien gelten genauso für die anderen anforderungsbasierten Triggertypen, die eingehende Anforderungen empfangen können.
Voraussetzungen
Ein Azure-Konto und ein Azure-Abonnement. Falls Sie kein Abonnement besitzen, können Sie sich für ein kostenloses Azure-Konto registrieren.
Die Logik-App-Ressource mit dem Workflow, in dem Sie den aufrufbaren Endpunkt erstellen möchten.
Sie können mit einem leeren Workflow beginnen oder einen vorhandenen Workflow verwenden, in dem Sie den aktuellen Trigger ersetzen. Dieses Beispiel beginnt mit einem leeren Workflow.
Installieren oder verwenden Sie ein Tool, das HTTP-Anforderungen senden kann, um Ihre Lösung zu testen, z. B.:
- Visual Studio Code mit einer Erweiterung von Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge – Netzwerkkonsolentool
- Bruno
- curl
Vorsicht
Für Szenarien, in denen Sie vertrauliche Daten haben, z. B. Anmeldeinformationen, Geheime Schlüssel, Zugriffstoken, API-Schlüssel und andere ähnliche Informationen, stellen Sie sicher, dass Sie ein Tool verwenden, das Ihre Daten mit den erforderlichen Sicherheitsfeatures schützt. Das Tool sollte offline oder lokal arbeiten und muss sich nicht bei einem Onlinekonto anmelden oder Daten mit der Cloud synchronisieren. Wenn Sie ein Tool mit diesen Merkmalen verwenden, verringern Sie das Risiko, vertrauliche Daten für die Öffentlichkeit verfügbar zu machen.
Erstellen eines aufrufbaren Endpunkts
Je nachdem, ob Sie über einen Standard- oder Verbrauchsworkflow für Logik-Apps verfügen, führen Sie die entsprechenden Schritte aus:
Öffnen Sie im Azure-Portal Ihre Ressource vom Typ „Logic App (Standard)“.
Wählen Sie im Menü der Ressourcen-Seitenleiste unter Workflows die Option Workflows aus, und wählen Sie dann Ihren leeren Workflow aus.
Wählen Sie im Menü "Workflow-Randleiste" unter "Extras" den Designer aus, um den Workflow zu öffnen.
Fügen Sie den Anforderungstrigger zu Ihrem Workflow hinzu, indem Sie die allgemeinen Schritte zum Hinzufügen eines Triggers ausführen.
In diesem Beispiel wird mit dem Trigger mit dem Namen „Wenn eine HTTP-Anforderung empfangen wird“ fortgesetzt.
Optional können Sie im Feld JSON-Schema für Anforderungstext ein JSON-Schema eingeben, das die Nutzlast bzw. Daten beschreibt, die der Trigger empfangen soll.
Der Designer verwendet dieses Schema, um Token zu generieren, die Triggerausgaben darstellen. Dann können Sie im gesamten Workflow Ihrer Logik-App ganz einfach auf diese Ausgaben verweisen. Informieren Sie sich über Token, die aus JSON-Schemas generiert werden.
Geben Sie für dieses Beispiel das folgende Schema an:
{ "type": "object", "properties": { "address": { "type": "object", "properties": { "streetNumber": { "type": "string" }, "streetName": { "type": "string" }, "town": { "type": "string" }, "postalCode": { "type": "string" } } } } }
Alternativ dazu können Sie ein JSON-Schema auch durch Bereitstellen einer Beispielnutzlast generieren:
Wählen Sie im Anforderungstrigger die Option Beispielnutzlast zum Generieren eines Schemas verwenden aus.
Geben Sie im Feld Geben oder fügen Sie eine JSON-Beispielnutzlast ein Ihre Beispielnutzlast ein, beispielsweise:
{ "address": { "streetNumber": "00000", "streetName": "AnyStreet", "town": "AnyTown", "postalCode": "11111-1111" } }Wählen Sie abschließend Fertig aus.
Im Feld JSON-Schema für Anforderungstext wird jetzt das generierte Schema angezeigt.
Speichern Sie den Workflow.
Das Feld "HTTP-URL " zeigt nun die generierte Rückruf-URL an, die andere Dienste zum Aufrufen und Auslösen des Logik-App-Workflows verwenden können. Diese URL enthält Abfrageparameter, die einen Shared Access Signature-Schlüssel (SAS) angeben, der für die Authentifizierung verwendet wird.
Kopieren Sie die Rückruf-URL, indem Sie das Symbol "Dateien kopieren" neben dem Feld "HTTP-URL " auswählen.
Um die Rückruf-URL zu testen und den Workflow auszulösen, senden Sie eine HTTP-Anforderung an die URL, einschließlich der Methode, die der Trigger Anforderung erwartet, indem Sie Ihr HTTP-Anforderungstool und dessen Anweisungen verwenden.
In diesem Beispiel wird die POST-Methode mit der kopierten URL verwendet, die wie im folgenden Beispiel aussieht:
POST https://{logic-app-name}.azurewebsites.net:443/api/{workflow-name}/triggers/{trigger-name}/invoke?api-version=2022-05-01&sp=%2Ftriggers%2F{trigger-name}%2Frun&sv=1.0&sig={shared-access-signature}
Auswählen der erwarteten Anforderungsmethode
Standardmäßig erwartet der Trigger Anforderung eine POST-Anforderung. Sie können jedoch eine andere Methode angeben, die vom Aufrufer verwendet werden muss (aber nur eine einzige).
Wählen Sie im Anforderungstrigger aus der Liste " Methode " die Methode aus, die der Trigger stattdessen erwarten soll. Alternativ dazu können Sie auch eine benutzerdefinierte Methode angeben.
Wählen Sie beispielsweise die Methode GET aus, damit Sie die Endpunkt-URL später testen können.
Übergeben von Parametern über die Endpunkt-URL
Wenn Sie Parameterwerte über die URL des Endpunkts annehmen möchten, haben Sie folgende Optionen:
Akzeptieren Sie Werte durch GET-Parameter oder URL-Parameter.
Diese Werte werden als Name-Wert-Paare an die Endpunkt-URL übergeben. Für diese Option müssen Sie die GET-Methode in Ihrem Anforderungstrigger verwenden. In einer nachfolgenden Aktion können Sie die Parameterwerte als Triggerausgaben abrufen, indem Sie die
triggerOutputs()-Funktion in einem Ausdruck verwenden.Akzeptieren Sie Werte über einen relativen Pfad für Parameter im Anforderungstrigger.
Diese Werte werden über einen relativen Pfad in der Endpunkt-URL übergeben. Sie müssen zudem die Methode explizit auswählen, die Ihr Trigger erwartet. In einer nachfolgenden Aktion können Sie die Parameterwerte als Triggerausgaben abrufen, indem direkt auf diese Ausgaben verweisen.
Akzeptieren von Werten durch GET-Parameter
Wählen Sie im Anforderungsauslöser aus der Liste "Methode" die GET-Methode aus.
Weitere Informationen finden Sie unter Auswählen der erwarteten Anforderungsmethode.
Fügen Sie dem Workflow die Antwortaktion hinzu, indem Sie die allgemeinen Schritte ausführen, um eine Aktion hinzuzufügen.
Führen Sie die folgenden Schritte aus, um den
triggerOutputs()-Ausdruck zu erstellen, der den Parameterwert abruft:Wählen Sie in der Antwortaktion innerhalb der Eigenschaft "Textkörper " aus, sodass die Optionen für dynamische Inhalte (Blitzsymbol) und Ausdrucks-Editor (Formelsymbol) angezeigt werden. Wählen Sie das Formelsymbol aus, um den Ausdrucks-Editor zu öffnen.
Geben Sie in das Feld „Ausdruck“ den folgenden Ausdruck ein, ersetzen Sie dabei
parameter-namedurch den Parameternamen, und wählen Sie OK aus.triggerOutputs()['queries']['parameter-name']
In der Eigenschaft Body wird der Ausdruck in das
triggerOutputs()-Token aufgelöst.
Wenn Sie den Workflow speichern, vom Designer weg und wieder zurück zum Designer navigieren, zeigt das Token den von Ihnen angegebenen Parameternamen an, z. B.:
In der Codeansicht wird die Eigenschaft Body in der Definition der Aktion „Antwort“ wie folgt angezeigt:
"body": "@{triggerOutputs()['queries']['parameter-name']}",Nehmen Sie beispielsweise an, dass Sie einen Wert für einen Parameter mit dem Namen
postalCodeübergeben möchten. Die Eigenschaft Body gibt die ZeichenfolgePostal Code:mit einem nachfolgenden Leerzeichen an, gefolgt vom entsprechenden Ausdruck:
Testen des aufrufbaren Endpunkts
Kopieren Sie im Trigger Anforderung die Workflow-URL, und fügen Sie die URL in ein anderes Browserfenster ein. Fügen Sie in der URL den Parameternamen und den Wert der URL im folgenden Format hinzu, und drücken Sie die EINGABETASTE.
...invoke/{parameter-name}/{parameter-value}?api-version=2022-05-01...Beispiel:
https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/12345?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}Der Browser gibt eine Antwort mit diesem Text zurück: "Postleitzahl: 123456"
Hinweis
Wenn Sie das Hash- oder Routesymbol (#) in den URI einschließen möchten, verwenden Sie stattdessen diese codierte Version: %25%23
Akzeptieren von Werten durch einen relativen Pfad
Öffnen Sie im Trigger Anforderung die Liste Erweiterte Parameter, und wählen Sie Relativer Pfad aus. Dadurch wird diese Eigenschaft zum Trigger hinzugefügt.
Geben Sie in der Eigenschaft Relativer Pfad den relativen Pfad für den Parameter in Ihrem JSON-Schema an, der von Ihrer URL akzeptiert werden soll. Beispiel:
/address/{postalCode}.
Fügen Sie in die Body-Eigenschaft der Antwortaktion das Token ein, das den Parameter darstellt, den Sie im relativen Pfad des Triggers angegeben haben.
Angenommen, die Antwortaktion soll
Postal Code: {postalCode}zurückgeben.Geben Sie in der Eigenschaft Text die Zeichenfolge
Postal Code:mit einem nachfolgenden Leerzeichen ein. Lassen Sie Ihren Cursor im Bearbeitungsfeld, damit die dynamische Inhaltsliste geöffnet bleibt.Wählen Sie das Blitzsymbol aus, um die Liste dynamischer Inhalte zu öffnen. Wählen Sie im Abschnitt "Empfang einer HTTP-Anforderung " die Ausgabe des Postcode-Triggers aus.
Die Eigenschaft Text enthält jetzt den ausgewählten Parameter.
Speichern Sie den Workflow.
Im Trigger Anforderung wird die Rückruf-URL aktualisiert und enthält nun den relativen Pfad, z. B.:
https://mystandardlogicapp.azurewebsites.net/api/Stateful-Workflow/triggers/When_a_HTTP_request_is_received/invoke/address/%7BpostalCode%7D?api-version=2022-05-01&sp=%2Ftriggers%2FWhen_a_HTTP_request_is_received%2Frun&sv=1.0&sig={shared-access-signature}Um den aufrufbaren Endpunkt zu testen, kopieren Sie die aktualisierte Rückruf-URL aus dem Anforderungstrigger, fügen Sie die URL in ein anderes Browserfenster ein, ersetzen Sie
%7BpostalCode%7Ddie URL durch 123456, und drücken Sie die EINGABETASTE.Der Browser gibt eine Antwort mit diesem Text zurück: "Postleitzahl: 123456"
Hinweis
Wenn Sie das Hash- oder Routesymbol (#) in den URI einschließen möchten, verwenden Sie stattdessen diese codierte Version: %25%23
Aufrufen des Workflows über eine Endpunkt-URL
Nach dem Erstellen des Endpunkts können Sie den Workflow auslösen, indem Sie eine HTTPS-Anforderung an die vollständige URL des Endpunkts senden. Azure Logic Apps-Workflows bieten integrierte Unterstützung für Endpunkte mit Direktzugriff.
Aus dem Schema generierte Token
Wenn Sie in Ihrem Trigger Anforderung ein JSON-Schema angeben, generiert der Workflow-Designer Token für die Eigenschaften in diesem Schema. Diese Token können Sie dann zur Weitergabe von Daten über Ihren Workflow verwenden.
Wenn Sie Ihrem JSON-Schema beispielsweise weitere Eigenschaften wie "suite" hinzufügen, stehen Ihnen in den späteren Schritten für Ihren Workflow Token für diese Eigenschaften zur Verfügung. So sieht das vollständige JSON-Schema aus:
{
"type": "object",
"properties": {
"address": {
"type": "object",
"properties": {
"streetNumber": {
"type": "string"
},
"streetName": {
"type": "string"
},
"suite": {
"type": "string"
},
"town": {
"type": "string"
},
"postalCode": {
"type": "string"
}
}
}
}
}
Aufrufen anderer Workflows
Sie können andere Workflows aufrufen, die Anforderungen empfangen können, indem Sie sie innerhalb des aktuellen Workflows schachteln. Führen Sie die folgenden Schritte aus, um diese Workflows aufzurufen:
Fügen Sie im Designer die Workflow-Operations-Aktion namens Workflow in dieser Logik-App aufrufen hinzu.
In der Liste Workflowname werden die geeigneten Workflows angezeigt, die Sie auswählen können.
Wählen Sie in der Liste Workflowname den Workflow aus, den Sie aufrufen möchten, z. B.:
Verweisen auf Inhalte über eine eingehende Anforderung
Wenn der Inhaltstyp der eingehenden Anforderung application/json lautet, können Sie auf die Eigenschaften in der eingehenden Anforderung verweisen. Andernfalls wird dieser Inhalt als einzelne binäre Einheit behandelt, die Sie an andere APIs übergeben können. Um innerhalb des Workflows Ihrer Logik-App auf diesen Inhalt zu verweisen, müssen Sie den Inhalt zuerst konvertieren.
Wenn Sie beispielsweise Inhalt vom Typ application/xml übergeben, können Sie mit dem xpath()-Ausdruck eine XPath-Extrahierung durchführen oder mit dem json()-Ausdruck XML in JSON konvertieren. Informieren Sie sich über das Arbeiten mit unterstützten Inhaltstypen.
Um die Ausgabe aus einer eingehenden Anforderung abzurufen, können Sie den triggerOutputs-Ausdruck verwenden. Nehmen Sie einmal an, Ihre Ausgabe sieht wie im folgenden Beispiel aus:
{
"headers": {
"content-type" : "application/json"
},
"body": {
"myProperty" : "property value"
}
}
Um auf die body-Eigenschaft zuzugreifen, können Sie den triggerBody() Ausdruck als Abkürzung verwenden.
Reagieren auf Anforderungen
Auf bestimmte Anforderungen, die Ihren Workflow auslösen, möchten Sie möglicherweise mit Rückgabe von Inhalten an den Aufrufer reagieren. Verwenden Sie die Antwortaktion , um den Statuscode, die Kopfzeile und den Textkörper ihrer Antwort zu erstellen. Diese Aktion kann an einer beliebigen Stelle im Workflow auftreten, nicht nur am Ende des Workflows. Wenn Ihr Workflow keine Antwortaktion enthält, antwortet der Endpunkt sofort mit dem Status "202 Akzeptiert ".
Damit der ursprüngliche Aufrufer die Antwort erfolgreich abrufen kann, müssen alle erforderlichen Schritte für die Antwort innerhalb des Anforderungstimeoutlimits abgeschlossen werden, es sei denn, der ausgelöste Workflow wird als geschachtelter Workflow aufgerufen. Wenn innerhalb dieses Limits keine Antwort erfolgt, kommt es bei der eingehenden Anforderung zu einem Timeout mit der Antwort 408 – Clienttimeout.
Bei geschachtelten Workflows wartet der übergeordnete Workflow so lange auf eine Antwort, bis alle Schritte abgeschlossen sind, unabhängig davon, wie lange dies dauert.
Erstellen der Antwort
Sie können mehrere Header und jeden Inhaltstyp in den Antworttext einbeziehen. Beispielsweise gibt der Header der folgenden Antwort an, dass der Inhaltstyp der Antwort ist application/json und dass der Textkörper Werte für die town und postalCode Eigenschaften enthält, basierend auf dem zuvor in diesem Thema beschriebenen JSON-Schema für den Anforderungstrigger.
Antworten haben folgende Eigenschaften:
| Eigenschaft (Anzeige) | Eigenschaft (JSON) | BESCHREIBUNG |
|---|---|---|
| Statuscode | statusCode |
Der HTTPS-Statuscode, der in der Antwort auf die eingehende Anforderung verwendet werden soll. Dieser Code kann jeder gültige Statuscode sein, der mit 2xx, 4xx oder 5xx beginnt. Mit 3xx beginnende Statuscodes sind jedoch nicht zulässig. |
| Kopfzeilen | headers |
Mindestens ein Header, der in die Antwort eingefügt werden soll. |
| Text | body |
Ein Textobjekt, das eine Zeichenfolge, ein JSON-Objekt oder sogar binäre Inhalte enthalten kann und auf das in einem vorherigen Schritt verwiesen wird. |
Um die JSON-Definition der Antwortaktion und die vollständige JSON-Definition des Workflows anzuzeigen, wechseln Sie von der Designeransicht zur Codeansicht.
"Response": {
"type": "Response",
"kind": "http",
"inputs": {
"body": {
"postalCode": "@triggerBody()?['address']?['postalCode']",
"town": "@triggerBody()?['address']?['town']"
},
"headers": {
"content-type": "application/json"
},
"statusCode": 200
},
"runAfter": {}
}
Häufig gestellte Fragen
Was ist mit der URL-Sicherheit für eingehende Anrufe?
Azure generiert sichere Callback-URLs für Logik-Apps mithilfe der Shared-Access-Signatur (SAS). Diese Signatur wird als Abfrageparameter übergeben und muss überprüft werden, bevor der Workflow ausgeführt werden kann. Azure generiert die Signatur durch eine eindeutige Kombination aus einem geheimen Schlüssel pro Logik-App, dem Namen des Triggers und dem ausgeführten Vorgang. Nur wenn eine Person Zugriff auf den geheimen Logik-App-Schlüssel hat, kann sie eine gültige Signatur generieren.
Wichtig
Bei Produktionssystemen und Systemen mit höherer Sicherheit wird dringend davon abgeraten, den Workflow direkt aus dem Browser aufzurufen. Das hat folgende Gründe:
- Der Schlüssel für den gemeinsamen Zugriff ist in der URL enthalten.
- Sie können keine Richtlinien für sichere Inhalte verwalten, da Domänen von Azure Logic Apps-Benutzern gemeinsam verwendet werden.
Weitere Informationen zu Sicherheit, Autorisierung und Verschlüsselung für eingehende Aufrufe an Ihren Workflow, z. B. Transport Layer Security (TLS), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), Verfügbarmachen Ihres Logik-App-Workflows mit Azure API Management oder Einschränken der IP-Adressen, die eingehende Anrufe stammen, finden Sie unter "Sicherer Zugriff und Daten – Zugriff für eingehende Anrufe zu anforderungsbasierten Triggern".
Kann ich anrufbare Endpunkte weiter konfigurieren?
Ja, HTTPS-Endpunkte unterstützen erweiterte Konfiguration über Azure API Management. Dieser Dienst ermöglicht Ihnen auch die konsistente Verwaltung aller APIs einschließlich der Logik-Apps, das Einrichten benutzerdefinierter Domänennamen, Verwenden weiterer Authentifizierungsmethoden und vieles mehr, z.B.:
- Anforderungsmethode festlegen
- URL neu schreiben
- Einrichten Ihrer API Management-Domänen im Azure-Portal
- Einrichten der Richtlinie zum Überprüfen auf Standardauthentifizierung