Erstellen benutzerdefinierter APIs, die über Azure Logic Apps aufgerufen werden könnenCreate custom APIs you can call from Azure Logic Apps

Obwohl Azure Logic Apps Hunderte Connectors bietet, die Sie in Logik-App-Workflows verwenden können, möchten Sie möglicherweise APIs, Systeme und Dienste aufrufen, die nicht als Connectors zur Verfügung stehen.Although Azure Logic Apps offers hundreds of connectors that you can use in logic app workflows, you might want to call APIs, systems, and services that aren't available as connectors. Sie können eigene APIs erstellen, die Aktionen und Trigger zur Verwendung in Logik-Apps bereitstellen.You can create your own APIs that provide actions and triggers to use in logic apps. Es gibt noch andere Gründe, warum Sie möglicherweise eigene APIs erstellen möchten, die Sie in Logik-App-Workflows aufrufen können:Here are other reasons why you might want to create your own APIs that you can call from logic app workflows:

  • Erweitern Ihrer aktuellen Systemintegrations- und Datenintegrationsworkflows.Extend your current system integration and data integration workflows.
  • Um Kunden zu helfen, Ihren Dienst zum Verwalten professioneller oder persönlicher Aufgaben zu verwenden.Help customers use your service to manage professional or personal tasks.
  • Erweitern von Reichweite, Erkennbarkeit und Verwendung Ihres Diensts.Expand the reach, discoverability, and use for your service.

Connectors sind grundsätzlich Web-APIs, die REST-APIs für austauschbare Schnittstellen, Swagger-Metadatenformat für Dokumentation und JSON als Datenaustauschformat verwenden.Basically, connectors are web APIs that use REST for pluggable interfaces, Swagger metadata format for documentation, and JSON as their data exchange format. Da Connectors REST-APIs sind, die über HTTP-Endpunkte kommunizieren, können Sie eine beliebige Sprache wie .NET, Java, Python oder Node.js für die Erstellung von Connectors verwenden.Because connectors are REST APIs that communicate through HTTP endpoints, you can use any language, like .NET, Java, Python, or Node.js, for building connectors. Sie können Ihre APIs auch in Azure App Service hosten, einem „Platform as a Service“-Angebot (PaaS), das eine der besten, einfachsten und skalierbarsten Möglichkeiten zum Hosten von APIs bietet.You can also host your APIs on Azure App Service, a platform-as-a-service (PaaS) offering that provides one of the best, easiest, and most scalable ways for API hosting.

Damit benutzerdefinierte APIs mit Logik-Apps funktionieren, kann Ihre API Aktionen bereitstellen, die bestimmte Aufgaben in Logis App-Workflows ausführen.For custom APIs to work with logic apps, your API can provide actions that perform specific tasks in logic app workflows. Ihre API kann auch als Trigger dienen, der einen Logik-App-Workflow startet, wenn neue Daten oder ein Ereignis eine angegebene Bedingung erfüllen.Your API can also act as a trigger that starts a logic app workflow when new data or an event meets a specified condition. Dieses Thema beschreibt allgemeine Muster, die Sie zum Erstellen von Aktionen und Triggern in Ihrer API befolgen können, basierend auf dem Verhalten, dass Ihre API bieten soll.This topic describes common patterns that you can follow for building actions and triggers in your API, based on the behavior that you want your API to provide.

Sie können Ihre APIs in Azure App Service hosten, einem PaaS-Angebot (Platform-as-a-Service), das ein einfaches API-Hosting mit hoher Skalierbarkeit ermöglicht.You can host your APIs on Azure App Service, a platform-as-a-service (PaaS) offering that provides highly scalable, easy API hosting.

Tipp

Sie können Ihre APIs zwar als Web-Apps bereitstellen, sollten jedoch in Erwägung ziehen, Ihre APIs als API-Apps bereitzustellen. Dadurch wird das Erstellen, Hosten und Nutzen der APIs in der Cloud und lokal vereinfacht.Although you can deploy your APIs as web apps, consider deploying your APIs as API apps, which can make your job easier when you build, host, and consume APIs in the cloud and on premises. Sie müssen keinen Code in Ihren APIs ändern. Stellen Sie einfach Ihren Code für eine API-App bereit.You don't have to change any code in your APIs -- just deploy your code to an API app. Erfahren Sie beispielsweise, wie Sie mit den folgenden Sprachen API-Apps erstellen:For example, learn how to build API apps created with these languages:

API-App-Beispiele für Logik-Apps finden Sie im Azure Logic Apps GitHub-Repository oder Blog.For API App samples built for logic apps, visit the Azure Logic Apps GitHub repository or blog.

