Webhookactiviteit in Azure Data Factory
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
Een webhookactiviteit kan de uitvoering van pijplijnen beheren via aangepaste code. Met de webhookactiviteit kan code een eindpunt aanroepen en deze doorgeven aan een callback-URL. De pijplijnuitvoering wacht op de aanroep van de callback voordat deze naar de volgende activiteit gaat.
Belangrijk
Met WebHook-activiteit kunt u nu de foutstatus en aangepaste berichten weer weergeven naar activiteit en pijplijn. Stel reportStatusOnCallBack in op true en neem statuscode en fout op in de nettolading van callback. Zie de sectie Aanvullende notities voor meer informatie.
Een webhookactiviteit maken met de gebruikersinterface
Als u een webhookactiviteit in een pijplijn wilt gebruiken, voert u de volgende stappen uit:
Zoek naar Webhook in het deelvenster Pijplijnactiviteiten en sleep een Webhook-activiteit naar het pijplijncanvas.
Selecteer de nieuwe webhookactiviteit op het canvas als deze nog niet is geselecteerd en het tabblad Instellingen om de details ervan te bewerken.
Geef een URL op voor de webhook, die een letterlijke URL-tekenreeks kan zijn of een combinatie van dynamische expressies, functies, systeemvariabelen of uitvoer van andere activiteiten. Geef andere gegevens op die bij de aanvraag moeten worden ingediend.
Gebruik de uitvoer van de activiteit als invoer voor andere activiteiten en verwijs naar de uitvoer waar dynamische inhoud wordt ondersteund in de doelactiviteit.
Syntaxis
{
"name": "MyWebHookActivity",
"type": "WebHook",
"typeProperties": {
"method": "POST",
"url": "<URLEndpoint>",
"headers": {
"Content-Type": "application/json"
},
"body": {
"key": "value"
},
"timeout": "00:10:00",
"reportStatusOnCallBack": false,
"authentication": {
"type": "ClientCertificate",
"pfx": "****",
"password": "****"
}
}
}
Typeeigenschappen
Eigenschappen | Beschrijving | Toegestane waarden | Vereist |
---|---|---|---|
name | De naam van de webhookactiviteit. | String | Ja |
type | Moet zijn ingesteld op 'WebHook'. | String | Ja |
methode | De REST API-methode voor het doeleindpunt. | Snaar. Het ondersteunde type is POST. | Ja |
URL | Het doeleindpunt en het pad. | Een tekenreeks of een expressie met de resultType-waarde van een tekenreeks. | Ja |
Headers | Headers die naar de aanvraag worden verzonden. Hier volgt een voorbeeld waarmee de taal en het type voor een aanvraag worden ingesteld: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" } . |
Een tekenreeks of een expressie met de resultType-waarde van een tekenreeks. | Ja. Een Content-Type header zoals "headers":{ "Content-Type":"application/json"} is vereist. |
hoofdtekst | Vertegenwoordigt de nettolading die naar het eindpunt wordt verzonden. | Geldige JSON of een expressie met de resultType-waarde van JSON. Zie Het schema voor nettolading aanvragen voor het schema van de nettolading van de aanvraag. | Ja |
authenticatie | De verificatiemethode die wordt gebruikt om het eindpunt aan te roepen. Ondersteunde typen zijn Basic en ClientCertificate. Zie Verificatie voor meer informatie. Als verificatie niet vereist is, sluit u deze eigenschap uit. | Een tekenreeks of een expressie met de resultType-waarde van een tekenreeks. | Nee |
Timeout | Hoe lang de activiteit wacht totdat de callback die is opgegeven door callBackUri moet worden aangeroepen. De standaardwaarde is 10 minuten ('00:10:00'). Waarden hebben de TimeSpan-indeling d.uu:mm:ss. | String | Nee |
De status van een callback rapporteren | Hiermee kan een gebruiker de mislukte status van een webhookactiviteit rapporteren. | Booleaans | Nee |
Verificatie
Een webhookactiviteit ondersteunt de volgende verificatietypen.
Geen
Als verificatie niet vereist is, moet u de verificatie-eigenschap niet opnemen.
Basis
Geef de gebruikersnaam en het wachtwoord op die moeten worden gebruikt met basisverificatie.
"authentication":{
"type":"Basic",
"username":"****",
"password":"****"
}
Clientcertificaat
Geef de met Base64 gecodeerde inhoud van een PFX-bestand en een wachtwoord op.
"authentication":{
"type":"ClientCertificate",
"pfx":"****",
"password":"****"
}
Beheerde identiteit
Gebruik de beheerde identiteit voor uw data factory of Synapse-werkruimte om de resource-URI op te geven waarvoor het toegangstoken wordt aangevraagd. Als u de Azure Resource Management-API wilt aanroepen, gebruikt u https://management.azure.com/
. Zie het overzicht van beheerde identiteiten voor Azure-resources voor meer informatie over hoe beheerde identiteiten werken.
"authentication": {
"type": "MSI",
"resource": "https://management.azure.com/"
}
Notitie
Als de service is geconfigureerd met een Git-opslagplaats, moet u uw referenties opslaan in Azure Key Vault om basis- of clientcertificaatverificatie te gebruiken. De service slaat geen wachtwoorden op in Git.
Aanvullende opmerkingen
De service geeft de extra callBackUri van de eigenschap door in de hoofdtekst die naar het URL-eindpunt wordt verzonden. De service verwacht dat deze URI vóór de opgegeven time-outwaarde wordt aangeroepen. Als de URI niet wordt aangeroepen, mislukt de activiteit met de status TimedOut.
De webhookactiviteit mislukt wanneer de aanroep naar het aangepaste eindpunt mislukt. Elk foutbericht kan worden toegevoegd aan de hoofdtekst van de callback en kan worden gebruikt in een latere activiteit.
Voor elke REST API-aanroep treedt er een time-out op voor de client als het eindpunt niet binnen één minuut reageert. Dit gedrag is de standaard best practice voor HTTP. Implementeer een 202-patroon om dit probleem op te lossen. In het huidige geval retourneert het eindpunt 202 (geaccepteerd) en de client polls.
De time-out van één minuut op de aanvraag heeft niets te maken met de time-out van de activiteit. De laatste wordt gebruikt om te wachten op de callback die is opgegeven door callbackUri.
De hoofdtekst die is doorgegeven aan de callback-URI, moet geldige JSON zijn. Stel de Content-Type
koptekst in op application/json
.
Wanneer u de rapportstatus voor de callback-eigenschap gebruikt, moet u de volgende code toevoegen aan de hoofdtekst wanneer u de callback uitvoert:
{
"Output": {
// output object is used in activity output
"testProp": "testPropValue"
},
"Error": {
// Optional, set it when you want to fail the activity
"ErrorCode": "testErrorCode",
"Message": "error message to show in activity error"
},
"StatusCode": "403" // when status code is >=400, activity is marked as failed
}
Gerelateerde inhoud
Bekijk de volgende ondersteunde controlestroomactiviteiten: