Schemareferentiegids voor trigger- en actietypen in Azure Logic Apps
In deze verwijzing worden de algemene typen beschreven die worden gebruikt voor het identificeren van triggers en acties in de onderliggende werkstroomdefinitie van uw logische app, die wordt beschreven en gevalideerd door de taal van de werkstroomdefinitie. Zie de lijst onder het overzicht van Verbinding maken ors voor specifieke connectortriggers en acties die u in uw logische apps kunt gebruiken.
Overzicht van triggers
Elke werkstroom bevat een trigger, waarmee de aanroepen worden gedefinieerd die de werkstroom instantiëren en starten. Dit zijn de algemene triggercategorieën:
Een poll-trigger , waarmee het eindpunt van een service regelmatig wordt gecontroleerd
Een push-trigger , die een abonnement op een eindpunt maakt en een callback-URL biedt, zodat het eindpunt de trigger kan waarschuwen wanneer de opgegeven gebeurtenis plaatsvindt of gegevens beschikbaar zijn. De trigger wacht vervolgens op het antwoord van het eindpunt voordat deze wordt geactiveerd.
Triggers hebben deze elementen op het hoogste niveau, hoewel sommige optioneel zijn:
"<trigger-name>": {
"type": "<trigger-type>",
"inputs": { "<trigger-inputs>" },
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"conditions": [ "<array-with-conditions>" ],
"runtimeConfiguration": { "<runtime-config-options>" },
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
},
Vereist
Weergegeven als | Type | Description |
---|---|---|
<trigger-name> | String | De naam voor de trigger |
<triggertype> | String | Het triggertype, zoals Http of Api Verbinding maken ion |
<trigger-invoer> | JSON-object | De invoer die het gedrag van de trigger definieert |
<tijd-eenheid> | String | De tijdseenheid waarin wordt beschreven hoe vaak de trigger wordt geactiveerd: 'Seconde', 'Minuut', 'Uur', 'Dag', 'Week', 'Maand' |
<aantal tijdeenheden> | Geheel getal | Een waarde die aangeeft hoe vaak de trigger wordt geactiveerd op basis van de frequentie. Dit is het aantal tijdseenheden dat moet worden gewacht totdat de trigger opnieuw wordt geactiveerd Dit zijn de minimum- en maximumintervallen: - Maand: 1-16 maanden - Dag: 1-500 dagen - Uur: 1-12.000 uur - Minuut: 1-72.000 minuten - Seconde: 1-999,999 seconden Als het interval bijvoorbeeld 6 is en de frequentie 'Maand' is, is het terugkeerpatroon om de 6 maanden. |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<matrix-met-voorwaarden> | Matrix | Een matrix die een of meer voorwaarden bevat die bepalen of de werkstroom moet worden uitgevoerd. Alleen beschikbaar voor triggers. |
<runtime-config-options> | JSON-object | U kunt het gedrag van de triggerruntime wijzigen door eigenschappen in te stellen runtimeConfiguration . Zie Runtime-configuratie-instellingen voor meer informatie. |
<splitOn-expression> | String | Voor triggers die een matrix retourneren, kunt u een expressie opgeven waarmee matrixitems worden gesplitst of gedebatteerd in meerdere werkstroomexemplaren voor verwerking. |
<operation-option> | String | U kunt het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Lijst met triggertypen
Elk triggertype heeft een andere interface en invoer die het gedrag van de trigger definieert.
Ingebouwde triggers
Triggertype | Beschrijving |
---|---|
HTTP | Controleert of peilt een eindpunt. Dit eindpunt moet voldoen aan een specifiek triggercontract met behulp van een asynchroon 202 patroon of door een matrix te retourneren. |
HTTPWebhook | Hiermee maakt u een aanroepbaar eindpunt voor uw logische app, maar wordt de opgegeven URL aangeroepen om de registratie of registratie ongedaan te maken. |
Terugkeerpatroon | Wordt geactiveerd op basis van een gedefinieerd schema. U kunt een toekomstige datum en tijd instellen voor het activeren van deze trigger. Op basis van de frequentie kunt u ook tijden en dagen opgeven voor het uitvoeren van uw werkstroom. |
Aanvragen | Hiermee maakt u een aanroepbaar eindpunt voor uw logische app en wordt dit ook wel een 'handmatige' trigger genoemd. Zie bijvoorbeeld Oproep-, trigger- of nestwerkstromen met HTTP-eindpunten. |
Beheerde API-triggers
Triggertype | Beschrijving |
---|---|
ApiConnection | Controleert of peilt een eindpunt met behulp van door Microsoft beheerde API's of 'connectors'. |
Api Verbinding maken ionWebhook | Hiermee maakt u een aanroepbaar eindpunt voor uw werkstroom voor logische apps door door Microsoft beheerde API's of connectors aan te roepen om u te abonneren en af te melden. |
Triggers - gedetailleerde naslaginformatie
API Verbinding maken iontrigger
Deze trigger controleert of peilt een eindpunt met behulp van door Microsoft beheerde API's of connectors , zodat de parameters voor deze trigger kunnen verschillen op basis van het eindpunt. Veel secties in deze triggerdefinitie zijn optioneel. Het gedrag van de trigger is afhankelijk van of secties wel of niet zijn opgenomen.
"<APIConnection_trigger_name>": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['<connection-name>']['connectionId']"
}
},
"method": "<method-type>",
"path": "/<api-operation>",
"retryPolicy": { "<retry-behavior>" },
"queries": { "<query-parameters>" }
},
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
}
Vereist
Eigenschappen | Weergegeven als | Type | Description |
---|---|---|---|
Geen | <API Verbinding maken ion_trigger_name> | String | De naam voor de trigger |
host.connection.name | <verbindingsnaam> | String | De naam voor de verbinding met de beheerde API die door de werkstroom wordt gebruikt |
Methode | <methodetype> | String | De HTTP-methode voor communicatie met de beheerde API: GET, PUT, POST, PATCH, DELETE |
path | <api-operation> | String | De API-bewerking die moet worden aangeroepen |
recurrence.frequency | <tijd-eenheid> | String | De tijdseenheid waarin wordt beschreven hoe vaak de trigger wordt geactiveerd: Second, Minute, Hour, Day, Week, Month |
recurrence.interval | <aantal tijdeenheden> | Geheel getal | Een waarde die aangeeft hoe vaak de trigger wordt geactiveerd op basis van de frequentie. Dit is het aantal tijdseenheden dat moet worden gewacht totdat de trigger opnieuw wordt geactiveerd Dit zijn de minimum- en maximumintervallen: - Maand: 1-16 maanden - Dag: 1-500 dagen - Uur: 1-12.000 uur - Minuut: 1-72.000 minuten - Seconde: 1-9.999.999 seconden Als het interval bijvoorbeeld 6 is en de frequentie Maand is, is het terugkeerpatroon elke 6 maanden. |
Optioneel
Eigenschappen | Weergegeven als | Type | Description |
---|---|---|---|
retryPolicy | <gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
Query 's | <queryparameters> | JSON-object | Queryparameters die moeten worden opgenomen met de API-aanroep. Het object wordt bijvoorbeeld "queries": { "api-version": "2018-01-01" } toegevoegd ?api-version=2018-01-01 aan de aanroep. |
runtimeConfiguration.concurrency.runs | <max-runs> | Geheel getal | Werkstroomexemplaren worden standaard tegelijkertijd (gelijktijdig of parallel) uitgevoerd tot de standaardlimiet. Zie Gelijktijdigheid van triggers wijzigen als u deze limiet wilt wijzigen door een nieuwe <tellingswaarde> in te stellen. |
runtimeConfiguration.maximumWaitingRuns | <max-runs-queue> | Geheel getal | Als uw werkstroom al het maximum aantal exemplaren uitvoert, worden nieuwe uitvoeringen in deze wachtrij geplaatst tot de standaardlimiet. Zie Wachtuitvoeringslimiet wijzigen als u de standaardlimiet wilt wijzigen. Als u het maximum aantal exemplaren wilt wijzigen, geeft u een waarde op voor de eigenschap runtimeConfiguration.concurrency.runs . Opmerking: Als u de |
splitOn | <splitOn-expression> | String | Voor triggers die matrices retourneren, verwijst deze expressie naar de matrix die moet worden gebruikt, zodat u een werkstroomexemplaren voor elk matrixitem kunt maken en uitvoeren in plaats van een lus 'voor elke' te gebruiken. Deze expressie vertegenwoordigt bijvoorbeeld een item in de matrix die wordt geretourneerd binnen de hoofdtekstinhoud van de trigger: @triggerbody()?['value'] |
operationOptions | <operation-option> | String | U kunt het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Uitvoer
Element | Type | Description |
---|---|---|
Headers | JSON-object | De headers uit het antwoord |
hoofdtekst | JSON-object | De hoofdtekst van het antwoord |
statuscode | Geheel getal | De statuscode van het antwoord |
Voorbeeld
Met deze triggerdefinitie wordt elke dag gecontroleerd op e-mail in het Postvak IN voor een werk- of schoolaccount:
"When_a_new_email_arrives": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "get",
"path": "/Mail/OnNewEmail",
"queries": {
"fetchOnlyWithAttachment": false,
"folderPath": "Inbox",
"importance": "Any",
"includeAttachments": false
}
},
"recurrence": {
"frequency": "Day",
"interval": 1
}
}
Api Verbinding maken ionWebhook-trigger
Deze trigger verzendt een abonnementsaanvraag naar een eindpunt met behulp van een door Microsoft beheerde API, biedt een callback-URL naar de locatie waar het eindpunt een antwoord kan verzenden en wacht tot het eindpunt reageert. Zie Eindpuntabonnementen voor meer informatie.
"<ApiConnectionWebhook_trigger_name>": {
"type": "ApiConnectionWebhook",
"inputs": {
"body": {
"NotificationUrl": "@{listCallbackUrl()}"
},
"host": {
"connection": {
"name": "@parameters('$connections')['<connection-name>']['connectionId']"
}
},
"retryPolicy": { "<retry-behavior>" },
"queries": "<query-parameters>"
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-run-queue>
}
},
"splitOn": "<splitOn-expression>",
"operationOptions": "<operation-option>"
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<verbindingsnaam> | String | De naam voor de verbinding met de beheerde API die door de werkstroom wordt gebruikt |
<hoofdtekstinhoud> | JSON-object | Berichtinhoud die moet worden verzonden als nettolading naar de beheerde API |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
<queryparameters> | JSON-object | Queryparameters die moeten worden opgenomen met de API-aanroep Het object wordt bijvoorbeeld "queries": { "api-version": "2018-01-01" } toegevoegd ?api-version=2018-01-01 aan de aanroep. |
<max-runs> | Geheel getal | Werkstroomexemplaren worden standaard tegelijkertijd (gelijktijdig of parallel) uitgevoerd tot de standaardlimiet. Zie Gelijktijdigheid van triggers wijzigen als u deze limiet wilt wijzigen door een nieuwe <tellingswaarde> in te stellen. |
<max-runs-queue> | Geheel getal | Wanneer uw werkstroom al het maximum aantal exemplaren uitvoert, dat u kunt wijzigen op basis van de runtimeConfiguration.concurrency.runs eigenschap, worden nieuwe uitvoeringen in deze wachtrij geplaatst tot de standaardlimiet. Zie Wachtuitvoeringslimiet wijzigen als u de standaardlimiet wilt wijzigen. |
<splitOn-expression> | String | Voor triggers die matrices retourneren, verwijst deze expressie naar de matrix die moet worden gebruikt, zodat u een werkstroomexemplaren voor elk matrixitem kunt maken en uitvoeren in plaats van een lus 'voor elke' te gebruiken. Deze expressie vertegenwoordigt bijvoorbeeld een item in de matrix die wordt geretourneerd binnen de hoofdtekstinhoud van de trigger: @triggerbody()?['value'] |
<operation-option> | String | U kunt het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Voorbeeld
Deze triggerdefinitie abonneert zich op de Office 365 Outlook-API, biedt een callback-URL naar het API-eindpunt en wacht tot het eindpunt reageert wanneer er een nieuwe e-mail binnenkomt.
"When_a_new_email_arrives_(webhook)": {
"type": "ApiConnectionWebhook",
"inputs": {
"body": {
"NotificationUrl": "@{listCallbackUrl()}"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"path": "/MailSubscription/$subscriptions",
"queries": {
"folderPath": "Inbox",
"hasAttachment": "Any",
"importance": "Any"
}
},
"splitOn": "@triggerBody()?['value']"
}
HTTP-trigger
Met deze trigger wordt een aanvraag verzonden naar het opgegeven HTTP- of HTTPS-eindpunt op basis van het opgegeven terugkeerschema. De trigger controleert vervolgens het antwoord om te bepalen of de werkstroom wordt uitgevoerd. Zie Service-eindpunten aanroepen via HTTP of HTTPS vanuit Azure Logic Apps voor meer informatie.
"HTTP": {
"type": "Http",
"inputs": {
"method": "<method-type>",
"uri": "<HTTP-or-HTTPS-endpoint-URL>",
"headers": { "<header-content>" },
"queries": "<query-parameters>",
"body": "<body-content>",
"authentication": { "<authentication-type-and-property-values>" },
"retryPolicy": {
"type": "<retry-behavior>"
}
},
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Vereist
Eigenschappen | Weergegeven als | Type | Description |
---|---|---|---|
method |
<methodetype> | String | De methode die moet worden gebruikt voor het verzenden van de uitgaande aanvraag: 'GET', 'PUT', 'POST', 'PATCH' of 'DELETE' |
uri |
<HTTP-of-HTTPS-eindpunt-URL> | String | De URL van het HTTP- of HTTPS-eindpunt waarnaar u de uitgaande aanvraag wilt verzenden. Maximale tekenreeksgrootte: 2 kB Voor een Azure-service of -resource bevat deze URI-syntaxis de resource-id en het pad naar de resource waartoe u toegang wilt krijgen. |
frequency |
<tijd-eenheid> | String | De tijdseenheid waarin wordt beschreven hoe vaak de trigger wordt geactiveerd: 'Seconde', 'Minuut', 'Uur', 'Dag', 'Week', 'Maand' |
interval |
<aantal tijdeenheden> | Geheel getal | Een waarde die aangeeft hoe vaak de trigger wordt geactiveerd op basis van de frequentie. Dit is het aantal tijdseenheden dat moet worden gewacht totdat de trigger opnieuw wordt geactiveerd Dit zijn de minimum- en maximumintervallen: - Maand: 1-16 maanden - Dag: 1-500 dagen - Uur: 1-12.000 uur - Minuut: 1-72.000 minuten - Seconde: 1-999,999 seconden Als het interval bijvoorbeeld 6 is en de frequentie 'Maand' is, is het terugkeerpatroon om de 6 maanden. |
Optioneel
Eigenschappen | Weergegeven als | Type | Description |
---|---|---|---|
headers |
<header-content> | JSON-object | Eventuele headers die u bij de aanvraag moet opnemen Als u bijvoorbeeld de taal en het type wilt instellen: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
queries |
<queryparameters> | JSON-object | Queryparameters die u in de aanvraag moet gebruiken Het object wordt bijvoorbeeld "queries": { "api-version": "2018-01-01" } toegevoegd ?api-version=2018-01-01 aan de aanvraag. |
body |
<hoofdtekstinhoud> | JSON-object | De berichtinhoud die moet worden verzonden als nettolading met de aanvraag |
authentication |
<authentication-type-and-property-values> | JSON-object | Het verificatiemodel dat door de aanvraag wordt gebruikt voor het verifiëren van uitgaande aanvragen. Zie Verificatie toevoegen aan uitgaande oproepen voor meer informatie. Naast Scheduler wordt de authority eigenschap ondersteund. Wanneer deze niet is opgegeven, is https://management.azure.com/ de standaardwaarde, maar u kunt een andere waarde gebruiken. |
retryPolicy > type |
<gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
runs |
<max-runs> | Geheel getal | Werkstroomexemplaren worden standaard tegelijkertijd (gelijktijdig of parallel) uitgevoerd tot de standaardlimiet. Zie Gelijktijdigheid van triggers wijzigen als u deze limiet wilt wijzigen door een nieuwe <tellingswaarde> in te stellen. |
maximumWaitingRuns |
<max-runs-queue> | Geheel getal | Wanneer uw werkstroom al het maximum aantal exemplaren uitvoert, dat u kunt wijzigen op basis van de runtimeConfiguration.concurrency.runs eigenschap, worden nieuwe uitvoeringen in deze wachtrij geplaatst tot de standaardlimiet. Zie Wachtuitvoeringslimiet wijzigen als u de standaardlimiet wilt wijzigen. |
operationOptions |
<operation-option> | String | U kunt het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Uitvoer
Element | Type | Description |
---|---|---|
headers |
JSON-object | De headers uit het antwoord |
body |
JSON-object | De hoofdtekst van het antwoord |
status code |
Geheel getal | De statuscode van het antwoord |
Vereisten voor binnenkomende aanvragen
Om goed te kunnen werken met uw logische app, moet het eindpunt voldoen aan een specifiek triggerpatroon of -contract en deze antwoordeigenschappen herkennen:
Eigenschappen | Vereist | Beschrijving |
---|---|---|
Statuscode | Ja | De statuscode 200 OK start een uitvoering. Elke andere statuscode start geen uitvoering. |
Koptekst opnieuw proberen | Nee | Het aantal seconden totdat uw logische app het eindpunt opnieuw pollt |
Locatiekoptekst | Nee | De URL die moet worden aangeroepen bij het volgende polling-interval. Als deze niet is opgegeven, wordt de oorspronkelijke URL gebruikt. |
Voorbeeldgedrag voor verschillende aanvragen
Statuscode | Probeer het opnieuw na | Gedrag |
---|---|---|
200 | {none} | Voer de werkstroom uit en controleer opnieuw op meer gegevens na het gedefinieerde terugkeerpatroon. |
200 | 10 seconden | Voer de werkstroom uit en controleer na 10 seconden nogmaals op meer gegevens. |
202 | 60 seconden | Activeer de werkstroom niet. De volgende poging vindt plaats in één minuut, afhankelijk van het gedefinieerde terugkeerpatroon. Als het gedefinieerde terugkeerpatroon minder dan één minuut is, heeft de koptekst opnieuw prioriteit. Anders wordt het gedefinieerde terugkeerpatroon gebruikt. |
400 | {none} | Ongeldige aanvraag, voer de werkstroom niet uit. Als er geen retryPolicy is gedefinieerd, wordt het standaardbeleid gebruikt. Nadat het aantal nieuwe pogingen is bereikt, controleert de trigger opnieuw op gegevens na het gedefinieerde terugkeerpatroon. |
500 | {none} | Serverfout: voer de werkstroom niet uit. Als er geen retryPolicy is gedefinieerd, wordt het standaardbeleid gebruikt. Nadat het aantal nieuwe pogingen is bereikt, controleert de trigger opnieuw op gegevens na het gedefinieerde terugkeerpatroon. |
HTTPWebhook-trigger
Met deze trigger kan uw logische app worden aangeroepen door een eindpunt te maken dat een abonnement kan registreren door de opgegeven eindpunt-URL aan te roepen. Wanneer u deze trigger in uw werkstroom maakt, wordt met een uitgaande aanvraag het abonnement geregistreerd. Op die manier kan de trigger beginnen met luisteren naar gebeurtenissen. Wanneer een bewerking deze trigger ongeldig maakt, wordt met een uitgaande aanvraag automatisch de aanroep uitgevoerd om het abonnement te annuleren. Zie Eindpuntabonnementen voor meer informatie.
U kunt ook asynchrone limieten opgeven voor een HTTPWebhook-trigger. Het gedrag van de trigger is afhankelijk van de secties die u gebruikt of weglaat.
"HTTP_Webhook": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "<method-type>",
"uri": "<endpoint-subscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"retryPolicy": { "<retry-behavior>" }
},
"unsubscribe": {
"method": "<method-type>",
"url": "<endpoint-unsubscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" }
}
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Sommige waarden, zoals <methodetype>, zijn beschikbaar voor zowel de als "unsubscribe"
de "subscribe"
objecten.
Vereist
Weergegeven als | Type | Description |
---|---|---|
<methodetype> | String | De HTTP-methode die moet worden gebruikt voor de abonnementsaanvraag: 'GET', 'PUT', 'POST', 'PATCH' of 'DELETE' |
<eindpunt-abonneren-URL> | String | De eindpunt-URL waar de abonnementsaanvraag moet worden verzonden |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<methodetype> | String | De HTTP-methode die moet worden gebruikt voor de annuleringsaanvraag: "GET", "PUT", "POST", "PATCH" of "DELETE" |
<eindpunt-afmeldings-URL> | String | De eindpunt-URL waar de annuleringsaanvraag moet worden verzonden |
<hoofdtekstinhoud> | String | Berichtinhoud die moet worden verzonden in het abonnement of de annuleringsaanvraag |
<verificatietype> | JSON-object | Het verificatiemodel dat door de aanvraag wordt gebruikt voor het verifiëren van uitgaande aanvragen. Zie Verificatie toevoegen aan uitgaande oproepen voor meer informatie. |
<gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
<max-runs> | Geheel getal | Werkstroomexemplaren worden standaard allemaal tegelijk (gelijktijdig of parallel) uitgevoerd tot de standaardlimiet. Zie Gelijktijdigheid van triggers wijzigen als u deze limiet wilt wijzigen door een nieuwe <tellingswaarde> in te stellen. |
<max-runs-queue> | Geheel getal | Wanneer uw werkstroom al het maximum aantal exemplaren uitvoert, dat u kunt wijzigen op basis van de runtimeConfiguration.concurrency.runs eigenschap, worden nieuwe uitvoeringen in deze wachtrij geplaatst tot de standaardlimiet. Zie Wachtuitvoeringslimiet wijzigen als u de standaardlimiet wilt wijzigen. |
<operation-option> | String | U kunt het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Uitvoer
Element | Type | Description |
---|---|---|
headers | JSON-object | De headers uit het antwoord |
hoofdtekst | JSON-object | De hoofdtekst van het antwoord |
statuscode | Geheel getal | De statuscode van het antwoord |
Voorbeeld
Deze trigger maakt een abonnement op het opgegeven eindpunt, biedt een unieke callback-URL en wacht op nieuw gepubliceerde technologieartikelen.
"HTTP_Webhook": {
"type": "HttpWebhook",
"inputs": {
"subscribe": {
"method": "POST",
"uri": "https://pubsubhubbub.appspot.com/subscribe",
"body": {
"hub.callback": "@{listCallbackUrl()}",
"hub.mode": "subscribe",
"hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
},
},
"unsubscribe": {
"method": "POST",
"url": "https://pubsubhubbub.appspot.com/subscribe",
"body": {
"hub.callback": "@{workflow().endpoint}@{listCallbackUrl()}",
"hub.mode": "unsubscribe",
"hub.topic": "https://pubsubhubbub.appspot.com/articleCategories/technology"
}
}
}
}
Trigger met terugkeerpatroon
Deze trigger wordt uitgevoerd op basis van het opgegeven terugkeerschema en biedt een eenvoudige manier om een regelmatig actieve werkstroom te maken.
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
"startTime": "<start-date-time-with-format-YYYY-MM-DDThh:mm:ss>",
"timeZone": "<time-zone>",
"schedule": {
// Applies only when frequency is Day or Week. Separate values with commas.
"hours": [ <one-or-more-hour-marks> ],
// Applies only when frequency is Day or Week. Separate values with commas.
"minutes": [ <one-or-more-minute-marks> ],
// Applies only when frequency is Week. Separate values with commas.
"weekDays": [ "Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday" ]
}
},
"runtimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-runs-queue>
}
},
"operationOptions": "<operation-option>"
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<tijd-eenheid> | String | De tijdseenheid waarin wordt beschreven hoe vaak de trigger wordt geactiveerd: 'Seconde', 'Minuut', 'Uur', 'Dag', 'Week', 'Maand' |
<aantal tijdeenheden> | Geheel getal | Een waarde die aangeeft hoe vaak de trigger wordt geactiveerd op basis van de frequentie. Dit is het aantal tijdseenheden dat moet worden gewacht totdat de trigger opnieuw wordt geactiveerd Dit zijn de minimum- en maximumintervallen: - Maand: 1-16 maanden - Dag: 1-500 dagen - Uur: 1-12.000 uur - Minuut: 1-72.000 minuten - Seconde: 1-999,999 seconden Als het interval bijvoorbeeld 6 is en de frequentie 'Maand' is, is het terugkeerpatroon om de 6 maanden. |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<start-date-time-with-format-JJJJ-MM-DDThh:mm:ss> | String | De begindatum en -tijd in deze notatie: JJJJ-MM-DDThh:mm:ss als u een tijdzone opgeeft -Of- JJJJ-MM-DDThh:mm:ssZ als u geen tijdzone opgeeft Als u bijvoorbeeld 18 september 2017 om 2:00 uur wilt, geeft u '2017-09-18T14:00:00' op en geeft u een tijdzone op, zoals 'Pacific Standard Time', of geeft u '2017-09-18T14:00:00Z' op zonder tijdzone. Opmerking: Deze begintijd heeft maximaal 49 jaar in de toekomst en moet de ISO 8601-datum/tijdspecificatie in UTC-datum/tijdnotatie volgen, maar zonder utc-offset. Als u geen tijdzone opgeeft, moet u de letter Z aan het einde zonder spaties toevoegen. Deze "Z" verwijst naar de equivalente zeetijd. Voor eenvoudige planningen is de begintijd de eerste keer, terwijl de trigger voor complexe schema's niet eerder wordt geactiveerd dan de begintijd. Zie Regelmatig actieve taken maken en plannen voor meer informatie over begindatums en -tijden. |
<tijdzone> | String | Is alleen van toepassing wanneer u een begintijd opgeeft omdat deze trigger geen UTC-offset accepteert. Geef de tijdzone op die u wilt toepassen. |
<een-of-meer-uurmarkeringen> | Matrix met gehele getallen of gehele getallen | Als u 'Dag' of 'Week' frequency opgeeft, kunt u een of meer gehele getallen opgeven van 0 tot 23, gescheiden door komma's, als de uren van de dag waarop u de werkstroom wilt uitvoeren. Als u bijvoorbeeld '10', '12' en '14' opgeeft, krijgt u 10:00, 12:00 en 2:00 uur als de uurmarkeringen. |
<markeringen van één of meer minuten> | Matrix met gehele getallen of gehele getallen | Als u 'Dag' of 'Week' frequency opgeeft, kunt u een of meer gehele getallen opgeven van 0 tot 59, gescheiden door komma's, als de minuten van het uur waarop u de werkstroom wilt uitvoeren. U kunt bijvoorbeeld '30' opgeven als de minuutmarkering en het vorige voorbeeld voor uren van de dag gebruiken, u 10:30 uur, 12:30 uur en 2:30 uur krijgt. |
weekDays | Tekenreeks- of tekenreeksmatrix | Als u 'Week' opgeeft frequency , kunt u een of meer dagen opgeven, gescheiden door komma's, wanneer u de werkstroom wilt uitvoeren: 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag' en 'Zondag' |
<max-runs> | Geheel getal | Werkstroomexemplaren worden standaard allemaal tegelijk (gelijktijdig of parallel) uitgevoerd tot de standaardlimiet. Zie Gelijktijdigheid van triggers wijzigen als u deze limiet wilt wijzigen door een nieuwe <tellingswaarde> in te stellen. |
<max-runs-queue> | Geheel getal | Wanneer uw werkstroom al het maximum aantal exemplaren uitvoert, dat u kunt wijzigen op basis van de runtimeConfiguration.concurrency.runs eigenschap, worden nieuwe uitvoeringen in deze wachtrij geplaatst tot de standaardlimiet. Zie Wachtuitvoeringslimiet wijzigen als u de standaardlimiet wilt wijzigen. |
<operation-option> | String | U kunt het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Voorbeeld 1
Deze eenvoudige terugkeertrigger wordt dagelijks uitgevoerd:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1
}
}
Voorbeeld 2
U kunt een begindatum en -tijd opgeven voor het activeren van de trigger. Deze terugkeertrigger begint op de opgegeven datum en wordt vervolgens dagelijks geactiveerd:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Day",
"interval": 1,
"startTime": "2017-09-18T00:00:00Z"
}
}
Voorbeeld 3
Deze terugkeertrigger begint op 9 september 2017 om 2:00 uur en wordt wekelijks elke maandag om 10:30, 12:30 uur en 2:30 uur Pacific Standard Time geactiveerd:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Week",
"interval": 1,
"schedule": {
"hours": [ 10, 12, 14 ],
"minutes": [ 30 ],
"weekDays": [ "Monday" ]
},
"startTime": "2017-09-07T14:00:00",
"timeZone": "Pacific Standard Time"
}
}
Zie Regelmatig actieve taken maken en plannen voor meer informatie plus voorbeelden voor deze trigger.
Aanvraagtrigger
Met deze trigger kan uw logische app worden aangeroepen door een eindpunt te maken dat binnenkomende aanvragen kan accepteren. Geef voor deze trigger een JSON-schema op waarmee de nettolading of invoer wordt beschreven en gevalideerd die de trigger ontvangt van de binnenkomende aanvraag. Het schema maakt triggereigenschappen ook gemakkelijker te raadplegen vanuit latere acties in de werkstroom.
Als u deze trigger wilt aanroepen, moet u de listCallbackUrl
API gebruiken, die wordt beschreven in de REST API van de werkstroomservice. Zie Werkstromen aanroepen, activeren of nesten met HTTP-eindpunten voor meer informatie over het gebruik van deze trigger als een HTTP-eindpunt.
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"method": "<method-type>",
"relativePath": "<relative-path-for-accepted-parameter>",
"schema": {
"type": "object",
"properties": {
"<property-name>": {
"type": "<property-type>"
}
},
"required": [ "<required-properties>" ]
}
},
"runTimeConfiguration": {
"concurrency": {
"runs": <max-runs>,
"maximumWaitingRuns": <max-run-queue>
},
},
"operationOptions": "<operation-option>"
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<eigenschapsnaam> | String | De naam van een eigenschap in het JSON-schema, waarin de nettolading wordt beschreven |
<eigenschapstype> | String | Het type eigenschap |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<methodetype> | String | De methode die binnenkomende aanvragen moeten gebruiken om uw logische app aan te roepen: 'GET', 'PUT', 'POST', 'PATCH', 'DELETE' |
<relative-path-for-accepted-parameter> | String | Het relatieve pad voor de parameter die de URL van uw eindpunt kan accepteren |
<vereiste eigenschappen> | Matrix | Een of meer eigenschappen waarvoor waarden zijn vereist |
<max-runs> | Geheel getal | Werkstroomexemplaren worden standaard allemaal tegelijk (gelijktijdig of parallel) uitgevoerd tot de standaardlimiet. Zie Gelijktijdigheid van triggers wijzigen als u deze limiet wilt wijzigen door een nieuwe <tellingswaarde> in te stellen. |
<max-runs-queue> | Geheel getal | Wanneer uw werkstroom al het maximum aantal exemplaren uitvoert, dat u kunt wijzigen op basis van de runtimeConfiguration.concurrency.runs eigenschap, worden nieuwe uitvoeringen in deze wachtrij geplaatst tot de standaardlimiet. Zie Wachtuitvoeringslimiet wijzigen als u de standaardlimiet wilt wijzigen. |
<operation-option> | String | U kunt het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Voorbeeld
Deze trigger geeft aan dat een binnenkomende aanvraag de HTTP POST-methode moet gebruiken om de trigger aan te roepen en een schema bevat waarmee invoer van de binnenkomende aanvraag wordt gevalideerd:
"manual": {
"type": "Request",
"kind": "Http",
"inputs": {
"method": "POST",
"schema": {
"type": "object",
"properties": {
"customerName": {
"type": "String"
},
"customerAddress": {
"type": "Object",
"properties": {
"streetAddress": {
"type": "string"
},
"city": {
"type": "string"
}
}
}
}
}
}
}
Triggervoorwaarden
Voor elke trigger en alleen triggers kunt u een matrix opnemen die een of meer expressies bevat voor voorwaarden die bepalen of de werkstroom moet worden uitgevoerd. Als u de conditions
eigenschap wilt toevoegen aan een trigger in uw werkstroom, opent u uw logische app in de codeweergave-editor.
U kunt bijvoorbeeld opgeven dat een trigger alleen wordt geactiveerd wanneer een website een interne serverfout retourneert door te verwijzen naar de statuscode van de trigger in de conditions
eigenschap:
"Recurrence": {
"type": "Recurrence",
"recurrence": {
"frequency": "Hour",
"interval": 1
},
"conditions": [ {
"expression": "@equals(triggers().code, 'InternalServerError')"
} ]
}
Standaard wordt een trigger pas geactiveerd nadat een antwoord van 200 OK is ontvangen. Wanneer een expressie verwijst naar de statuscode van een trigger, wordt het standaardgedrag van de trigger vervangen. Dus als u wilt dat de trigger wordt geactiveerd voor meer dan één statuscode, zoals de statuscode '200' en '201', moet u deze expressie opnemen als uw voorwaarde:
@or(equals(triggers().code, 200),equals(triggers().code, 201))
Meerdere uitvoeringen activeren op een matrix
Als uw trigger een matrix ontvangt die door uw werkstroom moet worden verwerkt, kan het soms te lang duren voordat elk matrixitem wordt verwerkt. In plaats daarvan kunt u de eigenschap SplitOn in uw trigger gebruiken om de matrix te debatteren . Debatching splitst de matrixitems op en start een nieuw werkstroomexemplaren die voor elk matrixitem wordt uitgevoerd. Deze methode is bijvoorbeeld handig als u een eindpunt wilt peilen dat mogelijk meerdere nieuwe items retourneert tussen polling-intervallen.
Als het Swagger-bestand van uw trigger een nettolading beschrijft die een matrix is, wordt de eigenschap SplitOn automatisch toegevoegd aan uw trigger. Voeg anders deze eigenschap toe in de nettolading van het antwoord met de matrix die u wilt bespreken.
Bekijk de volgende overwegingen voordat u de SplitOn-functie gebruikt:
Als gelijktijdigheid van triggers is ingeschakeld, wordt de SplitOn-limiet aanzienlijk verminderd. Als het aantal items deze limiet overschrijdt, wordt de functie SplitOn uitgeschakeld.
U kunt de SplitOn-functie niet gebruiken met een synchroon antwoordpatroon. Elke werkstroom die gebruikmaakt van de eigenschap SplitOn en een antwoordactie bevat, wordt asynchroon uitgevoerd en verzendt onmiddellijk een
202 ACCEPTED
antwoord.Zie Limieten en configuratie voor het maximum aantal matrixitems dat SplitOn kan verwerken in één werkstroomuitvoering.
Voorbeeld
Stel dat u een HTTP-trigger hebt die een API aanroept en dit antwoord ontvangt:
{
"Status": "Succeeded",
"Rows": [
{
"id": 938109380,
"name": "customer-name-one"
},
{
"id": 938109381,
"name": "customer-name-two"
}
]
}
Uw werkstroom heeft alleen de inhoud van de matrix nodig, Rows
zodat u een trigger zoals in dit voorbeeld kunt maken:
"HTTP_Debatch": {
"type": "Http",
"inputs": {
"uri": "https://mydomain.com/myAPI",
"method": "GET"
},
"recurrence": {
"frequency": "Second",
"interval": 1
},
"splitOn": "@triggerBody()?.Rows"
}
Notitie
Als u de SplitOn
opdracht gebruikt, kunt u de eigenschappen die zich buiten de matrix bevinden, niet ophalen.
Voor dit voorbeeld kunt u de status
eigenschap niet ophalen in het antwoord dat wordt geretourneerd door de API.
Als u een fout wilt voorkomen als de Rows
eigenschap niet bestaat, gebruikt dit voorbeeld de ?
operator.
Uw werkstroomdefinitie kan nu worden gebruikt @triggerBody().name
om de name
waarden op te halen, die afkomstig zijn "customer-name-one"
van de eerste uitvoering en "customer-name-two"
van de tweede uitvoering. Uw triggeruitvoer ziet er dus als volgt uit:
{
"body": {
"id": 938109380,
"name": "customer-name-one"
}
}
{
"body": {
"id": 938109381,
"name": "customer-name-two"
}
}
Overzicht van acties
Azure Logic Apps biedt verschillende actietypen, elk met verschillende invoerwaarden die het unieke gedrag van een actie definiëren. Acties hebben deze elementen op hoog niveau, hoewel sommige optioneel zijn:
"<action-name>": {
"type": "<action-type>",
"inputs": {
"<input-name>": { "<input-value>" },
"retryPolicy": "<retry-behavior>"
},
"runAfter": { "<previous-trigger-or-action-status>" },
"runtimeConfiguration": { "<runtime-config-options>" },
"operationOptions": "<operation-option>"
},
Vereist
Weergegeven als | Type | Description |
---|---|---|
<actienaam> | String | De naam van de actie |
<actietype> | String | Het actietype, bijvoorbeeld Http of Api Verbinding maken ion |
<invoernaam> | String | De naam voor een invoer die het gedrag van de actie definieert |
<invoerwaarde> | Diverse | De invoerwaarde, die een tekenreeks, geheel getal, JSON-object, enzovoort kan zijn |
<previous-trigger-or-action-status> | JSON-object | De naam en de resulterende status voor de trigger of actie die direct moeten worden uitgevoerd voordat deze huidige actie kan worden uitgevoerd |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
<runtime-config-options> | JSON-object | Voor sommige acties kunt u het gedrag van de actie tijdens runtime wijzigen door eigenschappen in te stellen runtimeConfiguration . Zie Runtime-configuratie-instellingen voor meer informatie. |
<operation-option> | String | Voor sommige acties kunt u het standaardgedrag wijzigen door de operationOptions eigenschap in te stellen. Zie Bewerkingsopties voor meer informatie. |
Lijst met actietypen
Hier volgen enkele veelgebruikte actietypen:
Ingebouwde actietypen , zoals deze voorbeelden en meer:
HTTP voor het aanroepen van eindpunten via HTTP of HTTPS
Antwoord voor het reageren op aanvragen
JavaScript-code uitvoeren voor het uitvoeren van JavaScript-codefragmenten
Functie voor het aanroepen van Azure Functions
Acties voor gegevensbewerkingen, zoals Join, Compose, Table, Select en anderen die gegevens maken of transformeren op verschillende invoer
Werkstroom voor het aanroepen van een andere werkstroom voor logische apps
Beheerde API-actietypen zoals Api Verbinding maken ion en Api Verbinding maken ionWebHook die verschillende connectors en API's aanroepen die worden beheerd door Microsoft, bijvoorbeeld Azure Service Bus, Office 365 Outlook, Power BI, Azure Blob Storage, OneDrive, GitHub en meer
Werkstroomactietypen beheren, zoals If, Foreach, Switch, Scope en Until, die andere acties bevatten en u helpen bij het organiseren van werkstroomuitvoering
Ingebouwde acties
Actietype | Beschrijving |
---|---|
Compose | Hiermee maakt u één uitvoer van invoer, die verschillende typen kan hebben. |
JavaScript-code uitvoeren | Voer JavaScript-codefragmenten uit die binnen specifieke criteria passen. Zie Codefragmenten toevoegen en uitvoeren met inlinecode voor meer informatie. |
Functie | Roept een Azure-functie aan. |
HTTP | Roept een HTTP-eindpunt aan. |
Join | Hiermee maakt u een tekenreeks van alle items in een matrix en scheidt u deze items met een opgegeven scheidingsteken. |
JSON parseren | Hiermee maakt u gebruiksvriendelijke tokens op basis van eigenschappen in JSON-inhoud. U kunt vervolgens naar deze eigenschappen verwijzen door de tokens in uw logische app op te slaan. |
Query | Hiermee maakt u een matrix op basis van items in een andere matrix op basis van een voorwaarde of filter. |
Respons | Hiermee maakt u een reactie op een inkomende oproep of aanvraag. |
Selecteren | Hiermee maakt u een matrix met JSON-objecten door items van een andere matrix te transformeren op basis van de opgegeven kaart. |
Tabel | Hiermee maakt u een CSV- of HTML-tabel op basis van een matrix. |
Terminate | Hiermee stopt u een actieve werkstroom. |
Wait | Onderbreekt uw werkstroom voor een opgegeven duur of tot de opgegeven datum en tijd. |
Werkstroom | Nestt een werkstroom in een andere werkstroom. |
Beheerde API-acties
Actietype | Beschrijving |
---|---|
ApiConnection | Roept een HTTP-eindpunt aan met behulp van een door Microsoft beheerde API. |
Api Verbinding maken ionWebhook | Werkt als HTTP Webhook, maar maakt gebruik van een door Microsoft beheerde API. |
Werkstroomacties beheren
Met deze acties kunt u de uitvoering van werkstromen beheren en andere acties opnemen. Van buiten een werkstroomactie voor besturingselementen kunt u rechtstreeks verwijzen naar acties binnen die werkstroomactie voor besturingselementen. Als u bijvoorbeeld een Http
actie binnen een bereik hebt, kunt u overal in de werkstroom verwijzen naar de @body('Http')
expressie. Acties die zich in een werkstroomactie voor besturingselementen bevinden, kunnen echter alleen worden uitgevoerd na andere acties die zich in dezelfde werkstroomstructuur bevinden.
Actietype | Beschrijving |
---|---|
Foreach | Voer dezelfde acties uit in een lus voor elk item in een matrix. |
If | Voer acties uit op basis van of de opgegeven voorwaarde waar of onwaar is. |
Scope | Voer acties uit op basis van de groepsstatus van een set acties. |
Switch | Voer acties uit die zijn ingedeeld in gevallen waarin waarden uit expressies, objecten of tokens overeenkomen met de waarden die in elke case zijn opgegeven. |
Tot | Voer acties in een lus uit totdat de opgegeven voorwaarde waar is. |
Acties - Gedetailleerde naslaginformatie
API Verbinding maken ionactie
Deze actie verzendt een HTTP-aanvraag naar een door Microsoft beheerde API en vereist informatie over de API en parameters plus een verwijzing naar een geldige verbinding.
"<action-name>": {
"type": "ApiConnection",
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['<api-name>']['connectionId']"
},
"<other-action-specific-input-properties>"
},
"method": "<method-type>",
"path": "/<api-operation>",
"retryPolicy": "<retry-behavior>",
"queries": { "<query-parameters>" },
"<other-action-specific-properties>"
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<actienaam> | String | De naam van de actie die door de connector wordt geleverd |
<API-naam> | String | De naam van de door Microsoft beheerde API die wordt gebruikt voor de verbinding |
<methodetype> | String | De HTTP-methode voor het aanroepen van de API: 'GET', 'PUT', 'POST', 'PATCH' of 'DELETE' |
<api-operation> | String | De API-bewerking die moet worden aangeroepen |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<andere actie-specifieke invoereigenschappen> | JSON-object | Alle andere invoereigenschappen die van toepassing zijn op deze specifieke actie |
<gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
<queryparameters> | JSON-object | Queryparameters die moeten worden opgenomen met de API-aanroep. Het object wordt bijvoorbeeld "queries": { "api-version": "2018-01-01" } toegevoegd ?api-version=2018-01-01 aan de aanroep. |
<andere actie-specifieke eigenschappen> | JSON-object | Alle andere eigenschappen die van toepassing zijn op deze specifieke actie |
Voorbeeld
In deze definitie wordt de actie Een e-mail verzenden voor Office 365 Outlook-connector beschreven. Dit is een door Microsoft beheerde API:
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "Thank you for your membership!",
"Subject": "Hello and welcome!",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "POST",
"path": "/Mail"
},
"runAfter": {}
}
API Verbinding maken ionWebhook-actie
Met deze actie wordt een abonnementsaanvraag via HTTP naar een eindpunt verzonden met behulp van een door Microsoft beheerde API, een callback-URL naar de locatie waar het eindpunt een antwoord kan verzenden en wacht tot het eindpunt reageert. Zie Eindpuntabonnementen voor meer informatie.
"<action-name>": {
"type": "ApiConnectionWebhook",
"inputs": {
"subscribe": {
"method": "<method-type>",
"uri": "<api-subscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"retryPolicy": "<retry-behavior>",
"queries": { "<query-parameters>" },
"<other-action-specific-input-properties>"
},
"unsubscribe": {
"method": "<method-type>",
"uri": "<api-unsubscribe-URL>",
"headers": { "<header-content>" },
"body": "<body-content>",
"authentication": { "<authentication-type>" },
"<other-action-specific-properties>"
},
},
"runAfter": {}
}
Sommige waarden, zoals <methodetype>, zijn beschikbaar voor zowel de als "unsubscribe"
de "subscribe"
objecten.
Vereist
Weergegeven als | Type | Description |
---|---|---|
<actienaam> | String | De naam van de actie die door de connector wordt geleverd |
<methodetype> | String | De HTTP-methode die moet worden gebruikt voor het abonneren of afmelden van een eindpunt: 'GET', 'PUT', 'POST', 'PATCH' of 'DELETE' |
<API-subscribe-URL> | String | De URI die moet worden gebruikt voor het abonneren op de API |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<api-unsubscribe-URL> | String | De URI die moet worden gebruikt voor het afmelden van de API |
<header-content> | JSON-object | Eventuele headers die in de aanvraag moeten worden verzonden Als u bijvoorbeeld de taal wilt instellen en typt voor een aanvraag: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
<hoofdtekstinhoud> | JSON-object | Alle berichtinhoud die in de aanvraag moet worden verzonden |
<verificatietype> | JSON-object | Het verificatiemodel dat door de aanvraag wordt gebruikt voor het verifiëren van uitgaande aanvragen. Zie Verificatie toevoegen aan uitgaande oproepen voor meer informatie. |
<gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
<queryparameters> | JSON-object | Queryparameters die moeten worden opgenomen met de API-aanroep Het object wordt bijvoorbeeld "queries": { "api-version": "2018-01-01" } toegevoegd ?api-version=2018-01-01 aan de aanroep. |
<andere actie-specifieke invoereigenschappen> | JSON-object | Alle andere invoereigenschappen die van toepassing zijn op deze specifieke actie |
<andere actie-specifieke eigenschappen> | JSON-object | Alle andere eigenschappen die van toepassing zijn op deze specifieke actie |
U kunt ook limieten opgeven voor een Api Verbinding maken ionWebhook-actie op dezelfde manier als http-asynchrone limieten.
Actie Opstellen
Met deze actie maakt u één uitvoer van meerdere invoergegevens, inclusief expressies. Zowel de uitvoer als de invoer kunnen elk type hebben dat azure Logic Apps systeemeigen ondersteunt, zoals matrices, JSON-objecten, XML en binair. Vervolgens kunt u de uitvoer van de actie in andere acties gebruiken.
"Compose": {
"type": "Compose",
"inputs": "<inputs-to-compose>",
"runAfter": {}
},
Vereist
Weergegeven als | Type | Description |
---|---|---|
<invoer-naar-opstellen> | Alle | De invoer voor het maken van één uitvoer |
Voorbeeld 1
Deze actiedefinitie wordt abcdefg
samengevoegd met een volgruimte en de waarde 1234
:
"Compose": {
"type": "Compose",
"inputs": "abcdefg 1234",
"runAfter": {}
},
Dit is de uitvoer die met deze actie wordt gemaakt:
abcdefg 1234
Voorbeeld 2
Met deze actiedefinitie wordt een tekenreeksvariabele samengevoegd die een geheel getalvariabele bevat abcdefg
1234
met:
"Compose": {
"type": "Compose",
"inputs": "@{variables('myString')}@{variables('myInteger')}",
"runAfter": {}
},
Dit is de uitvoer die met deze actie wordt gemaakt:
"abcdefg1234"
JavaScript-codeactie uitvoeren
Met deze actie wordt een JavaScript-codefragment uitgevoerd en worden de resultaten geretourneerd via een token waarnaar volgende acties in de werkstroom kunnen verwijzen.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "<JavaScript-code-snippet>",
"explicitDependencies": {
"actions": [ <preceding-actions> ],
"includeTrigger": true
}
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<JavaScript-codefragment> | Varieert | De JavaScript-code die u wilt uitvoeren. Zie Codefragmenten uitvoeren in werkstromen voor meer informatie. In het code kenmerk kan het codefragment het alleen-lezenobject workflowContext gebruiken als invoer. Dit object bevat subproperties die uw code toegang geven tot de uitvoer van de trigger en eventuele voorgaande acties in uw werkstroom. Zie Referentietrigger- en actieresultaten met behulp van het object workflowContext voor meer informatie over het workflowContext object. |
Vereist in sommige gevallen
Het explicitDependencies
kenmerk geeft aan dat u expliciet resultaten van de trigger, eerdere acties of beide als afhankelijkheden voor uw codefragment wilt opnemen. Zie Afhankelijkheden als parameters toevoegen aan een inlinecodeactie voor meer informatie over het toevoegen van deze afhankelijkheden.
Voor het includeTrigger
kenmerk kunt u waarden opgeven of false
waarden opgeventrue
.
Weergegeven als | Type | Description |
---|---|---|
<voorgaande acties> | Tekenreeksmatrix | Een matrix met de actienamen in JSON-indeling als afhankelijkheden. Zorg ervoor dat u de actienamen gebruikt die worden weergegeven in uw werkstroomdefinitie, waarbij actienamen onderstrepingstekens (_), geen spaties (" ") gebruiken. |
Voorbeeld 1
Met deze actie wordt code uitgevoerd die de naam van de werkstroom van uw logische app ophaalt en de tekst 'Hallo wereld van <logic-app-name>' retourneert als resultaat. In dit voorbeeld verwijst de code naar de naam van de werkstroom door toegang te krijgen tot de workflowContext.workflow.name
eigenschap via het object alleen-lezen workflowContext
. Zie Referentietrigger en actieresultaten in uw code voor meer informatie over het gebruik van het workflowContext
object.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "var text = \"Hello world from \" + workflowContext.workflow.name;\r\n\r\nreturn text;"
},
"runAfter": {}
}
Voorbeeld 2
Met deze actie wordt code uitgevoerd in een werkstroom van een logische app die wordt geactiveerd wanneer een nieuwe e-mail binnenkomt in een Outlook-account. De werkstroom maakt ook gebruik van de e-mailactie Goedkeuring verzenden in Office 365 Outlook waarmee de inhoud van de ontvangen e-mail wordt doorgestuurd, samen met een verzoek om goedkeuring.
De code extraheert de e-mailadressen uit de eigenschap van Body
het e-mailbericht en retourneert de adressen samen met de SelectedOption
eigenschapswaarde van de goedkeuringsactie. De actie bevat expliciet de actie Goedkeurings-e-mail verzenden als een afhankelijkheid in het actions
object binnen het explicitDependencies
object.
"Execute_JavaScript_Code": {
"type": "JavaScriptCode",
"inputs": {
"code": "var myResult = /(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\r\n\r\nvar email = workflowContext.trigger.outputs.body.Body;\r\n\r\nvar reply = workflowContext.actions.Send_approval_email.outputs.body.SelectedOption;\r\n\r\nreturn email.match(myResult) + \" - \" + reply;\r\n;",
"explicitDependencies": {
"actions": [
"Send_approval_email"
]
}
},
"runAfter": {}
}
Functieactie
Met deze actie wordt een eerder gemaakte Azure-functie aangeroepen.
"<Azure-function-name>": {
"type": "Function",
"inputs": {
"function": {
"id": "<Azure-function-ID>"
},
"method": "<method-type>",
"headers": { "<header-content>" },
"body": { "<body-content>" },
"queries": { "<query-parameters>" }
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<Azure-function-ID> | String | De resource-id voor de Azure-functie die u wilt aanroepen. Dit is de notatie voor deze waarde: "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Web/sites/<Azure-function-app-name>/functions/<Azure-function-name>" |
<methodetype> | String | De HTTP-methode die moet worden gebruikt voor het aanroepen van de functie: 'GET', 'PUT', 'POST', 'PATCH' of 'DELETE' Als dit niet is opgegeven, is de standaardwaarde de methode POST. |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<header-content> | JSON-object | Eventuele headers die met de oproep moeten worden verzonden Als u bijvoorbeeld de taal wilt instellen en typt voor een aanvraag: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
<hoofdtekstinhoud> | JSON-object | Alle berichtinhoud die in de aanvraag moet worden verzonden |
<queryparameters> | JSON-object | Queryparameters die moeten worden opgenomen met de API-aanroep Het object wordt bijvoorbeeld "queries": { "api-version": "2018-01-01" } toegevoegd ?api-version=2018-01-01 aan de aanroep. |
<andere actie-specifieke invoereigenschappen> | JSON-object | Alle andere invoereigenschappen die van toepassing zijn op deze specifieke actie |
<andere actie-specifieke eigenschappen> | JSON-object | Alle andere eigenschappen die van toepassing zijn op deze specifieke actie |
Wanneer u uw logische app opslaat, voert Azure Logic Apps deze controles uit op de functie waarnaar wordt verwezen:
Uw werkstroom moet toegang hebben tot de functie.
Uw werkstroom kan alleen een standaard HTTP-trigger of algemene JSON-webhooktrigger gebruiken.
Azure Logic Apps haalt de URL van de trigger op en slaat deze in de cache op, die tijdens runtime wordt gebruikt. Als een bewerking echter de URL in de cache ongeldig maakt, mislukt de functieactie tijdens runtime. U kunt dit probleem oplossen door de logische app opnieuw op te slaan, zodat de logische app de trigger-URL opnieuw in de cache opslaat.
De functie kan geen route hebben gedefinieerd.
Alleen de autorisatieniveaus 'functie' en 'anoniem' zijn toegestaan.
Voorbeeld
Met deze actiedefinitie wordt de eerder gemaakte functie GetProductID aangeroepen:
"GetProductID": {
"type": "Function",
"inputs": {
"function": {
"id": "/subscriptions/<XXXXXXXXXXXXXXXXXXXX>/resourceGroups/myLogicAppResourceGroup/providers/Microsoft.Web/sites/InventoryChecker/functions/GetProductID"
},
"method": "POST",
"headers": {
"x-ms-date": "@utcnow()"
},
"body": {
"Product_ID": "@variables('ProductID')"
}
},
"runAfter": {}
}
HTTP-actie
Met deze actie wordt een aanvraag verzonden naar het opgegeven HTTP- of HTTPS-eindpunt en wordt het antwoord gecontroleerd om te bepalen of de werkstroom wordt uitgevoerd. Zie Service-eindpunten aanroepen via HTTP of HTTPS vanuit Azure Logic Apps voor meer informatie.
"HTTP": {
"type": "Http",
"inputs": {
"method": "<method-type>",
"uri": "<HTTP-or-HTTPS-endpoint-URL>",
"headers": { "<header-content>" },
"queries": { "<query-parameters>" },
"body": "<body-content>",
"authentication": { "<authentication-type-and-property-values>" },
"retryPolicy": {
"type": "<retry-behavior>"
},
},
"runAfter": {}
}
Vereist
Eigenschappen | Weergegeven als | Type | Description |
---|---|---|---|
method |
<methodetype> | String | De methode die moet worden gebruikt voor het verzenden van de uitgaande aanvraag: 'GET', 'PUT', 'POST', 'PATCH' of 'DELETE' |
uri |
<HTTP-of-HTTPS-eindpunt-URL> | String | De URL van het HTTP- of HTTPS-eindpunt waarnaar u de uitgaande aanvraag wilt verzenden. Maximale tekenreeksgrootte: 2 kB Voor een Azure-service of -resource bevat deze URI-syntaxis de resource-id en het pad naar de resource waartoe u toegang wilt krijgen. |
Optioneel
Eigenschappen | Weergegeven als | Type | Description |
---|---|---|---|
headers |
<header-content> | JSON-object | Eventuele headers die u bij de aanvraag moet opnemen Als u bijvoorbeeld de taal en het type wilt instellen: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } |
queries |
<queryparameters> | JSON-object | Queryparameters die u in de aanvraag moet gebruiken Het object wordt bijvoorbeeld "queries": { "api-version": "2018-01-01" } toegevoegd ?api-version=2018-01-01 aan de aanroep. |
body |
<hoofdtekstinhoud> | JSON-object | De berichtinhoud die moet worden verzonden als nettolading met de aanvraag |
authentication |
<authentication-type-and-property-values> | JSON-object | Het verificatiemodel dat door de aanvraag wordt gebruikt voor het verifiëren van uitgaande aanvragen. Zie Verificatie toevoegen aan uitgaande oproepen voor meer informatie. Naast Scheduler wordt de authority eigenschap ondersteund. Wanneer deze niet is opgegeven, is https://management.azure.com/ de standaardwaarde, maar u kunt een andere waarde gebruiken. |
retryPolicy > type |
<gedrag voor opnieuw proberen> | JSON-object | Hiermee past u het gedrag voor opnieuw proberen aan voor onregelmatige fouten, met de statuscode 408, 429 en 5XX, en eventuele connectiviteitsuitzonderingen. Zie Beleid voor opnieuw proberen voor meer informatie. |
<andere actie-specifieke invoereigenschappen> | <invoereigenschap> | JSON-object | Alle andere invoereigenschappen die van toepassing zijn op deze specifieke actie |
<andere actie-specifieke eigenschappen> | <eigenschapswaarde> | JSON-object | Alle andere eigenschappen die van toepassing zijn op deze specifieke actie |
Voorbeeld
Deze actiedefinitie haalt het laatste nieuws op door een aanvraag naar het opgegeven eindpunt te verzenden:
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "https://mynews.example.com/latest"
}
}
Actie samenvoegen
Met deze actie maakt u een tekenreeks van alle items in een matrix en scheidt u deze items met het opgegeven scheidingsteken.
"Join": {
"type": "Join",
"inputs": {
"from": <array>,
"joinWith": "<delimiter>"
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<Array> | Matrix | De matrix of expressie die de bronitems levert. Als u een expressie opgeeft, plaatst u die expressie tussen dubbele aanhalingstekens. |
<scheidingsteken> | Tekenreeks met één teken | Het teken dat elk item in de tekenreeks scheidt |
Voorbeeld
Stel dat u een eerder gemaakte variabele 'myIntegerArray' hebt die deze matrix met gehele getallen bevat:
[1,2,3,4]
Deze actiedefinitie haalt de waarden van de variabele op met behulp van de variables()
functie in een expressie en maakt deze tekenreeks met deze waarden, gescheiden door een komma: "1,2,3,4"
"Join": {
"type": "Join",
"inputs": {
"from": "@variables('myIntegerArray')",
"joinWith": ","
},
"runAfter": {}
}
JSON-actie parseren
Met deze actie worden gebruiksvriendelijke velden of tokens gemaakt op basis van de eigenschappen in JSON-inhoud. U kunt deze eigenschappen vervolgens openen in uw logische app met behulp van de tokens. Als u bijvoorbeeld JSON-uitvoer van services zoals Azure Service Bus en Azure Cosmos DB wilt gebruiken, kunt u deze actie opnemen in uw logische app, zodat u gemakkelijker naar de gegevens in die uitvoer kunt verwijzen.
"Parse_JSON": {
"type": "ParseJson",
"inputs": {
"content": "<JSON-source>",
"schema": { "<JSON-schema>" }
},
"runAfter": {}
},
Vereist
Weergegeven als | Type | Description |
---|---|---|
<JSON-bron> | JSON-object | De JSON-inhoud die u wilt parseren |
<JSON-schema> | JSON-object | Het JSON-schema dat de onderliggende JSON-inhoud beschrijft, die door de actie wordt gebruikt voor het parseren van de bron-JSON-inhoud. Tip: In de werkstroomontwerper kunt u het schema opgeven of een voorbeeldpayload opgeven, zodat de actie het schema kan genereren. |
Voorbeeld
Met deze actiedefinitie worden deze tokens gemaakt die u in uw werkstroom kunt gebruiken, maar alleen in acties die worden uitgevoerd na de JSON-actie Parseren:
FirstName
, en LastName
Email
"Parse_JSON": {
"type": "ParseJson",
"inputs": {
"content": {
"Member": {
"Email": "Sophie.Owen@contoso.com",
"FirstName": "Sophie",
"LastName": "Owen"
}
},
"schema": {
"type": "object",
"properties": {
"Member": {
"type": "object",
"properties": {
"Email": {
"type": "string"
},
"FirstName": {
"type": "string"
},
"LastName": {
"type": "string"
}
}
}
}
}
},
"runAfter": { }
},
In dit voorbeeld geeft de eigenschap 'inhoud' de JSON-inhoud op voor de actie die moet worden geparseerd. U kunt deze JSON-inhoud ook opgeven als de voorbeeldpayload voor het genereren van het schema.
"content": {
"Member": {
"FirstName": "Sophie",
"LastName": "Owen",
"Email": "Sophie.Owen@contoso.com"
}
},
De eigenschap Schema geeft het JSON-schema op dat wordt gebruikt voor het beschrijven van de JSON-inhoud:
"schema": {
"type": "object",
"properties": {
"Member": {
"type": "object",
"properties": {
"FirstName": {
"type": "string"
},
"LastName": {
"type": "string"
},
"Email": {
"type": "string"
}
}
}
}
}
Queryactie
Met deze actie maakt u een matrix op basis van items in een andere matrix op basis van een opgegeven voorwaarde of filter.
"Filter_array": {
"type": "Query",
"inputs": {
"from": <array>,
"where": "<condition-or-filter>"
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<Array> | Matrix | De matrix of expressie die de bronitems levert. Als u een expressie opgeeft, plaatst u die expressie tussen dubbele aanhalingstekens. |
<condition-or-filter> | String | De voorwaarde die wordt gebruikt voor het filteren van items in de bronmatrix Opmerking: Als er geen waarden aan de voorwaarde voldoen, wordt met de actie een lege matrix gemaakt. |
Voorbeeld
Met deze actiedefinitie maakt u een matrix met waarden die groter zijn dan de opgegeven waarde. Dit zijn twee:
"Filter_array": {
"type": "Query",
"inputs": {
"from": [ 1, 3, 0, 5, 4, 2 ],
"where": "@greater(item(), 2)"
}
}
Response action
Met deze actie maakt u de nettolading voor het antwoord op een HTTP-aanvraag.
"Response" {
"type": "Response",
"kind": "http",
"inputs": {
"statusCode": 200,
"headers": { <response-headers> },
"body": { <response-body> }
},
"runAfter": {}
},
Vereist
Weergegeven als | Type | Description |
---|---|---|
<response-status-code> | Geheel getal | De HTTP-statuscode die naar de binnenkomende aanvraag wordt verzonden. De standaardcode is '200 OK', maar de code kan elke geldige statuscode zijn die begint met 2xx, 4xx of 5xx, maar niet met 3xxx. |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<antwoordheaders> | JSON-object | Een of meer headers die moeten worden opgenomen in het antwoord |
<antwoordtekst> | Diverse | De hoofdtekst van het antwoord, die een tekenreeks, JSON-object of zelfs binaire inhoud van een vorige actie kan zijn |
Voorbeeld
Met deze actiedefinitie wordt een antwoord gemaakt op een HTTP-aanvraag met de opgegeven statuscode, berichttekst en berichtkoppen:
"Response": {
"type": "Response",
"inputs": {
"statusCode": 200,
"body": {
"ProductID": 0,
"Description": "Organic Apples"
},
"headers": {
"x-ms-date": "@utcnow()",
"content-type": "application/json"
}
},
"runAfter": {}
}
Beperkingen
In tegenstelling tot andere acties heeft de actie Antwoord speciale beperkingen:
Uw werkstroom kan de actie Antwoord alleen gebruiken wanneer de werkstroom begint met een HTTP-aanvraagtrigger, wat betekent dat uw werkstroom moet worden geactiveerd door een HTTP-aanvraag.
Uw werkstroom kan de actie Antwoord overal gebruiken, behalve in Foreach-lussen , Tot-lussen , inclusief sequentiële lussen en parallelle vertakkingen.
De oorspronkelijke aanvraag ontvangt alleen het antwoord van uw werkstroom wanneer alle acties die door de reactieactie zijn vereist, binnen de http-time-outlimiet zijn voltooid.
Als uw werkstroom echter een andere logische app aanroept als een geneste werkstroom, wacht de bovenliggende werkstroom totdat de geneste werkstroom is voltooid, ongeacht hoe lang de geneste werkstroom is voltooid.
Wanneer uw werkstroom gebruikmaakt van de actie Antwoord en een synchroon antwoordpatroon, kan de werkstroom niet ook de splitOn-opdracht in de triggerdefinitie gebruiken omdat met deze opdracht meerdere uitvoeringen worden gemaakt. Controleer op dit geval wanneer de PUT-methode wordt gebruikt en indien waar, een 'ongeldige aanvraag' retourneert.
Als uw werkstroom de splitOn-opdracht en een antwoordactie gebruikt, wordt de werkstroom asynchroon uitgevoerd en wordt er onmiddellijk een antwoord '202 GEACCEPTEERD' geretourneerd.
Wanneer de uitvoering van uw werkstroom de actie Antwoord bereikt, maar de binnenkomende aanvraag al een antwoord heeft ontvangen, wordt de actie Antwoord gemarkeerd als Mislukt vanwege het conflict. Als gevolg hiervan wordt de uitvoering van uw logische app ook gemarkeerd met de status Mislukt.
Actie selecteren
Met deze actie maakt u een matrix met JSON-objecten door items van een andere matrix te transformeren op basis van de opgegeven kaart. De uitvoermatrix en de bronmatrix hebben altijd hetzelfde aantal items. Hoewel u het aantal objecten in de uitvoermatrix niet kunt wijzigen, kunt u eigenschappen en de bijbehorende waarden aan deze objecten toevoegen of verwijderen. De select
eigenschap geeft ten minste één sleutel-waardepaar op waarmee de kaart wordt gedefinieerd voor het transformeren van items in de bronmatrix. Een sleutel-waardepaar vertegenwoordigt een eigenschap en de bijbehorende waarde voor alle objecten in de uitvoermatrix.
"Select": {
"type": "Select",
"inputs": {
"from": <array>,
"select": {
"<key-name>": "<expression>",
"<key-name>": "<expression>"
}
},
"runAfter": {}
},
Vereist
Weergegeven als | Type | Description |
---|---|---|
<Array> | Matrix | De matrix of expressie die de bronitems levert. Zorg ervoor dat u een expressie tussen dubbele aanhalingstekens plaatst. Opmerking: Als de bronmatrix leeg is, wordt met de actie een lege matrix gemaakt. |
<sleutelnaam> | String | De eigenschapsnaam die is toegewezen aan het resultaat van <de expressie> Als u een nieuwe eigenschap wilt toevoegen aan alle objecten in de uitvoermatrix, geeft u een <sleutelnaam> op voor die eigenschap en een< expressie> voor de eigenschapswaarde. Als u een eigenschap uit alle objecten in de matrix wilt verwijderen, laat u de <sleutelnaam> voor die eigenschap weg. |
<Expressie> | String | De expressie waarmee het item in de bronmatrix wordt getransformeerd en het resultaat wordt toegewezen aan <de sleutelnaam> |
Met de actie Selecteren wordt een matrix als uitvoer gemaakt, dus elke actie die deze uitvoer wil gebruiken, moet een matrix accepteren of u moet de matrix converteren naar het type dat de consumentenactie accepteert. Als u bijvoorbeeld de uitvoermatrix wilt converteren naar een tekenreeks, kunt u die matrix doorgeven aan de actie Opstellen en vervolgens verwijzen naar de uitvoer van de actie Opstellen in uw andere acties.
Voorbeeld
Met deze actiedefinitie maakt u een JSON-objectmatrix op basis van een gehele getalmatrix. De actie doorloopt de bronmatrix, haalt elke gehele waarde op met behulp van de @item()
expressie en wijst elke waarde toe aan de eigenschap 'number
' in elk JSON-object:
"Select": {
"type": "Select",
"inputs": {
"from": [ 1, 2, 3 ],
"select": {
"number": "@item()"
}
},
"runAfter": {}
},
Dit is de matrix die met deze actie wordt gemaakt:
[ { "number": 1 }, { "number": 2 }, { "number": 3 } ]
Als u deze matrixuitvoer in andere acties wilt gebruiken, geeft u deze uitvoer door in een actie Opstellen :
"Compose": {
"type": "Compose",
"inputs": "@body('Select')",
"runAfter": {
"Select": [ "Succeeded" ]
}
},
Vervolgens kunt u de uitvoer van de actie Opstellen gebruiken in uw andere acties, bijvoorbeeld office 365 Outlook - Een e-mailactie verzenden:
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "@{outputs('Compose')}",
"Subject": "Output array from Select and Compose actions",
"To": "<your-email@domain>"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {
"Compose": [ "Succeeded" ]
}
},
Tabelactie
Met deze actie maakt u een CSV- of HTML-tabel op basis van een matrix. Voor matrices met JSON-objecten maakt deze actie automatisch de kolomkoppen op basis van de eigenschapsnamen van de objecten. Voor matrices met andere gegevenstypen moet u de kolomkoppen en -waarden opgeven. Deze matrix bevat bijvoorbeeld de eigenschappen 'ID' en 'Product_Name' die deze actie kan gebruiken voor de kolomkopnamen:
[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]
"Create_<CSV | HTML>_table": {
"type": "Table",
"inputs": {
"format": "<CSV | HTML>",
"from": <array>,
"columns": [
{
"header": "<column-name>",
"value": "<column-value>"
},
{
"header": "<column-name>",
"value": "<column-value>"
}
]
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<CSV of HTML> | String | De indeling voor de tabel die u wilt maken |
<Array> | Matrix | De matrix of expressie die de bronitems voor de tabel levert Opmerking: Als de bronmatrix leeg is, wordt met de actie een lege tabel gemaakt. |
Optioneel
Als u kolomkoppen en -waarden wilt opgeven of aanpassen, gebruikt u de columns
matrix. Wanneer header-value
paren dezelfde kopnaam hebben, worden hun waarden weergegeven in dezelfde kolom onder die kopnaam. Anders definieert elke unieke kop een unieke kolom.
Weergegeven als | Type | Description |
---|---|---|
<kolomnaam> | String | De naam van de koptekst voor een kolom |
<kolomwaarde> | Alle | De waarde in die kolom |
Voorbeeld 1
Stel dat u een eerder gemaakte variabele 'myItemArray' hebt die momenteel deze matrix bevat:
[ {"ID": 0, "Product_Name": "Apples"}, {"ID": 1, "Product_Name": "Oranges"} ]
Met deze actiedefinitie wordt een CSV-tabel gemaakt op basis van de variabele myItemArray. Met de expressie die door de from
eigenschap wordt gebruikt, wordt de matrix opgehaald uit 'myItemArray' met behulp van de variables()
functie:
"Create_CSV_table": {
"type": "Table",
"inputs": {
"format": "CSV",
"from": "@variables('myItemArray')"
},
"runAfter": {}
}
Dit is de CSV-tabel die met deze actie wordt gemaakt:
ID,Product_Name
0,Apples
1,Oranges
Voorbeeld 2
Met deze actiedefinitie wordt een HTML-tabel gemaakt op basis van de variabele myItemArray. Met de expressie die door de from
eigenschap wordt gebruikt, wordt de matrix opgehaald uit 'myItemArray' met behulp van de variables()
functie:
"Create_HTML_table": {
"type": "Table",
"inputs": {
"format": "HTML",
"from": "@variables('myItemArray')"
},
"runAfter": {}
}
Hier volgt de HTML-tabel die met deze actie wordt gemaakt:
Id | Product_Name |
---|---|
0 | Appels |
1 | Sinaasappelen |
Voorbeeld 3
Met deze actiedefinitie wordt een HTML-tabel gemaakt op basis van de variabele myItemArray. In dit voorbeeld worden de standaardnamen van kolomkoppen echter overschreven met 'Stock_ID' en 'Beschrijving', en wordt het woord 'Organisch' toegevoegd aan de waarden in de kolom Beschrijving.
"Create_HTML_table": {
"type": "Table",
"inputs": {
"format": "HTML",
"from": "@variables('myItemArray')",
"columns": [
{
"header": "Stock_ID",
"value": "@item().ID"
},
{
"header": "Description",
"value": "@concat('Organic ', item().Product_Name)"
}
]
},
"runAfter": {}
},
Hier volgt de HTML-tabel die met deze actie wordt gemaakt:
Stock_ID | Beschrijving |
---|---|
0 | Biologische appels |
1 | Organische sinaasappelen |
Actie beëindigen
Deze actie stopt de uitvoering voor een werkstroomexemplaren, annuleert alle acties die worden uitgevoerd, slaat alle resterende acties over en retourneert de opgegeven status. U kunt bijvoorbeeld de actie Beëindigen gebruiken wanneer uw logische app volledig moet worden afgesloten vanuit een foutstatus. Deze actie heeft geen invloed op al voltooide acties en kan niet worden weergegeven in Foreach en Until-lussen , inclusief opeenvolgende lussen.
"Terminate": {
"type": "Terminate",
"inputs": {
"runStatus": "<status>",
"runError": {
"code": "<error-code-or-name>",
"message": "<error-message>"
}
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<status> | String | De status die moet worden geretourneerd voor de uitvoering: 'Mislukt', 'Geannuleerd' of 'Geslaagd' |
Optioneel
De eigenschappen voor het object runStatus zijn alleen van toepassing wanneer de eigenschap 'runStatus' is ingesteld op De status Mislukt.
Weergegeven als | Type | Description |
---|---|---|
<foutcode of naam> | String | De code of naam voor de fout |
<foutbericht> | String | Het bericht of de tekst die de fout beschrijft en eventuele acties die de app-gebruiker kan uitvoeren |
Voorbeeld
Deze actiedefinitie stopt een werkstroomuitvoering, stelt de uitvoeringsstatus in op Mislukt en retourneert de status, een foutcode en een foutbericht:
"Terminate": {
"type": "Terminate",
"inputs": {
"runStatus": "Failed",
"runError": {
"code": "Unexpected response",
"message": "The service received an unexpected response. Please try again."
}
},
"runAfter": {}
}
Wachtactie
Met deze actie wordt de uitvoering van de werkstroom onderbroken voor het opgegeven interval of tot de opgegeven tijd, maar niet beide.
Opgegeven interval
"Delay": {
"type": "Wait",
"inputs": {
"interval": {
"count": <number-of-units>,
"unit": "<interval>"
}
},
"runAfter": {}
},
Opgegeven tijd
"Delay_until": {
"type": "Wait",
"inputs": {
"until": {
"timestamp": "<date-time-stamp>"
}
},
"runAfter": {}
},
Vereist
Weergegeven als | Type | Description |
---|---|---|
<aantal eenheden> | Geheel getal | Voor de actie Vertraging is het aantal eenheden dat moet worden gewacht |
<interval> | String | Voor de actie Vertraging moet het interval wachten: 'Seconde', 'Minuut', 'Uur', 'Dag', 'Week', 'Maand' |
<datum-tijd-stempel> | String | Voor de actie Vertraging tot , de datum en tijd waarop de uitvoering moet worden hervat. Deze waarde moet de UTC-datum/tijdnotatie gebruiken. |
Voorbeeld 1
Met deze actiedefinitie wordt de werkstroom gedurende 15 minuten onderbroken:
"Delay": {
"type": "Wait",
"inputs": {
"interval": {
"count": 15,
"unit": "Minute"
}
},
"runAfter": {}
},
Voorbeeld 2
Met deze actiedefinitie wordt de werkstroom onderbroken tot de opgegeven tijd:
"Delay_until": {
"type": "Wait",
"inputs": {
"until": {
"timestamp": "2017-10-01T00:00:00Z"
}
},
"runAfter": {}
},
Werkstroomactie
Met deze actie wordt een andere eerder gemaakte logische app aangeroepen, wat betekent dat u andere werkstromen voor logische apps kunt opnemen en opnieuw kunt gebruiken. U kunt ook de uitvoer van de onderliggende of geneste logische app gebruiken in acties die de geneste logische app volgen, mits de onderliggende logische app een antwoord retourneert.
Azure Logic Apps controleert de toegang tot de trigger die u wilt aanroepen, dus zorg ervoor dat u toegang hebt tot die trigger. De geneste logische app moet ook voldoen aan deze criteria:
Een trigger maakt de geneste logische app aanroepbaar, zoals een aanvraag of HTTP-trigger
Hetzelfde Azure-abonnement als uw bovenliggende logische app
Als u de uitvoer van de geneste logische app in uw bovenliggende logische app wilt gebruiken, moet de geneste logische app een antwoordactie hebben
"<nested-logic-app-name>": {
"type": "Workflow",
"inputs": {
"body": { "<body-content" },
"headers": { "<header-content>" },
"host": {
"triggerName": "<trigger-name>",
"workflow": {
"id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group>/providers/Microsoft.Logic/<nested-logic-app-name>"
}
}
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<geneste logische-app-naam> | String | De naam voor de logische app die u wilt aanroepen |
<trigger-name> | String | De naam voor de trigger in de geneste logische app die u wilt aanroepen |
<Azure-subscription-ID> | String | De Azure-abonnements-id voor de geneste logische app |
<Azure-resource-group> | String | De naam van de Azure-resourcegroep voor de geneste logische app |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<header-content> | JSON-object | Eventuele headers die met de oproep moeten worden verzonden |
<hoofdtekstinhoud> | JSON-object | Alle berichtinhoud die met de oproep moet worden verzonden |
Uitvoer
De uitvoer van deze actie varieert op basis van de reactieactie van de geneste logische app. Als de geneste logische app geen antwoordactie bevat, zijn de uitvoer leeg.
Voorbeeld
Nadat de actie 'Start_search' is voltooid, roept deze werkstroomactiedefinitie een andere logische app aan met de naam 'Get_product_information', die de opgegeven invoer doorgeeft:
"actions": {
"Start_search": { <action-definition> },
"Get_product_information": {
"type": "Workflow",
"inputs": {
"body": {
"ProductID": "24601",
},
"host": {
"id": "/subscriptions/XXXXXXXXXXXXXXXXXXXXXXXXXX/resourceGroups/InventoryManager-RG/providers/Microsoft.Logic/Get_product_information",
"triggerName": "Find_product"
},
"headers": {
"content-type": "application/json"
}
},
"runAfter": {
"Start_search": [ "Succeeded" ]
}
}
},
Details van werkstroomactie beheren
Foreach-actie
Deze lusactie doorloopt een matrix en voert acties uit op elk matrixitem. Standaard wordt de lus 'voor elke' parallel uitgevoerd tot een maximum aantal lussen. Zie Limieten en configuratie voor dit maximum. Meer informatie over het maken van 'voor elke' lussen.
"For_each": {
"type": "Foreach",
"actions": {
"<action-1>": { "<action-definition-1>" },
"<action-2>": { "<action-definition-2>" }
},
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": <count>
}
},
"operationOptions": "<operation-option>"
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<action-1... N> | String | De namen van de acties die worden uitgevoerd op elk matrixitem |
<action-definition-1... N> | JSON-object | De definities van de acties die worden uitgevoerd |
<for-each-expression> | String | De expressie die verwijst naar elk item in de opgegeven matrix |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<count> | Geheel getal | Standaard worden de herhalingen voor elke lus tegelijkertijd (gelijktijdig of parallel) uitgevoerd tot aan de standaardlimiet. Zie Gelijktijdigheid van elke lus wijzigen als u deze limiet wilt wijzigen door een nieuwe <tellingswaarde> in te stellen. |
<operation-option> | String | Als u een lus voor elke lus opeenvolgend wilt uitvoeren in plaats van parallel, stelt u de <bewerkingsoptieSequential > in op of <telt> u op 1 , maar niet op beide. Zie Sequentieel uitvoeren voor elke lus voor meer informatie. |
Voorbeeld
Deze lus 'voor elke' verzendt een e-mail voor elk item in de matrix, dat bijlagen van een binnenkomende e-mail bevat. De lus verzendt een e-mailbericht, inclusief de bijlage, naar een persoon die de bijlage beoordeelt.
"For_each": {
"type": "Foreach",
"actions": {
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"body": {
"Body": "@base64ToString(items('For_each')?['Content'])",
"Subject": "Review attachment",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"id": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
}
},
"foreach": "@triggerBody()?['Attachments']",
"runAfter": {}
}
Als u alleen een matrix wilt opgeven die wordt doorgegeven als uitvoer van de trigger, haalt deze expressie de <matrixnaammatrix> op uit de hoofdtekst van de trigger. Om een fout te voorkomen als de matrix niet bestaat, gebruikt de expressie de ?
operator:
@triggerBody()?['<array-name>']
Als actie
Deze actie, een voorwaardelijke instructie, evalueert een expressie die een voorwaarde vertegenwoordigt en voert een andere vertakking uit op basis van of de voorwaarde waar of onwaar is. Als de voorwaarde waar is, wordt de voorwaarde gemarkeerd met de status Geslaagd. Meer informatie over het maken van voorwaardelijke instructies.
"Condition": {
"type": "If",
"expression": { "<condition>" },
"actions": {
"<action-1>": { "<action-definition>" }
},
"else": {
"actions": {
"<action-2>": { "<action-definition" }
}
},
"runAfter": {}
}
Weergegeven als | Type | Description |
---|---|---|
<voorwaarde> | JSON-object | De voorwaarde, die een expressie kan zijn, om te evalueren |
<action-1> | JSON-object | De actie die moet worden uitgevoerd wanneer <de voorwaarde> waar is |
<action-definition> | JSON-object | De definitie voor de actie |
<action-2> | JSON-object | De actie die moet worden uitgevoerd wanneer <de voorwaarde> resulteert in onwaar |
De acties in de actions
of else
objecten krijgen deze statussen:
- 'Geslaagd' wanneer ze worden uitgevoerd en geslaagd
- 'Mislukt' wanneer ze worden uitgevoerd en mislukken
- 'Overgeslagen' wanneer de respectieve vertakking niet wordt uitgevoerd
Voorbeeld
Deze voorwaarde geeft aan dat wanneer de variabele geheel getal een waarde heeft die groter is dan nul, de werkstroom een website controleert. Als de variabele nul of minder is, controleert de werkstroom een andere website.
"Condition": {
"type": "If",
"expression": {
"and": [ {
"greater": [ "@variables('myIntegerVariable')", 0 ]
} ]
},
"actions": {
"HTTP - Check this website": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://this-url"
},
"runAfter": {}
}
},
"else": {
"actions": {
"HTTP - Check this other website": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://this-other-url"
},
"runAfter": {}
}
}
},
"runAfter": {}
}
Hoe voorwaarden expressies gebruiken
Hier volgen enkele voorbeelden die laten zien hoe u expressies in voorwaarden kunt gebruiken:
JSON | Resultaat |
---|---|
"expression": "@parameters('<hasSpecialAction>')" | Alleen voor Boole-expressies wordt de voorwaarde doorgegeven voor elke waarde die waar oplevert. Als u andere typen wilt converteren naar Booleaanse waarde, gebruikt u deze functies: empty() of equals() . |
"expression": "@greater(actions('action>'<).output.value, parameters('<threshold>'))" | Voor vergelijkingsfuncties wordt de actie alleen uitgevoerd wanneer de uitvoer van <de actie> meer is dan de <drempelwaarde>. |
"expression": "@or(greater(actions('action>'<).output.value, parameters('<threshold>')), less(actions('<same-action>').output.value, 100))" | Voor logische functies en het maken van geneste Boole-expressies wordt de actie uitgevoerd wanneer de uitvoer van <de actie> meer is dan de <drempelwaarde> of minder dan 100. |
"expression": "@equals(length(actions('action>'<).outputs.errors), 0)" | U kunt matrixfuncties gebruiken om te controleren of de matrix items bevat. De actie wordt uitgevoerd wanneer de errors matrix leeg is. |
Bereikactie
Met deze actie worden acties logisch gegroepeerd in bereiken, die hun eigen status krijgen nadat de acties in dat bereik zijn uitgevoerd. Vervolgens kunt u de status van het bereik gebruiken om te bepalen of andere acties worden uitgevoerd. Meer informatie over het maken van bereiken.
"Scope": {
"type": "Scope",
"actions": {
"<inner-action-1>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
},
"<inner-action-2>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
}
}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<inner-action-1... N> | JSON-object | Een of meer acties die binnen het bereik worden uitgevoerd |
<actie-invoer> | JSON-object | De invoer voor elke actie |
De actie Switch
Deze actie, ook wel een switch-instructie genoemd, organiseert andere acties in cases en wijst een waarde toe aan elke case, met uitzondering van de standaardcase als deze bestaat. Wanneer uw werkstroom wordt uitgevoerd, vergelijkt de actie Schakelen de waarde van een expressie, object of token met de waarden die voor elke case zijn opgegeven. Als met de actie Schakelen een overeenkomende aanvraag wordt gevonden, worden in uw werkstroom alleen de acties voor dat geval uitgevoerd. Telkens wanneer de actie Schakelen wordt uitgevoerd, bestaat er slechts één overeenkomende case of bestaan er geen overeenkomsten. Als er geen overeenkomsten bestaan, worden met de actie Schakelen de standaardacties uitgevoerd. Meer informatie over het maken van switchinstructies.
"Switch": {
"type": "Switch",
"expression": "<expression-object-or-token>",
"cases": {
"Case": {
"actions": {
"<action-name>": { "<action-definition>" }
},
"case": "<matching-value>"
},
"Case_2": {
"actions": {
"<action-name>": { "<action-definition>" }
},
"case": "<matching-value>"
}
},
"default": {
"actions": {
"<default-action-name>": { "<default-action-definition>" }
}
},
"runAfter": {}
}
Vereist
Weergegeven als | Type | Description |
---|---|---|
<expression-object-or-token> | Varieert | De expressie, het JSON-object of het token dat moet worden geëvalueerd |
<actienaam> | String | De naam van de actie die moet worden uitgevoerd voor de overeenkomende case |
<action-definition> | JSON-object | De definitie voor de actie die moet worden uitgevoerd voor de overeenkomende case |
<matching-value> | Varieert | De waarde die moet worden vergeleken met het geëvalueerde resultaat |
Optioneel
Weergegeven als | Type | Description |
---|---|---|
<standaardactienaam> | String | De naam van de standaardactie die moet worden uitgevoerd wanneer er geen overeenkomende case bestaat |
<standaardactiedefinitie> | JSON-object | De definitie voor de actie die moet worden uitgevoerd wanneer er geen overeenkomende case bestaat |
Voorbeeld
Met deze actiedefinitie wordt geëvalueerd of de persoon die op de e-mail van de goedkeuringsaanvraag reageert, de optie Goedkeuren of De optie Weigeren heeft geselecteerd. Op basis van deze keuze voert de actie Schakelen de acties uit voor de overeenkomende zaak, namelijk het verzenden van een andere e-mail naar de beantwoorder, maar met verschillende formuleringen in elk geval.
"Switch": {
"type": "Switch",
"expression": "@body('Send_approval_email')?['SelectedOption']",
"cases": {
"Case": {
"actions": {
"Send_an_email": {
"type": "ApiConnection",
"inputs": {
"Body": "Thank you for your approval.",
"Subject": "Response received",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
},
"case": "Approve"
},
"Case_2": {
"actions": {
"Send_an_email_2": {
"type": "ApiConnection",
"inputs": {
"Body": "Thank you for your response.",
"Subject": "Response received",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
},
"case": "Reject"
}
},
"default": {
"actions": {
"Send_an_email_3": {
"type": "ApiConnection",
"inputs": {
"Body": "Please respond with either 'Approve' or 'Reject'.",
"Subject": "Please respond",
"To": "Sophie.Owen@contoso.com"
},
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail"
},
"runAfter": {}
}
},
"runAfter": {
"Send_approval_email": [
"Succeeded"
]
}
}
Tot actie
Deze lusactie bevat acties die worden uitgevoerd totdat de opgegeven voorwaarde waar is. De lus controleert de voorwaarde als laatste stap nadat alle andere acties zijn uitgevoerd. U kunt meer dan één actie opnemen in het "actions"
object en de actie moet ten minste één limiet definiëren. Meer informatie over het maken van 'until'-lussen.
"Until": {
"type": "Until",
"actions": {
"<action-name>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
},
"<action-name>": {
"type": "<action-type>",
"inputs": { "<action-inputs>" },
"runAfter": {}
}
},
"expression": "<condition>",
"limit": {
"count": <loop-count>,
"timeout": "<loop-timeout>"
},
"runAfter": {}
}
Weergegeven als | Type | Description |
---|---|---|
<actienaam> | String | De naam van de actie die u binnen de lus wilt uitvoeren |
<actietype> | String | Het actietype dat u wilt uitvoeren |
<actie-invoer> | Diverse | De invoer voor de actie die moet worden uitgevoerd |
<voorwaarde> | String | De voorwaarde of expressie die moet worden geëvalueerd nadat alle acties in de lus zijn voltooid |
<loop-count> | Geheel getal | De limiet voor het meeste aantal lussen dat door de actie kan worden uitgevoerd. Zie Limieten en configuratie voor Azure Logic Apps voor meer informatie over de standaardlimiet en maximale limiet. |
<time-out voor herhalen> | String | De limiet voor de langste tijd die de lus kan uitvoeren. De standaardwaarde timeout is PT1H , wat de vereiste ISO 8601-indeling is. |
Notitie
Als de expressie afhankelijk is van de uitvoer van een actie binnen de lus Until, moet u ervoor zorgen dat u rekening houdt met eventuele fouten die het gevolg zijn van die actie.
Voorbeeld
Deze lusactiedefinitie verzendt een HTTP-aanvraag naar de opgegeven URL totdat aan een van deze voorwaarden wordt voldaan:
- De aanvraag ontvangt een antwoord met de statuscode 200 OK.
- De lus is 60 keer uitgevoerd.
- De lus is één uur uitgevoerd.
"Run_until_loop_succeeds_or_expires": {
"type": "Until",
"actions": {
"HTTP": {
"type": "Http",
"inputs": {
"method": "GET",
"uri": "http://myurl"
},
"runAfter": {}
}
},
"expression": "@equals(outputs('HTTP')['statusCode'], 200)",
"limit": {
"count": 60,
"timeout": "PT1H"
},
"runAfter": {}
}
Webhooks en abonnementen
Triggers en acties op basis van webhook controleren niet regelmatig eindpunten, maar wachten op specifieke gebeurtenissen of gegevens op die eindpunten. Deze triggers en acties abonneren zich op de eindpunten door een callback-URL op te geven waar het eindpunt antwoorden kan verzenden.
De subscribe
aanroep vindt plaats wanneer de werkstroom op welke manier dan ook verandert, bijvoorbeeld wanneer referenties worden vernieuwd of wanneer de invoerparameters voor een trigger of actie worden gewijzigd. Deze aanroep maakt gebruik van dezelfde parameters als standaard HTTP-acties.
De unsubscribe
aanroep wordt automatisch uitgevoerd wanneer een bewerking de trigger of actie ongeldig maakt, bijvoorbeeld:
- De trigger verwijderen of uitschakelen.
- De werkstroom verwijderen of uitschakelen.
- Het abonnement verwijderen of uitschakelen.
Ter ondersteuning van deze aanroepen retourneert de @listCallbackUrl()
expressie een unieke callback-URL voor de trigger of actie. Deze URL vertegenwoordigt een unieke id voor de eindpunten die gebruikmaken van de REST API van de service. De parameters voor deze functie zijn hetzelfde als de webhooktrigger of -actie.
Asynchrone duur wijzigen
Voor zowel triggers als acties kunt u de duur voor het asynchrone patroon beperken tot een specifiek tijdsinterval door de limit.timeout
eigenschap toe te voegen. Als de actie niet is voltooid wanneer het interval is verstreken, wordt de status van de actie gemarkeerd als Cancelled
met de ActionTimedOut
code. De timeout
eigenschap maakt gebruik van de ISO 8601-indeling.
"<trigger-or-action-name>": {
"type": "Workflow | Webhook | Http | ApiConnectionWebhook | ApiConnection",
"inputs": {},
"limit": {
"timeout": "PT10S"
},
"runAfter": {}
}
Runtime-configuratie-instellingen
U kunt het standaardruntimegedrag voor triggers en acties wijzigen door deze runtimeConfiguration
eigenschappen toe te voegen aan de trigger- of actiedefinitie.
Eigenschap | Type | Description | Trigger of actie |
---|---|---|---|
runtimeConfiguration.concurrency.runs |
Geheel getal | Wijzig de standaardlimiet voor het aantal werkstroomexemplaren dat tegelijkertijd kan worden uitgevoerd (gelijktijdig of parallel). Door deze waarde aan te passen, kunt u het aantal aanvragen beperken dat back-endsystemen ontvangen. Het instellen van de runs eigenschap werkt 1 op dezelfde manier als het instellen van de operationOptions eigenschap op SingleInstance . U kunt beide eigenschappen instellen, maar niet beide. Zie Gelijktijdigheid van triggers of triggerexemplaren opeenvolgend wijzigen om de standaardlimiet te wijzigen. |
Alle triggers |
runtimeConfiguration.concurrency.maximumWaitingRuns |
Geheel getal | Wijzig de standaardlimiet voor het aantal werkstroomexemplaren dat moet wachten om te worden uitgevoerd wanneer de logische app al het maximum aantal gelijktijdige exemplaren uitvoert. Zie Wachtuitvoeringslimiet wijzigen als u de standaardlimiet wilt wijzigen. |
Alle triggers |
runtimeConfiguration.concurrency.repetitions |
Geheel getal | Wijzig de standaardlimiet voor het aantal herhalingen van 'voor elke' lus die tegelijkertijd (gelijktijdig of parallel) kunnen worden uitgevoerd. Het instellen van de repetitions eigenschap werkt 1 op dezelfde manier als het instellen van de operationOptions eigenschap op SingleInstance . U kunt beide eigenschappen instellen, maar niet beide. Als u de standaardlimiet wilt wijzigen, raadpleegt u 'voor elke' gelijktijdigheid of voer 'voor elke' lussen opeenvolgend uit. |
Actie: Foreach |
runtimeConfiguration.paginationPolicy.minimumItemCount |
Geheel getal | Voor specifieke acties die paginering ondersteunen en laten inschakelen, geeft deze waarde het minimum aantal resultaten op dat moet worden opgehaald. Zie Bulkgegevens, items of resultaten ophalen met behulp van paginering om paginering in te schakelen |
Actie: gevarieerd |
runtimeConfiguration.secureData.properties |
Matrix | Bij veel triggers en acties verbergen deze instellingen invoer, uitvoer of beide uit de uitvoeringsgeschiedenis van de logische app. Zie Invoer en uitvoer uit de uitvoeringsgeschiedenis verbergen voor meer informatie over het beveiligen van deze gegevens. |
De meeste triggers en acties |
runtimeConfiguration.staticResult |
JSON-object | Voor acties die de statische resultaatinstelling ondersteunen en inschakelen, heeft het staticResult object de volgende kenmerken: - name , die verwijst naar de naam van de statische resultaatdefinitie van de huidige actie, die wordt weergegeven in het kenmerk van de staticResults werkstroom van uw logische definition app. Zie statische resultaten - Schemaverwijzing voor werkstroomdefinitietaal voor meer informatie. - staticResultOptions , waarmee wordt aangegeven of statische resultaten wel of niet voor de huidige actie zijn Enabled . Als u statische resultaten wilt inschakelen, raadpleegt u Logische apps testen met gesimuleerde gegevens door statische resultaten in te stellen |
Actie: gevarieerd |
Bewerkingsopties
U kunt het standaardgedrag voor triggers en acties wijzigen met de operationOptions
eigenschap in de trigger- of actiedefinitie.
Bewerkingsoptie | Type | Description | Trigger of actie |
---|---|---|---|
DisableAsyncPattern |
String | Voer op HTTP gebaseerde acties synchroon uit in plaats van asynchroon. Zie Acties synchroon uitvoeren om deze optie in te stellen. |
Acties: Api Verbinding maken ion, HTTP, Respons |
IncludeAuthorizationHeadersInOutputs |
String | Voor logische apps waarmee OAuth met Microsoft Entra ID toegang kan verlenen voor binnenkomende aanroepen naar een triggereindpunt op basis van aanvragen, neemt u de Authorization header van het OAuth-toegangstoken op in de uitvoer van de trigger. Zie De header Autorisatie opnemen in uitvoer van aanvraagtriggers voor meer informatie. |
Triggers: Aanvraag, HTTP-webhook |
Sequential |
String | Voer herhalingen voor elke lus één voor één uit, in plaats van allemaal tegelijk tegelijk. Deze optie werkt op dezelfde manier als het instellen van de runtimeConfiguration.concurrency.repetitions eigenschap op 1 . U kunt beide eigenschappen instellen, maar niet beide. Als u deze optie wilt instellen, raadpleegt u 'voor elke' lussen sequentieel uitvoeren. |
Actie: Foreach |
SingleInstance |
String | Voer de trigger voor elk exemplaar van de logische app opeenvolgend uit en wacht tot de eerder actieve uitvoering is voltooid voordat het volgende exemplaar van de logische app wordt geactiveerd. Deze optie werkt op dezelfde manier als het instellen van de runtimeConfiguration.concurrency.runs eigenschap op 1 . U kunt beide eigenschappen instellen, maar niet beide. Zie Trigger-exemplaren sequentieel om deze optie in te stellen. |
Alle triggers |
SuppressWorkflowHeaders |
String | Verzend geen x-ms-* metagegevensheaders in uitgaande aanvragen. Standaard bevat Azure Logic Apps extra metagegevensheaders met het x-ms- voorvoegsel in de headernaam als onderdeel van uitgaande aanvragen. Sommige verouderde services accepteren echter geen aanvragen met extra onbekende headers, wat resulteert in mislukte aanvragen. |
Acties: HTTP, Functie, APIManagement |
SuppressWorkflowHeadersOnResponse |
String | Verzend geen x-ms-* metagegevensheaders in antwoorden op binnenkomende triggeraanvragen. Standaard verzendt Azure Logic Apps antwoorden naar binnenkomende aanvragen met extra metagegevensheaders met het x-ms- voorvoegsel in de headernaam. Sommige verouderde services accepteren echter geen aanvragen of antwoorden met extra onbekende headers, wat resulteert in mislukte aanvragen. |
Triggers: Aanvraag, HTTP-webhook |
Gelijktijdigheid van triggers wijzigen
Werkstroomexemplaren van logische apps worden standaard allemaal tegelijk uitgevoerd (gelijktijdig of parallel). Dit gedrag betekent dat elke triggerinstantie wordt geactiveerd voordat het eerder actieve werkstroomexemplaren zijn uitgevoerd. Het aantal gelijktijdig actieve exemplaren heeft echter een standaardlimiet. Wanneer het aantal gelijktijdig actieve werkstroomexemplaren deze limiet bereikt, moeten andere nieuwe exemplaren wachten totdat deze wordt uitgevoerd. Deze limiet helpt bij het beheren van het aantal aanvragen dat back-endsystemen ontvangen.
Wanneer u het gelijktijdigheidsbeheer van de trigger inschakelt, worden triggerexemplaren parallel uitgevoerd tot aan de standaardlimiet. Als u deze standaardlimiet voor gelijktijdigheid wilt wijzigen, kunt u de codeweergave-editor of de werkstroomontwerper gebruiken, omdat het wijzigen van de gelijktijdigheidsinstelling via de ontwerpfunctie de runtimeConfiguration.concurrency.runs
eigenschap toevoegt of bijwerkt in de onderliggende triggerdefinitie en omgekeerd. Met deze eigenschap bepaalt u het maximum aantal nieuwe werkstroomexemplaren dat parallel kan worden uitgevoerd.
Bekijk de volgende overwegingen voordat u gelijktijdigheid inschakelt voor een trigger:
U kunt gelijktijdigheid niet uitschakelen nadat u het gelijktijdigheidsbeheer hebt ingeschakeld.
Als het maximum aantal gelijktijdige triggeruitvoeringen de maximale mate van parallelle uitvoering bereikt, kunnen volgende triggeruitvoeringen leiden tot beperking of fouten met '429 - Te veel aanvragen'. Als u een beleid voor opnieuw proberen instelt dat 429-fouten afhandelt, kan de trigger een cyclus van opnieuw proberen en beperkingsgedrag ervaren dat lange vertragingen veroorzaakt bij het verwerken van nieuwe triggeraanvragen.
Wanneer gelijktijdigheid is ingeschakeld, wordt de SplitOn-limiet aanzienlijk verminderd voor het debatching van matrices. Als het aantal items deze limiet overschrijdt, wordt de functie SplitOn uitgeschakeld.
Wanneer gelijktijdigheid is ingeschakeld, kan een langlopend exemplaar van een logische app ervoor zorgen dat nieuwe exemplaren van logische apps een wachtstatus invoeren. Deze status voorkomt dat Azure Logic Apps nieuwe exemplaren maakt en zelfs gebeurt wanneer het aantal gelijktijdige uitvoeringen kleiner is dan het opgegeven maximum aantal gelijktijdige uitvoeringen.
Als u deze status wilt onderbreken, annuleert u de vroegste exemplaren die nog steeds worden uitgevoerd.
Selecteer Overzicht in het menu van uw logische app.
Selecteer in de sectie Uitvoeringsgeschiedenis het vroegste exemplaar dat nog steeds wordt uitgevoerd, bijvoorbeeld:
Tip
Als u alleen exemplaren wilt weergeven die nog actief zijn, opent u de lijst Alle en selecteert u Uitvoeren.
Selecteer onder Uitvoering van logische app de optie Uitvoering annuleren.
Als u deze mogelijkheid wilt omzeilen, voegt u een time-out toe aan een actie die deze uitvoeringen kan bevatten. Als u in de code-editor werkt, raadpleegt u Asynchrone duur wijzigen. Als u de ontwerpfunctie gebruikt, voert u anders de volgende stappen uit:
Selecteer in de werkstroom van uw logische app de actie waaraan u een time-out wilt toevoegen. Selecteer in de rechterbovenhoek van de actie de knop met weglatingstekens (...) en selecteer vervolgens Instellingen.
Geef onder Time-out de time-outduur op in ISO 8601-indeling.
Als u uw logische app opeenvolgend wilt uitvoeren, stelt u de gelijktijdigheid
1
van de trigger in op ofwel met behulp van de codeweergave-editor of de ontwerper. Zorg ervoor dat u de eigenschapSingleInstance
vanoperationOptions
de trigger niet ook instelt in de codeweergave-editor. Anders krijgt u een validatiefout. Zie Trigger-exemplaren opeenvolgend voor meer informatie.
Bewerken in de codeweergave
Voeg in de onderliggende triggerdefinitie de runtimeConfiguration.concurrency.runs
eigenschap toe en stel de waarde in op basis van de gelijktijdigheidslimieten van de trigger. Als u uw werkstroom opeenvolgend wilt uitvoeren, stelt u de eigenschapswaarde in op 1
.
In dit voorbeeld worden gelijktijdige uitvoeringen beperkt tot 10 exemplaren:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"runs": 10
}
}
}
Zie Runtime-configuratie-instellingen voor meer informatie.
Bewerken in de werkstroomontwerper
Selecteer in de rechterbovenhoek van de trigger de knop met weglatingstekens (...) en selecteer vervolgens Instellingen.
Stel Onder Gelijktijdigheidsbeheer limiet in op Aan.
Sleep de schuifregelaar Degree of Parallelism naar de gewenste waarde. Als u de logische app sequentieel wilt uitvoeren, sleept u de schuifregelaarwaarde naar 1.
Gelijktijdigheid 'voor elke' wijzigen
Standaard worden herhalingen voor elke lus op hetzelfde moment uitgevoerd (gelijktijdig of parallel). Dit gedrag betekent dat elke iteratie wordt uitgevoerd voordat de vorige iteratie is uitgevoerd. Het aantal gelijktijdig uitgevoerde iteraties heeft echter een standaardlimiet. Wanneer het aantal gelijktijdig uitgevoerde iteraties deze limiet bereikt, moeten alle andere iteraties wachten om te worden uitgevoerd.
Als u de standaardlimiet wilt wijzigen, kunt u de codeweergave-editor of de werkstroomontwerper gebruiken, omdat u de gelijktijdigheidsinstelling via de ontwerpfunctie wijzigt of de runtimeConfiguration.concurrency.repetitions
eigenschap bijwerkt in de onderliggende actiedefinitie voor elke actie en omgekeerd. Deze eigenschap bepaalt het maximum aantal iteraties dat parallel kan worden uitgevoerd.
Notitie
Als u de actie 'voor elke actie' instelt om opeenvolgend uit te voeren met behulp van de ontwerpfunctie of de codeweergave-editor, stelt u de eigenschap Sequential
van operationOptions
de actie niet in in de codeweergave-editor. Anders krijgt u een validatiefout. Zie Sequentieel uitvoeren voor elke lus voor meer informatie.
Bewerken in de codeweergave
Voeg in de onderliggende definitie voor elke definitie de eigenschap toe of werk deze runtimeConfiguration.concurrency.repetitions
bij, die een waarde kan hebben die varieert van 1
en 50
.
Hier volgt een voorbeeld waarmee gelijktijdige uitvoeringen worden beperkt tot 10 iteraties:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": 10
}
}
}
Zie Runtime-configuratie-instellingen voor meer informatie.
Bewerken in de werkstroomontwerper
Selecteer in de rechterbovenhoek van de actie Voor elke actie het beletselteken (...) en selecteer vervolgens Instellingen.
Stel onder Gelijktijdigheidsbeheer het besturingselement Gelijktijdigheid in op Aan.
Sleep de schuifregelaar Degree of Parallelism naar de gewenste waarde. Als u de logische app sequentieel wilt uitvoeren, sleept u de schuifregelaarwaarde naar 1.
Limiet voor wachtende uitvoeringen wijzigen
Werkstroomexemplaren van logische apps worden standaard allemaal tegelijk uitgevoerd (gelijktijdig of parallel). Dit gedrag betekent dat elke triggerinstantie wordt geactiveerd voordat het eerder actieve werkstroomexemplaren zijn uitgevoerd. Er bestaat echter een standaardlimiet voor het aantal gelijktijdig uitgevoerde werkstroomexemplaren. Wanneer het aantal gelijktijdige uitvoeringen deze limiet bereikt, moeten andere nieuwe werkstroomexemplaren wachten totdat deze wordt uitgevoerd. Er bestaat ook een standaardlimiet voor het aantal wachtende werkstroomexemplaren. Wanneer het aantal wachtende exemplaren deze limiet bereikt, accepteert Azure Logic Apps geen nieuwe werkstroomexemplaren meer om uit te voeren. Aanvraag- en webhooktriggers retourneren 429 - Te veel aanvragenfouten en terugkerende triggers beginnen met het overslaan van pollingpogingen.
U kunt de standaardlimiet voor gelijktijdigheid van triggers en de standaardlimiet voor wachtende uitvoeringen wijzigen. Deze wijziging vertraagt echter voornamelijk de trigger om de druk te verlichten als gevolg van gelijktijdigheid. Als u bijvoorbeeld een poll-trigger hebt en de wachtrij voor wachtende uitvoeringen vol is vanwege uitvoeringen die worden uitgevoerd, stopt Azure Logic Apps met polling. Als uw werkstroom gebruikmaakt van een trigger op basis van aanvragen en de wachtrij voor wachtende uitvoeringen vol is, retourneert Azure Logic Apps de fout 429. Sommige scenario's bestaan waarbij Azure Logic Apps de trigger niet kan stoppen met pollen zonder fouten te introduceren en ervoor kiest om dergelijke uitvoeringen toch toe te voegen aan de wachtrij voor wachtende uitvoeringen zonder dat de aanroepen mislukken.
Voeg in de onderliggende triggerdefinitie de runtimeConfiguration.concurrency.maximumWaitingRuns
eigenschap toe, die een waarde kan hebben die varieert van 1
tot 100
.
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"maximumWaitingRuns": 50
}
}
}
Zie Runtime-configuratie-instellingen voor meer informatie.
Triggerexemplaren sequentieel
Als u elk werkstroomexemplaren van een logische app alleen wilt uitvoeren nadat het vorige exemplaar is uitgevoerd, stelt u de trigger in om sequentieel uit te voeren. U kunt de codeweergave-editor of de werkstroomontwerper gebruiken, omdat u de gelijktijdigheidsinstelling via de ontwerpfunctie ook toevoegt of bijwerkt runtimeConfiguration.concurrency.runs
in de onderliggende triggerdefinitie en omgekeerd.
Notitie
Wanneer u een trigger instelt om sequentieel uit te voeren met behulp van de ontwerpfunctie of de codeweergave-editor, moet u de eigenschap Sequential
van operationOptions
de trigger niet instellen in de codeweergave-editor.
Anders krijgt u een validatiefout.
Bewerken in de codeweergave
Stel in de triggerdefinitie een van deze eigenschappen in, maar niet beide.
Stel de runtimeConfiguration.concurrency.runs
eigenschap in op 1
:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"runtimeConfiguration": {
"concurrency": {
"runs": 1
}
}
}
-Of-
Stel de operationOptions
eigenschap in op SingleInstance
:
"<trigger-name>": {
"type": "<trigger-name>",
"recurrence": {
"frequency": "<time-unit>",
"interval": <number-of-time-units>,
},
"operationOptions": "SingleInstance"
}
Zie Runtime-configuratie-instellingen en bewerkingsopties voor meer informatie.
Bewerken in de werkstroomontwerper
Selecteer in de rechterbovenhoek van de trigger de knop met weglatingstekens (...) en selecteer vervolgens Instellingen.
Stel Onder Gelijktijdigheidsbeheer limiet in op Aan.
Sleep de schuifregelaar Degree of Parallelism naar het getal
1
.
Voer sequentieel 'voor elke' lussen uit
Als u een lusiteratie 'voor elke' alleen wilt uitvoeren nadat de vorige iteratie is uitgevoerd, stelt u de actie 'voor elke' in om sequentieel uit te voeren. U kunt de codeweergave-editor of de werkstroomontwerper gebruiken, omdat u de gelijktijdigheid van de actie wijzigt via ontwerper ook de runtimeConfiguration.concurrency.repetitions
eigenschap toevoegt of bijwerkt in de onderliggende actiedefinitie en omgekeerd.
Notitie
Wanneer u een actie 'voor elke actie' instelt om opeenvolgend uit te voeren met behulp van de editor voor ontwerpfunctie of codeweergave, moet u de eigenschap Sequential
van operationOptions
de actie niet instellen in de codeweergave-editor.
Anders krijgt u een validatiefout.
Bewerken in de codeweergave
Stel in de actiedefinitie een van deze eigenschappen in, maar niet beide.
Stel de runtimeConfiguration.concurrency.repetitions
eigenschap in op 1
:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"runtimeConfiguration": {
"concurrency": {
"repetitions": 1
}
}
}
-Of-
Stel de operationOptions
eigenschap in op Sequential
:
"For_each" {
"type": "Foreach",
"actions": { "<actions-to-run>" },
"foreach": "<for-each-expression>",
"runAfter": {},
"operationOptions": "Sequential"
}
Zie Runtime-configuratie-instellingen en bewerkingsopties voor meer informatie.
Bewerken in de werkstroomontwerper
Selecteer in de rechterbovenhoek van elke actie het beletselteken (...) en selecteer vervolgens Instellingen.
Stel onder Gelijktijdigheidsbeheer het besturingselement Gelijktijdigheid in op Aan.
Sleep de schuifregelaar Degree of Parallelism naar het getal
1
.
Acties uitvoeren in een synchrone bewerkingspatroon
De HTTP-actie en API Verbinding maken ionacties in Azure Logic Apps volgen standaard het standaard asynchrone bewerkingspatroon, terwijl de actie Antwoord het synchrone bewerkingspatroon volgt. Het asynchrone patroon geeft aan dat na een actie een aanvraag wordt aangeroepen of verzonden naar het opgegeven eindpunt, de service, het systeem of de API, de ontvanger onmiddellijk een antwoord '202 GEACCEPTEERD' retourneert. Deze code bevestigt dat de ontvanger de aanvraag heeft geaccepteerd, maar nog niet is verwerkt. Het antwoord kan een location
header bevatten die de URL en een vernieuwings-id aangeeft die de beller kan gebruiken om voortdurend de status van de asynchrone aanvraag te controleren totdat de ontvanger stopt met verwerken en een geslaagd antwoord van 200 OK of een ander niet-202-antwoord retourneert. Zie Asynchrone microservice-integratie dwingt microserviceautonomie af voor meer informatie.
In logic app Designer hebben de HTTP-actie, API Verbinding maken ionacties en antwoordactie de instelling Asynchroon patroon. Wanneer deze instelling is ingeschakeld, geeft deze instelling aan dat de beller niet wacht tot de verwerking is voltooid en verder kan gaan met de volgende actie, maar de status blijft controleren totdat de verwerking stopt. Als deze instelling is uitgeschakeld, geeft deze instelling aan dat de beller wacht tot de verwerking is voltooid voordat de volgende actie wordt uitgevoerd. Volg deze stappen om deze instelling te vinden:
Selecteer op de titelbalk van de HTTP-actie de knop met weglatingstekens (...), waarmee de instellingen van de actie worden geopend.
Zoek de instelling Asynchroon patroon .
In de onderliggende JSON-definitie (JavaScript Object Notation) van de actie volgen de HTTP-actie en API Verbinding maken ionacties impliciet het asynchrone bewerkingspatroon.
In sommige scenario's wilt u mogelijk dat een actie het synchrone patroon volgt. Wanneer u bijvoorbeeld de HTTP-actie gebruikt, kunt u het volgende doen:
In deze gevallen kunt u een actie synchroon uitvoeren met behulp van deze opties:
Vervang de polling-versie van die actie door een webhookversie, indien beschikbaar.
Schakel het asynchrone gedrag van de actie uit door een van de volgende opties te volgen:
Schakel in logic app Designer de instelling Asynchroon patroon uit.
Voeg in de onderliggende JSON-definitie van de actie de
"DisableAsyncPattern"
bewerkingsoptie toe.
Asynchrone patrooninstelling uitschakelen
Selecteer in de ontwerpfunctie voor logische apps op de titelbalk van de actie de knop met weglatingstekens (...), waarmee de instellingen van de actie worden geopend.
Zoek de instelling Asynchroon patroon , schakel de instelling uit als deze is ingeschakeld en selecteer Gereed.
Asynchroon patroon uitschakelen in de JSON-definitie van de actie
Voeg in de onderliggende JSON-definitie van de actie de eigenschap "DisableAsyncPattern"
operationOptions toe en stel deze in op onder de sectie van "inputs"
de actie, bijvoorbeeld:
"<some-long-running-action>": {
"type": "Http",
"inputs": { "<action-inputs>" },
"operationOptions": "DisableAsyncPattern",
"runAfter": {}
}
Triggers en acties verifiëren
HTTP- en HTTPS-eindpunten ondersteunen verschillende soorten verificatie. Op basis van de trigger of actie die u gebruikt om uitgaande aanroepen of aanvragen voor toegang tot deze eindpunten te maken, kunt u kiezen uit verschillende typen verificatie. Zie Verificatie toevoegen aan uitgaande oproepen voor meer informatie.
Volgende stappen
- Meer informatie over werkstroomdefinitietaal