Wie unterscheiden sich benutzerdefinierte APIs von benutzerdefinierten Connectors?How do custom APIs differ from custom connectors?

Benutzerdefinierte APIs und benutzerdefinierte Connectors sind Web-APIs, die REST-APIs für austauschbare Schnittstellen, das Swagger-Metadatenformat für Dokumentation und JSON als Datenaustauschformat verwenden.Custom APIs and custom connectors are web APIs that use REST for pluggable interfaces, Swagger metadata format for documentation, and JSON as their data exchange format. Da diese APIS und Connectors REST-APIs sind, die über HTTP-Endpunkte kommunizieren, können Sie eine beliebige Sprache wie .NET, Java, Python oder Node.js für die Erstellung benutzerdefinierter APIs und Connectors verwenden.And because these APIs and connectors are REST APIs that communicate through HTTP endpoints, you can use any language, like .NET, Java, Python, or Node.js, for building custom APIs and connectors.

Mit benutzerdefinierten APIs können Sie APIs aufrufen, die keine Connectors sind, und Endpunkte bereitstellen, die Sie mit HTTP + Swagger, Azure API Management oder App Services aufrufen können.Custom APIs let you call APIs that aren't connectors, and provide endpoints that you can call with HTTP + Swagger, Azure API Management, or App Services. Benutzerdefinierte Connectors funktionieren wie benutzerdefinierte APIs, haben aber auch diese Merkmale:Custom connectors work like custom APIs but also have these attributes:

  • Werden als Logic Apps-Connectorressourcen in Azure registriert.Registered as Logic Apps Connector resources in Azure.
  • Werden im Designer für Logic Apps mit Symbolen neben von Microsoft verwalteten Connectors angezeigt.Appear with icons alongside Microsoft-managed connectors in the Logic Apps Designer.
  • Sind nur für die Ersteller der Connectors und Benutzer von Logik-Apps verfügbar, die denselben Azure Active Directory-Mandanten und dasselbe Azure-Abonnement in der Region haben, in der die Logik-Apps bereitgestellt werden.Available only to the connectors' authors and logic app users who have the same Azure Active Directory tenant and Azure subscription in the region where the logic apps are deployed.

Sie können registrierte Connectors auch für die Microsoft-Zertifizierung vorschlagen.You can also nominate registered connectors for Microsoft certification. Dieser Prozess überprüft, ob registrierte Connectors die Kriterien für die öffentliche Nutzung erfüllen, und stellt diese Connectors Benutzern in Power Automate und Microsoft Power Apps zur Verfügung.This process verifies that registered connectors meet the criteria for public use and makes those connectors available for users in Power Automate and Microsoft Power Apps.

Weitere Informationen zu benutzerdefinierten Connectors finden Sie unterFor more information about custom connectors, see

Nützliche ToolsHelpful tools

Eine benutzerdefinierte API funktioniert am besten mit Logik-Apps, wenn die API auch über ein Swagger-Dokument verfügt, das die API-Vorgänge und -Parameter beschreibt.A custom API works best with logic apps when the API also has a Swagger document that describes the API's operations and parameters. Viele Bibliotheken wie Swashbuckle können die Swagger-Datei automatisch für Sie generieren.Many libraries, like Swashbuckle, can automatically generate the Swagger file for you. Um die Swagger-Datei für Anzeigenamen, Eigenschaftentypen usw. mit Anmerkungen zu versehen, können Sie auch TRex verwenden, damit Ihre Swagger-Datei gut mit Logik-Apps funktioniert.To annotate the Swagger file for display names, property types, and so on, you can also use TRex so that your Swagger file works well with logic apps.

AktionsmusterAction patterns

Damit Logik-Apps Aufgaben ausführen, sollte Ihre benutzerdefinierte API Aktionen bereitstellen.For logic apps to perform tasks, your custom API should provide actions. Jeder Vorgang in Ihrer API wird einer Aktion zugeordnet.Each operation in your API maps to an action. Eine einfache Aktion ist ein Controller, der HTTP-Anforderungen akzeptiert und HTTP-Antworten zurückgibt.A basic action is a controller that accepts HTTP requests and returns HTTP responses. Beispielsweise sendet eine Logik-App eine HTTP-Anforderung an Ihre Web-App oder API-App.So for example, a logic app sends an HTTP request to your web app or API app. Ihre App gibt dann eine HTTP-Antwort zurück, zusammen mit Inhalt, den die Logik-App verarbeiten kann.Your app then returns an HTTP response, along with content that the logic app can process.

