Empfangen und Beantworten eingehender HTTPS-Aufrufe an Workflows in Azure Logic Apps
Gilt für: Azure Logic Apps (Verbrauch + Standard)
In dieser Anleitung wird gezeigt, wie Sie einen Logik-App-Workflow erstellen, der eine eingehende HTTPS-Anforderung oder einen Anruf von einem anderen Dienst mithilfe des integrierten Triggers "Anforderung" empfangen und verarbeiten kann. Wenn Ihr Workflow diesen Trigger verwendet, können Sie dann mithilfe der integrierten Antwortaktion auf die HTTPS-Anforderung reagieren.
Hinweis
Die Gegenmaßnahme funktioniert nur, wenn Sie den Trigger Anforderung verwenden.
Zum Beispiel beschreibt die folgende Liste einige Beispielaufgaben, die Ihr Arbeitsablauf ausführen kann, wenn Sie den Anforderung und die Gegenmaßnahme verwenden:
Empfangen von und Antworten auf eine HTTPS-Anforderung von Daten in einer lokalen Datenbank.
Eine HTTPS-Anforderung, die von einem anderen Logik-App-Workflow gesendet wurde empfangen und beantworten
Eine Workflow-Ausführung auslösen, wenn ein externes Webhook-Ereignis eintritt
Um Ihren Workflow stattdessen durch Senden einer ausgehenden oder ausgehenden Anforderung auszuführen, verwenden Sie den integrierten HTTP-Trigger oder die integrierte HTTP-Aktion.
Voraussetzungen
Ein Azure-Konto und ein Azure-Abonnement. Falls Sie kein Abonnement besitzen, können Sie sich für ein kostenloses Azure-Konto registrieren.
Der Logik-App-Workflow, in dem Sie die eingehende HTTPS-Anforderung empfangen möchten. Um Ihren Workflow mit dem Trigger Anforderung starten zu können, müssen Sie mit einem leeren Workflow beginnen. Um die Gegenmaßnahme verwenden zu können, muss Ihr Workflow mit dem Trigger Anforderung beginnen.
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
Achtung
Für Szenarien, in denen Sie über vertrauliche Daten wie Anmeldeinformationen, Geheimnisse, Zugriffstoken, API-Schlüssel und andere ähnliche Informationen verfügen, sollten Sie ein Tool verwenden, das Ihre Daten mit den erforderlichen Sicherheitsfunktionen schützt, offline oder lokal funktioniert, Ihre Daten nicht mit der Cloud synchronisiert und keine Anmeldung bei einem Onlinekonto erfordert. Auf diese Weise verringern Sie das Risiko, dass vertrauliche Daten an die Öffentlichkeit gelangen.
Hinzufügen eines Anforderungstriggers
Der Trigger Anforderung erstellt einen manuell aufrufbaren Endpunkt, der nur eingehende Anforderungen über HTTPS verarbeitet. Wenn der Aufrufer eine Anforderung an diesen Endpunkt sendet, wird der Trigger Anforderung ausgelöst und führt den Workflow aus. Informationen zum Aufrufen dieses Triggers finden Sie unter Aufrufen, Triggern oder Verschachteln von Workflows mit HTTPS-Endpunkten in Azure Logic Apps.
Öffnen Sie im Azure-Portal Ihre Verbrauchslogik-App und deren leeren Workflow im Workflow-Designer.
Führen Sie im Designer die folgenden allgemeinen Schritte aus, um den integrierten Anforderungstrigger mit dem Namen Beim Empfang einer HTTP-Anforderung zu suchen und hinzuzufügen.
Geben Sie nach dem Anzeigen des Triggerinformationsfelds die folgenden Informationen an:
Eigenschaftenname JSON-Eigenschaftenname Erforderlich Beschreibung HTTP-POST-URL {keine} Ja Die Endpunkt-URL, die nach dem Speichern Ihres Workflows generiert und zum Senden einer Anforderung verwendet wird, die Ihren Workflow auslöst. JSON-Schema für Anforderungstext schema
No Das JSON-Schema, das die Eigenschaften und Werte im eingehenden Anforderungstext beschreibt. Der Designer verwendet dieses Schema zum Generieren von Token für die Eigenschaften in der Anforderung. Auf diese Weise kann Ihr Workflow Ausgaben des Triggers Anforderung analysieren, verarbeiten und an Ihren Workflow weitergeben.
Wenn Sie kein JSON-Schema haben, können Sie das Schema aus einer Beispielnutzlast generieren, indem Sie die Funktion Beispielnutzlast zum Generieren von Schema verwenden verwenden.Das folgende Beispiel zeigt ein JSON-Beispielschema:
Das folgende Beispiel zeigt das vollständige Beispiel-JSON-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, den Content-Type-Header in Ihre Anforderung aufzunehmen und diesen Header-Wert auf application/json festzulegen. Weitere Informationen finden Sie unter Behandeln von Inhaltstypen.
Das folgende Beispiel zeigt, wie der Content-Type-Header im JSON-Format angezeigt wird:
{ "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:
Wählen Sie im Anforderungstrigger die Option Beispielnutzlast zum Generieren eines Schemas verwenden aus.
Geben Sie die Beispielnutzlast ein, und wählen Sie dann Fertig aus.
Das folgende Beispiel zeigt die Beispielnutzlast:
{ "account": { "name": "Contoso", "ID": "12345", "address": { "number": "1234", "street": "Anywhere Street", "city": "AnyTown", "state": "AnyState", "country": "USA", "postalCode": "11111" } } }
Gehen Sie folgendermaßen vor, um zu überprüfen, ob der eingehende Aufruf einen Anforderungstext enthält, der dem angegebenen Schema entspricht:
Um zu erzwingen, dass die eingehende Nachricht genau die Felder enthält, die ihr Schema beschreibt, fügen Sie in Ihrem Schema die Eigenschaft
required
hinzu, und geben Sie die erforderlichen Felder an. Fügen Sie die EigenschaftaddtionalProperties
hinzu und setzen Sie den Wert auffalse
.Das folgende Schema gibt beispielsweise an, dass die eingehende Nachricht das Feld
msg
und keine anderen Felder enthalten muss:{ "properties": { "msg": { "type": "string" } }, "type": "object", "required": ["msg"], "additionalProperties": false }
Wählen Sie auf der Titelleiste des Triggers Anforderung auf die Schaltfläche mit den Auslassungspunkten (...).
Aktivieren Sie in den Einstellungen des Triggers die Schemavalidierung, und wählen Sie Fertig aus.
Wenn der Anforderungstext des eingehenden Aufruf nicht mit Ihrem Schema übereinstimmt, gibt der Trigger einen HTTP 400 Bad Request-Fehler zurück.
Um dem Trigger weitere Eigenschaften oder Parameter hinzuzufügen, öffnen Sie die Liste Neuen Parameter hinzufügen und wählen Sie die Parameter aus, die Sie hinzufügen möchten.
Eigenschaftenname JSON-Eigenschaftenname Erforderlich BESCHREIBUNG Methode method
No Die Methode, die die eingehende Anforderung zum Aufrufen der Logik-App verwenden muss Relativer Pfad relativePath
No Der relative Pfad für den Parameter, der von der Endpunkt-URL der Logik-App akzeptiert werden kann Im folgenden Beispiel wird die Eigenschaft Methode hinzugefügt:
Die Eigenschaft Methode wird im Trigger angezeigt, sodass Sie eine Methode aus der Liste auswählen können.
Wenn Sie fertig sind, speichern Sie Ihren Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.
Dieser Schritt generiert die URL, die Sie verwenden können, um eine Anforderung zu senden, die den Workflow auslöst.
Um die generierte URL zu kopieren, wählen Sie das Kopiersymbol neben der URL aus.
Hinweis
Wenn Sie das Hash- oder Nummernzeichen (#) im URI verwenden möchten, wenn Sie einen Aufruf an den Trigger Anforderung senden, nutzen Sie stattdessen diese codierte Version:
%25%23
.
Bauen Sie jetzt Ihren Workflow weiter auf, indem Sie im nächsten Schritt eine weitere Aktion hinzufügen. Beispielsweise können Sie auf die Anfrage antworten, indem Sie eine Antwortaktion hinzufügen, die Sie verwenden können, um eine benutzerdefinierte Antwort zurückzugeben, und die weiter unten in diesem Artikel beschrieben wird.
Hinweis
Ihr Workflow hält eine eingehende Anforderung nur für eine begrenzte Zeit offen. Unter der Annahme, dass Ihr Workflow auch eine Antwortaktion enthält, gibt Ihr Workflow den Status 504 GATEWAY TIMEOUT an den Anrufer zurück, wenn Ihr Workflow nach Ablauf dieser Zeit keine Antwort an den Anrufer zurückgibt. Wenn Ihr Workflow keine Response-Aktion enthält, gibt Ihr Workflow sofort den Status 202 ACCEPTED an den Anrufer zurück.
Weitere Informationen zu Sicherheit, Authentifizierung und Verschlüsselung für eingehende Aufrufe an Ihren Workflow (z. B. Transport Layer Security (TLS), früher bekannt als Secure Sockets Layer (SSL)), OAuth mit Microsoft Entra ID, SAS (Shared Access Signatures), Offenlegung Ihrer Logik-App-Ressource mit Azure API Management oder zum Einschränken der IP-Adressen, von denen eingehende Aufrufe ausgehen, finden Sie unter Sicherer Zugriff und Daten: Zugriff für eingehende Anrufe auf anforderungsbasierte Trigger.
Triggerausgaben
Die folgende Tabelle listet die Ausgaben des Triggers Anforderung auf:
JSON-Eigenschaftenname | Datentyp | Beschreibung |
---|---|---|
headers | Objekt | Ein JSON-Objekt, das die Header aus der Anforderung beschreibt |
body | Objekt | Ein JSON-Objekt, das den Textinhalt aus der Anforderung beschreibt |
Hinzufügen einer Antwortaktion
Wenn Sie den Trigger Anforderung zum Empfangen eingehender Anforderungen verwenden, können Sie die Antwort modellieren und die Nutzlastergebnisse mithilfe der integrierten Gegenmaßnahme, die nur mit dem Anforderungstrigger funktioniert, an den Aufrufer zurücksenden. Diese Kombination aus dem Trigger Anforderung und der Gegenmaßnahme bildet das Anforderung/Antwort-Muster. 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.
Wichtig
Wenn Ihre Antwortaktion die folgenden Header enthält, entfernt Azure Logic Apps diese Header automatisch aus der generierten Antwortnachricht, ohne eine Warnung oder einen Fehler anzuzeigen. Azure Logic Apps enthält diese Header nicht, obwohl der Dienst Sie nicht davon abhält, Workflows mit einer Antwortaktion mit diesen Headern zu speichern.
Allow
Content-*
-Header mit Ausnahme vonContent-Disposition
,Content-Encoding
undContent-Type
, wenn Sie POST- und PUT-Vorgänge verwenden, aber nicht für GET-VorgängeCookie
Expires
Last-Modified
Set-Cookie
Transfer-Encoding
Wenn Sie in einem komplexen Workflow mit Verzweigungen eine oder mehrere Response-Aktionen haben, stellen Sie sicher, dass der Workflow während der Laufzeit mindestens eine Response-Aktion verarbeitet. Wenn alle Antwortaktionen übersprungen werden, erhält der Aufrufer andernfalls einen Fehler 502 Bad Gateway (Ungültiges Gateway), selbst wenn der Workflow erfolgreich abgeschlossen wurde.
In einem zustandslosen Workflow einer Standard-Logik-App muss die Aktion „Antwort“ als letzte in Ihrem Workflow auftreten. Wenn die Aktion an einer anderen Stelle angezeigt wird, führt Azure Logic Apps die Aktion trotzdem erst aus, wenn alle anderen Aktionen beendet sind.
Führen Sie im Workflow-Designer die folgenden allgemeinen Schritte aus, um die integrierte Antwortaktion mit dem Namen Antwort zu suchen und hinzuzufügen.
Der Einfachheit halber wird in den folgenden Beispiele ein reduzierter Trigger Anforderung dargestellt.
Fügen Sie im Feld Informationen zur Aktion die erforderlichen Werte für die Antwortnachricht hinzu.
Eigenschaftenname JSON-Eigenschaftenname Erforderlich BESCHREIBUNG Statuscode statusCode
Ja Der in der Antwort zurückzugebende Statuscode Headers headers
No Ein JSON-Objekt, das einen oder mehrere Header beschreibt, die in die Antwort eingeschlossen werden sollen Text body
No Der Antworttext. Wenn Sie innerhalb eines Textfelds auswählen, wird die dynamische Inhaltsliste automatisch geöffnet. Anschließend können Sie Token auswählen, die alle verfügbaren Ausgaben aus vorherigen Schritten des Workflows darstellen. Die Eigenschaften aus dem von Ihnen angegebenen Schema werden auch in dieser dynamischen Inhaltsliste angezeigt. Sie können diese Eigenschaften auswählen, die in Ihrem Workflow verwendet werden sollen.
Fügen Sie beispielsweise im Feld Headers Content-Type als Schlüsselnamen ein und legen Sie den Schlüsselwert auf application/json fest, wie weiter oben in diesem Artikel erwähnt. Für das Feld Text können Sie die Ausgabe des Triggertexts aus der Liste mit dynamischen Inhalten auswählen.
Um die Header im JSON-Format anzuzeigen, wählen Sie Zur Textansicht wechseln aus.
Um weitere Eigenschaften für die Aktion hinzuzufügen, z. B. ein JSON-Schema für den Antworttext, aus der Liste Neuen Parameter hinzufügen wählen Sie die Parameter aus, die Sie hinzufügen möchten.
Wenn Sie fertig sind, speichern Sie Ihren Workflow. Wählen Sie auf der Symbolleiste des Designers Speichern aus.
Testen Ihres Workflows
Um den Workflow auszulösen, senden Sie eine HTTP-Anforderung an die für den Trigger Anforderung generierte URL, einschließlich der Methode, die der Trigger Anforderung erwartet, indem Sie Ihr HTTP-Anforderungstools und dessen Anweisungen verwenden.
Weitere Informationen zur zugrunde liegenden JSON-Definition des Triggers und zum Aufzurufen dieses Triggers finden Sie in den Themen Triggertyp Anforderung und unter Aufrufen, Auslösen oder Schachteln von Workflows mit HTTP-Endpunkten in Azure Logic Apps.
Sicherheit und Authentifizierung
In einem Standard-Logik-App-Workflow, der mit dem Anforderungstrigger beginnt (aber keinem Webhooktrigger), können Sie die Azure Functions-Bereitstellung für die Authentifizierung eingehender Aufrufe, die an den durch diesen Trigger erstellten Endpunkt gesendet wurden, mithilfe einer verwalteten Identität verwenden. Diese Bereitstellung wird auch als „Easy Auth“ (einfache Authentifizierung) bezeichnet. Weitere Informationen hierzu finden Sie unter Auslösen von Workflows in Standard-Logik-Apps mit Easy Auth.
Informationen zu Sicherheit, Autorisierung und Verschlüsselung für eingehende Aufrufe an Ihren Logic App-Workflow (z. B. Transport Layer Security (TLS), früher bekannt als Secure Sockets Layer (SSL)), Microsoft Entra ID Open Authentication (Microsoft Entra ID OAuth), Offenlegung Ihrer Logik-App mit Azure API Management oder zum Einschränken der IP-Adressen, von denen eingehende Aufrufe ausgehen, finden Sie unter Sicherer Zugriff und Daten: Zugriff für eingehende Aufrufe anforderungsbasierter Trigger.