Für Standardaktionen können Sie eine HTTP-Anforderungsmethode in Ihre API schreiben und diese Methode in einer Swagger-Datei beschreiben.For a standard action, you can write an HTTP request method in your API and describe that method in a Swagger file. Sie können dann Ihre API direkt mit einer HTTP-Aktion oder einer HTTP + Swagger-Aktion aufrufen.You can then call your API directly with an HTTP action or an HTTP + Swagger action. Standardmäßig müssen Antworten innerhalb des Timeoutlimits für die Anforderung zurückgegeben werden.By default, responses must be returned within the request timeout limit.

Standardaktionsmuster

Damit eine Logik-App wartet, während Ihre API zeitaufwändigere Aufgaben abschließt, kann Ihre API dem in diesem Thema beschriebenen asynchronen Abrufmuster oder Webhookmuster folgen.To make a logic app wait while your API finishes longer-running tasks, your API can follow the asynchronous polling pattern or the asynchronous webhook pattern described in this topic. Stellen Sie sich als Analogie, anhand der Sie sich die unterschiedlichen Verhaltensweisen dieser Muster veranschaulichen können, den Prozess der Bestellung eines nach Kundenwünschen gebackenen Kuchens bei einer Bäckerei vor.For an analogy that helps you visualize these patterns' different behaviors, imagine the process for ordering a custom cake from a bakery. Das Abrufmuster entspricht dem Verhalten, dass Sie alle 20 Minuten in der Bäckerei nachfragen, ob der Kuchen fertig ist.The polling pattern mirrors the behavior where you call the bakery every 20 minutes to check whether the cake is ready. Das Webhookmuster entspricht dem Verhalten, dass die Bäckerei nach Ihrer Telefonnummer fragt, um Sie anrufen zu können, wenn der Kuchen fertig ist.The webhook pattern mirrors the behavior where the bakery asks you for your phone number so they can call you when the cake is ready.

Beispiele finden Sie im Logic Apps GitHub-Repository.For samples, visit the Logic Apps GitHub repository. Erfahren Sie auch mehr über die Nutzung der Messung für Aktionen.Also, learn more about usage metering for actions.

Ausführen zeitaufwändiger Aufgaben mit dem AbrufaktionsmusterPerform long-running tasks with the polling action pattern

Damit Ihre API Aufgaben ausführen kann, deren Ausführungsdauer das Timeoutlimit für die Anforderung überschreiten könnte, können Sie das asynchrone Abrufmuster verwenden.To have your API perform tasks that could run longer than the request timeout limit, you can use the asynchronous polling pattern. Bei diesem Muster arbeitet Ihre API in einem separaten Thread, behält aber eine aktive Verbindung mit der Logic Apps-Engine bei.This pattern has your API do work in a separate thread, but keep an active connection to the Logic Apps engine. So wird kein Timeout für die Logik-App wirksam, noch wird mit dem nächsten Schritt im Workflow fortgefahren, bevor die Ausführung Ihrer API abgeschlossen ist.That way, the logic app does not time out or continue with the next step in the workflow before your API finishes working.

Das allgemeine Muster sieht so aus:Here's the general pattern:

  1. Stellen Sie sicher, dass die Engine weiß, dass Ihre API die Anforderung akzeptiert und die Verarbeitung gestartet hat.Make sure that the engine knows that your API accepted the request and started working.
  2. Wenn die Engine darauffolgende Anforderungen zum Auftragsstatus stellt, sorgen Sie dafür, dass die Engine informiert wird, wenn Ihre API die Aufgabe abschließt.When the engine makes subsequent requests for job status, let the engine know when your API finishes the task.
  3. Lassen Sie relevante Daten an die Engine zurückgeben, sodass der Logik-App-Workflow fortgesetzt werden kann.Return relevant data to the engine so that the logic app workflow can continue.

Wenden Sie nun die obige Bäckereianalogie auf das Abrufmuster an, und stellen Sie sich vor, dass Sie in einer Bäckerei anrufen und einen Kuchen nach Ihren Wünschen bestellen.Now apply the previous bakery analogy to the polling pattern, and imagine that you call a bakery and order a custom cake for delivery. Die Herstellung des Kuchens braucht ihre Zeit, und Sie möchten nicht am Telefon warten, während die Bäckerei den Kuchen backt.The process for making the cake takes time, and you don't want to wait on the phone while the bakery works on the cake. Die Bäckerei bestätigt Ihre Bestellung, und Sie rufen alle 20 Minuten an, um den Status des Kuchens abzufragen.The bakery confirms your order and has you call every 20 minutes for the cake's status. Nach 20 Minuten rufen Sie in der Bäckerei an, aber sie erfahren, dass der Kuchen noch nicht fertig ist, und Sie nach weiteren 20 Minuten anrufen sollen.After 20 minutes pass, you call the bakery, but they tell you that your cake isn't done and that you should call in another 20 minutes. Dieses Hin und Her und wird fortgesetzt, bis die Bäckerei Ihnen, als Sie anrufen, mitteilt, dass Ihre Bestellung fertig ist und den Kuchen liefert.This back-and-forth process continues until you call, and the bakery tells you that your order is ready and delivers your cake.

Wir werden nun dieses Abrufmuster zurückverfolgen.So let's map this polling pattern back. Die Bäckerei stellt Ihre benutzerdefinierte API dar, während Sie als Kuchenkäufer die Logic Apps-Engine darstellen.The bakery represents your custom API, while you, the cake customer, represent the Logic Apps engine. Wenn die Engine eine Anforderung an Ihre API sendet, bestätigt die API die Anforderung und antwortet mit dem Zeitintervall, in dem die Engine den Auftragsstatus abfragen kann.When the engine calls your API with a request, your API confirms the request and responds with the time interval when the engine can check job status. Die Engine prüft immer wieder den Auftragsstatus, bis Ihre API antwortet, dass der Auftrag erledigt ist, und Daten an Ihre Logik-App zurückgibt, die dann den Workflow fortsetzt.The engine continues checking job status until your API responds that the job is done and returns data to your logic app, which then continues workflow.

Abrufaktionsmuster

Hier werden die einzelnen Schritte Ihrer API aus API-Sicht beschrieben:Here are the specific steps for your API to follow, described from the API's perspective:

  1. Wenn Ihre API eine HTTP-Anforderung zum Starten der Ausführung erhält, wird unverzüglich eine HTTP-202 ACCEPTED-Antwort mit dem location-Header zurückgegeben, der weiter unten in diesem Schritt beschrieben wird.When your API gets an HTTP request to start work, immediately return an HTTP 202 ACCEPTED response with the location header described later in this step. Diese Antwort teilt der Logic Apps-Engine mit, dass Ihre API die Anforderung erhalten hat, die Anforderungsnutzlast (Dateneingabe) akzeptiert hat und sie nun verarbeitet.This response lets the Logic Apps engine know that your API got the request, accepted the request payload (data input), and is now processing.

    Die 202 ACCEPTED-Antwort sollte diese Header enthalten:The 202 ACCEPTED response should include these headers:

    • Erforderlich: Ein location-Header, der den absoluten Pfad zu einer URL angibt, über die die Logic Apps-Engine den Auftragsstatus Ihrer API überprüfen kann.Required: A location header that specifies the absolute path to a URL where the Logic Apps engine can check your API's job status

    • Optional: Ein retry-after-Header, der die Anzahl der Sekunden angibt, für die die Engine vor der Überprüfung des Auftragsstatus über die location-URL warten sollte.Optional: A retry-after header that specifies the number of seconds that the engine should wait before checking the location URL for job status.

      Standardmäßig führt die Engine alle 20 Sekunden eine Überprüfung durch.By default, the engine checks every 20 seconds. Schließen Sie zum Angeben eines anderen Zeitintervalls den retry-after-Header und die Anzahl der Sekunden bis zum nächsten Abruf ein.To specify a different interval, include the retry-after header and the number of seconds until the next poll.

  2. Wenn die angegebene Zeit verstrichen ist, ruft die Logic Apps-Engine die location-URL zum Prüfen des Auftragsstatus auf.After the specified time passes, the Logic Apps engine polls the location URL to check job status. Ihre API sollte diese Überprüfungen ausführen und diese Antworten zurückgeben:Your API should perform these checks and return these responses:

    • Wenn der Auftrag abgeschlossen ist, wird eine HTTP-200 OK-Antwort zusammen mit der Antwortnutzlast (Eingabe für den nächsten Schritt) zurückgegeben.If the job is done, return an HTTP 200 OK response, along with the response payload (input for the next step).

    • Wenn der Auftrag immer noch verarbeitet wird, wird eine weitere HTTP-202 ACCEPTED-Antwort zurückgegeben, aber mit den gleichen Headern wie die ursprüngliche Antwort.If the job is still processing, return another HTTP 202 ACCEPTED response, but with the same headers as the original response.

Wenn Ihre API diesem Muster folgt, müssen Sie keine Änderungen in der Definition des Logik-App-Workflows vornehmen, um die Überprüfung des Auftragsstatus fortzusetzen.When your API follows this pattern, you don't have to do anything in the logic app workflow definition to continue checking job status. Wenn die Engine eine HTTP-202 ACCEPTED-Antwort und einen gültigen location-Header erhält, respektiert die Engine das asynchrone Muster und überprüft die location-Header, bis Ihre API eine Nicht-202-Antwort zurückgibt.When the engine gets an HTTP 202 ACCEPTED response and a valid location header, the engine respects the asynchronous pattern and checks the location header until your API returns a non-202 response.

Tipp

Ein Beispiel für asynchrone Muster finden Sie in diesem asynchronen Controller-Antwortbeispiel in GitHub.For an example asynchronous pattern, review this asynchronous controller response sample in GitHub.

Ausführen zeitaufwändiger Aufgaben mit dem WebhookaktionsmusterPerform long-running tasks with the webhook action pattern

Als Alternative können Sie die Webhookmuster für zeitaufwändige Aufgaben und asynchrone Verarbeitung verwenden.As an alternative, you can use the webhook pattern for long-running tasks and asynchronous processing. Bei diesem Muster hält die Logik-App an und wartet vor dem Fortsetzen des Workflows auf einen "Rückruf" von Ihrer API, der den Abschluss der Verarbeitung anfordert.This pattern has the logic app pause and wait for a "callback" from your API to finish processing before continuing workflow. Dieser Rückruf ist ein HTTP POST, der eine Nachricht an eine URL sendet, wenn ein Ereignis eintritt.This callback is an HTTP POST that sends a message to a URL when an event happens.

Wenden Sie nun die obige Bäckereianalogie auf das Webhookmuster an, und stellen Sie sich vor, dass Sie in einer Bäckerei anrufen und einen Kuchen nach Ihren Wünschen bestellen.Now apply the previous bakery analogy to the webhook pattern, and imagine that you call a bakery and order a custom cake for delivery. Die Herstellung des Kuchens braucht ihre Zeit, und Sie möchten nicht am Telefon warten, während die Bäckerei den Kuchen backt.The process for making the cake takes time, and you don't want to wait on the phone while the bakery works on the cake. Die Bäckerei bestätigt Ihre Bestellung, aber diesmal geben Sie Ihre Telefonnummer an, damit Sie angerufen werden können, wenn der Kuchen fertig ist.The bakery confirms your order, but this time, you give them your phone number so they can call you when the cake is done. Dieses Mal informiert die Bäckerei Sie, wenn Ihre Bestellung ausgeführt ist, und liefert den Kuchen.This time, the bakery tells you when your order is ready and delivers your cake.

Beim Rückverfolgen dieses Webhookmusters stellen wir fest, dass die Bäckerei Ihre benutzerdefinierte API darstellt, während Sie als Kuchenkäufer die Logic Apps-Engine darstellen.When we map this webhook pattern back, the bakery represents your custom API, while you, the cake customer, represent the Logic Apps engine. Die Engine ruft Ihre API mit einer Anforderung auf und bezieht einen URL-„Rückruf“ ein.The engine calls your API with a request and includes a "callback" URL. Wenn der Auftrag abgeschlossen ist, benachrichtigt Ihre API die Engine über die URL und gibt Daten an Ihre Logik-App zurück, die dann den Workflow fortsetzt.When the job is done, your API uses the URL to notify the engine and return data to your logic app, which then continues workflow.

Richten Sie für dieses Muster zwei Endpunkte auf dem Controller ein: subscribe undunsubscribe.For this pattern, set up two endpoints on your controller: subscribe and unsubscribe

  • subscribe-Endpunkt: Wenn die Ausführung die Aktion Ihrer API im Workflow erreicht, ruft die Logic Apps-Engine den subscribe-Endpunkt auf.subscribe endpoint: When execution reaches your API's action in the workflow, the Logic Apps engine calls the subscribe endpoint. Dieser Schritt bewirkt, dass die Logik-App eine Rückruf-URL erstellt, die Ihre API speichert, und dann auf den Rückruf von Ihrer API wartet, wenn die Arbeit abgeschlossen ist.This step causes the logic app to create a callback URL that your API stores and then wait for the callback from your API when work is complete. Dann sendet Ihre API wieder einen HTTP POST-Rückruf an die URL und übergibt alle zurückgegebenen Inhalte und Header als Eingabe an die Logik-App.Your API then calls back with an HTTP POST to the URL and passes any returned content and headers as input to the logic app.

  • unsubscribe-Endpunkt: Wenn die Logik-App abgebrochen wird, ruft die Logic Apps-Engine den unsubscribe-Endpunkt auf.unsubscribe endpoint: If the logic app run is canceled, the Logic Apps engine calls the unsubscribe endpoint. Ihre API kann dann die Registrierung der Rückruf-URL aufheben und alle Prozesse nach Bedarf beenden.Your API can then unregister the callback URL and stop any processes as necessary.

Webhookaktionsmuster

Hinweis

Der Logic App-Designer unterstützt derzeit keine Ermittlung von Webhookendpunkten über Swagger.Currently, the Logic App Designer doesn't support discovering webhook endpoints through Swagger. Also müssen Sie für dieses Muster eine Webhookaktion hinzufügen und URL, Header und Text für die Anforderung angeben.So for this pattern, you have to add a Webhook action and specify the URL, headers, and body for your request. Siehe auch Workflow-Aktionen und -Trigger.See also Workflow actions and triggers. Um die Rückruf-URL zu übergeben, können Sie in jedem dieser vorherigen Felder nach Bedarf die @listCallbackUrl()-Workflowfunktion verwenden.To pass in the callback URL, you can use the @listCallbackUrl() workflow function in any of the previous fields as necessary.

Tipp

Ein Beispiel für Webhookmuster finden Sie in diesem Webhooktriggerbeispiel in GitHub.For an example webhook pattern, review this webhook trigger sample in GitHub.

TriggermusterTrigger patterns

Ihre benutzerdefinierte API kann als Trigger dienen, der einen Logik-App-Workflow startet, wenn neue Daten oder ein Ereignis eine angegebene Bedingung erfüllen.Your custom API can act as a trigger that starts a logic app when new data or an event meets a specified condition. Dieser Trigger kann entweder regelmäßig überprüfen, ob neue Daten oder Ereignisse an Ihrem Dienstendpunkt vorliegen, oder warten und lauschen.This trigger can either check regularly, or wait and listen, for new data or events at your service endpoint. Wenn neue Daten oder ein Ereignis die angegebene Bedingung erfüllen, wird der Trigger ausgelöst und startet die Logik-App, die auf diesen Trigger lauscht.If new data or an event meets the specified condition, the trigger fires and starts the logic app, which is listening to that trigger. Um Logik-Apps auf diese Weise zu starten, kann Ihre API dem Abruftrigger- oder Webhooktriggermuster folgen.To start logic apps this way, your API can follow the polling trigger or the webhook trigger pattern. Diese Muster ähneln ihren Äquivalenten für Abrufaktionen und Webhookaktionen.These patterns are similar to their counterparts for polling actions and webhook actions. Erfahren Sie auch mehr über die Nutzung der Messung für Trigger.Also, learn more about usage metering for triggers.

Regelmäßiges Überprüfen auf neue Daten oder Ereignisse mit dem AbruftriggermusterCheck for new data or events regularly with the polling trigger pattern

Ein Abruftrigger verhält sich ähnlich wie die zuvor in diesem Thema beschriebene Abrufaktion.A polling trigger acts much like the polling action previously described in this topic. Die Logic Apps-Engine ruft in regelmäßigen Abständen den Triggerendpunkt auf und überprüft ihn auf neue Daten oder Ereignisse.The Logic Apps engine periodically calls and checks the trigger endpoint for new data or events. Wenn die Engine neue Daten oder Ereignisse findet, die die angegebene Bedingung erfüllen, wird der Trigger ausgelöst.If the engine finds new data or an event that meets your specified condition, the trigger fires. Dann erstellt die Engine eine Instanz der Logik-App, die die Daten als Eingabe verarbeitet.Then, the engine creates a logic app instance that processes the data as input.

Abruftriggermuster

Hinweis

Jede Abrufanforderung zählt als Aktionsausführung, auch wenn keine Logik-App-Instanz erstellt wird.Each polling request counts as an action execution, even when no logic app instance is created. Um die mehrfache Verarbeitung der gleichen Daten zu verhindern, sollte Ihr Trigger Daten bereinigen, die bereits gelesen und an die Logik-App übergeben wurden.To prevent processing the same data multiple times, your trigger should clean up data that was already read and passed to the logic app.

Hier werden die einzelnen Schritte für einen Abruftrigger aus API-Sicht beschrieben:Here are specific steps for a polling trigger, described from the API's perspective:

Neue Daten oder Ereignis gefunden?Found new data or event? API-AntwortAPI response
GefundenFound Zurückgeben eines HTTP-200 OK-Status mit der Antwortnutzlast (Eingabe für den nächsten Schritt).Return an HTTP 200 OK status with the response payload (input for next step).
Diese Antwort erstellt eine Instanz der Logik-App und startet den Workflow.This response creates a logic app instance and starts the workflow.
Nicht gefundenNot found Zurückgeben eines HTTP-202 ACCEPTED-Status mit einem location- und einem retry-after-Header.Return an HTTP 202 ACCEPTED status with a location header and a retry-after header.
Für Trigger sollte der location-Header auch einen triggerState-Abfrageparameter enthalten, der in der Regel ein „Zeitstempel“ ist.For triggers, the location header should also contain a triggerState query parameter, which is usually a "timestamp." Ihre API kann mit diesem Bezeichner den Zeitpunkt der letzten Auslösung der Logik-App nachverfolgen.Your API can use this identifier to track the last time that the logic app was triggered.

Um beispielsweise Ihren Dienst in regelmäßigen Abständen auf neue Dateien zu überprüfen, können Sie einen Abruftrigger mit diesem Verhalten erstellen:For example, to periodically check your service for new files, you might build a polling trigger that has these behaviors:

Anforderung enthält triggerState?Request includes triggerState? API-AntwortAPI response
NeinNo Zurückgeben eines HTTP-202 ACCEPTED-Status zuzüglich eines location-Headers, wobei triggerState auf den aktuellen Zeitpunkt und das retry-after-Intervall auf 15 Sekunden festgelegt ist.Return an HTTP 202 ACCEPTED status plus a location header with triggerState set to the current time and the retry-after interval to 15 seconds.
JaYes Überprüfen Ihres Diensts auf Dateien, die nach DateTime für triggerState hinzugefügt wurden.Check your service for files added after the DateTime for triggerState.
Anzahl der gefundenen DateienNumber of files found API-AntwortAPI response
Einzelne DateiSingle file Zurückgeben eines HTTP-200 OK-Status und der Inhaltsnutzlast, Aktualisieren von triggerState auf DateTime für die zurückgegebene Datei und Festlegen des retry-after-Intervalls auf 15 Sekunden.Return an HTTP 200 OK status and the content payload, update triggerState to the DateTime for the returned file, and set retry-after interval to 15 seconds.
Mehrere DateienMultiple files Zurückgeben jeweils einer Datei und eines HTTP-200 OK-Status, Aktualisieren von triggerState und Festlegen des retry-after-Intervalls auf 0 Sekunden.Return one file at a time and an HTTP 200 OK status, update triggerState, and set the retry-after interval to 0 seconds.
Diese Schritte teilen der Engine mit, dass mehr Daten verfügbar sind, und dass die Engine die Daten sofort über die URL im location-Header anfordern sollte.These steps let the engine know that more data is available, and that the engine should immediately request the data from the URL in the location header.
Keine DateienNo files Zurückgeben eines HTTP-202 ACCEPTED-Status, keine Änderung von triggerState und Festlegen des retry-after-Intervalls auf 15 Sekunden.Return an HTTP 202 ACCEPTED status, don't change triggerState, and set the retry-after interval to 15 seconds.

Tipp

Ein Beispiel des Abruftriggermusters finden Sie im Abruftriggercontroller-Beispiel in GitHub.For an example polling trigger pattern, review this poll trigger controller sample in GitHub.

Warten und Lauschen auf neue Daten oder Ereignisse mit dem WebhooktriggermusterWait and listen for new data or events with the webhook trigger pattern

Ein Webhooktrigger ist ein Pushtrigger, der an Ihrem Dienstendpunkt auf neue Daten oder Ereignisse wartet und lauscht.A webhook trigger is a push trigger that waits and listens for new data or events at your service endpoint. Wenn neue Daten oder Ereignisse die angegebene Bedingung erfüllen, wird der Trigger ausgelöst und erstellt eine Instanz der Logik-App, die dann die Daten als Eingabe verarbeitet.If new data or an event meets the specified condition, the trigger fires and creates a logic app instance, which then processes the data as input. Webhooktrigger fungieren ähnlich wie die zuvor in diesem Thema beschriebenen Webhookaktionen und werden mit subscribe- und unsubscribe-Endpunkten eingerichtet.Webhook triggers act much like the webhook actions previously described in this topic, and are set up with subscribe and unsubscribe endpoints.

  • subscribe-Endpunkt: Wenn Sie in der Logik-App einen Webhooktrigger hinzufügen und speichern, ruft die Logic Apps-Engine den subscribe-Endpunkt auf.subscribe endpoint: When you add and save a webhook trigger in your logic app, the Logic Apps engine calls the subscribe endpoint. Dieser Schritt bewirkt, dass die Logik-App eine Rückruf-URL erstellt, die Ihre API speichert.This step causes the logic app to create a callback URL that your API stores. Wenn neue Daten oder Ereignisse vorliegen, die die angegebene Bedingung erfüllen, ruft Ihre API mit einem HTTP POST zur URL zurück.When there's new data or an event that meets the specified condition, your API calls back with an HTTP POST to the URL. Inhaltsnutzlast und Header werden der Logik-App als Eingabe übergeben.The content payload and headers pass as input to the logic app.

  • unsubscribe-Endpunkt: Wenn der Webhooktrigger oder die gesamte Logik-App gelöscht wird, ruft die Logic Apps-Engine den unsubscribe-Endpunkt auf.unsubscribe endpoint: If the webhook trigger or entire logic app is deleted, the Logic Apps engine calls the unsubscribe endpoint. Ihre API kann dann die Registrierung der Rückruf-URL aufheben und alle Prozesse nach Bedarf beenden.Your API can then unregister the callback URL and stop any processes as necessary.

Webhooktriggermuster

Hinweis

Der Logic App-Designer unterstützt derzeit keine Ermittlung von Webhookendpunkten über Swagger.Currently, the Logic App Designer doesn't support discovering webhook endpoints through Swagger. Also müssen Sie für dieses Muster einen Webhooktrigger hinzufügen und URL, Header und Text für die Anforderung angeben.So for this pattern, you have to add a Webhook trigger and specify the URL, headers, and body for your request. Siehe auch HTTPWebhook-Trigger.See also HTTPWebhook trigger. Um die Rückruf-URL zu übergeben, können Sie in jedem dieser vorherigen Felder nach Bedarf die @listCallbackUrl()-Workflowfunktion verwenden.To pass in the callback URL, you can use the @listCallbackUrl() workflow function in any of the previous fields as necessary.

Um die mehrfache Verarbeitung der gleichen Daten zu verhindern, sollte Ihr Trigger Daten bereinigen, die bereits gelesen und an die Logik-App übergeben wurden.To prevent processing the same data multiple times, your trigger should clean up data that was already read and passed to the logic app.

Tipp

Ein Beispiel für Webhookmuster finden Sie in diesem Webhooktriggercontroller-Beispiel in GitHub.For an example webhook pattern, review this webhook trigger controller sample in GitHub.

Verbessern der Sicherheit für Aufrufe Ihrer APIs in Logik-AppsImprove security for calls to your APIs from logic apps

Nachdem Sie Ihre benutzerdefinierten APIs erstellt haben, richten Sie die Authentifizierung für Ihre APIs so ein, dass Sie sie in Logik-Apps sicher aufrufen können.After creating your custom APIs, set up authentication for your APIs so that you can call them securely from logic apps. Informationen zu Verbessern der Sicherheit für Aufrufe von benutzerdefinierten APIs in Logik-Apps.Learn how to improve security for calls to custom APIs from logic apps.

Bereitstellen und Aufrufen Ihrer APIsDeploy and call your APIs

Nachdem Sie die Authentifizierung eingerichtet haben, richten Sie Bereitstellung Ihrer APIs ein.After you set up authentication, set up deployment for your APIs. Erfahren Sie mehr zum Bereitstellen und Aufrufen benutzerdefinierter APIs in Logik-Apps.Learn how to deploy and call custom APIs from logic apps.

Veröffentlichen benutzerdefinierter APIs in AzurePublish custom APIs to Azure

Um Ihre benutzerdefinierten APIs für andere Logic Apps-Benutzer in Azure verfügbar zu machen, müssen Sie Sicherheitseinstellungen hinzufügen und sie als Logic App-Connectors registrieren.To make your custom APIs available for other Logic Apps users in Azure, you must add security and register them as Logic App connectors. Weitere Informationen finden Sie unter Übersicht über benutzerdefinierte Connectors.For more information, see Custom connectors overview.

Um Ihre benutzerdefinierten APIs allen Benutzern in Logic Apps, Power Automate und Microsoft Power Apps zur Verfügung zu stellen, müssen Sie Sicherheitseinstellungen hinzufügen, Ihre APIs als Logic App-Connectors registrieren und Ihre Connectors für das Microsoft Azure Certified-Programm vorschlagen.To make your custom APIs available to all users in Logic Apps, Power Automate, and Microsoft Power Apps, you must add security, register your APIs as Logic App connectors, and nominate your connectors for the Microsoft Azure Certified program.

SupportGet support

Nächste SchritteNext steps