Webhook-aktivitet i Azure Data Factory
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
En webhook-aktivitet kan styra körningen av pipelines via anpassad kod. Med webhook-aktiviteten kan kod anropa en slutpunkt och skicka en motringnings-URL. Pipelinekörningen väntar på återanropet innan den fortsätter till nästa aktivitet.
Viktigt!
Med WebHook-aktiviteten kan du nu visa felstatus och anpassade meddelanden tillbaka till aktivitet och pipeline. Ange reportStatusOnCallBack till true och inkludera StatusCode och Fel i återanropsnyttolasten. Mer information finns i avsnittet Ytterligare anteckningar .
Skapa en Webhook-aktivitet med användargränssnittet
Utför följande steg för att använda en Webhook-aktivitet i en pipeline:
Sök efter Webhook i fönstret Pipelineaktiviteter och dra en Webhook-aktivitet till pipelinearbetsytan.
Välj den nya webhook-aktiviteten på arbetsytan om den inte redan är markerad och fliken Inställningar för att redigera dess information.
Ange en URL för webhooken, som kan vara en literal-URL-sträng, eller en kombination av dynamiska uttryck, funktioner, systemvariabler eller utdata från andra aktiviteter. Ange annan information som ska skickas med begäran.
Använd utdata från aktiviteten som indata till andra aktiviteter och referera till utdata var som helst där dynamiskt innehåll stöds i målaktiviteten.
Syntax
{
"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": "****"
}
}
}
Typegenskaper
Property | beskrivning | Tillåtna värden | Obligatoriskt |
---|---|---|---|
Namn | Namnet på webhooksaktiviteten. | String | Ja |
typ | Måste vara inställt på "WebHook". | String | Ja |
metod | REST API-metoden för målslutpunkten. | Sträng. Den typ som stöds är "POST". | Ja |
URL | Målslutpunkten och sökvägen. | En sträng eller ett uttryck med resultType-värdet för en sträng. | Ja |
Headers | Rubriker som skickas till begäran. Här är ett exempel som anger språket och skriver på en begäran: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" } . |
En sträng eller ett uttryck med resultType-värdet för en sträng. | Ja. Ett Content-Type sidhuvud som "headers":{ "Content-Type":"application/json"} krävs. |
brödtext | Representerar nyttolasten som skickas till slutpunkten. | Giltig JSON eller ett uttryck med resultType-värdet för JSON. Se Schema för begärandenyttolast för schemat för begärandenyttolasten. | Ja |
autentisering | Den autentiseringsmetod som används för att anropa slutpunkten. Typer som stöds är "Basic" och "ClientCertificate". Mer information finns i Autentisering. Om autentisering inte krävs undantar du den här egenskapen. | En sträng eller ett uttryck med resultType-värdet för en sträng. | Nej |
Timeout | Hur länge aktiviteten väntar på att återanropet som anges av callBackUri ska anropas. Standardvärdet är 10 minuter ("00:10:00"). Värdena har formatet TimeSpan d.hh:mm:ss. | String | Nej |
Rapportstatus vid återanrop | Låter en användare rapportera den misslyckade statusen för en webhook-aktivitet. | Booleskt | Nej |
Autentisering
En webhook-aktivitet stöder följande autentiseringstyper.
Ingen
Om autentisering inte krävs ska du inte ta med autentiseringsegenskapen.
Grundläggande
Ange det användarnamn och lösenord som ska användas med grundläggande autentisering.
"authentication":{
"type":"Basic",
"username":"****",
"password":"****"
}
Klientcertifikat
Ange det Base64-kodade innehållet i en PFX-fil och ett lösenord.
"authentication":{
"type":"ClientCertificate",
"pfx":"****",
"password":"****"
}
Hanterad identitet
Använd den hanterade identiteten för datafabriken eller Synapse-arbetsytan för att ange den resurs-URI som åtkomsttoken begärs för. Om du vill anropa Azure Resource Management-API:et använder du https://management.azure.com/
. Mer information om hur hanterade identiteter fungerar finns i översikten över hanterade identiteter för Azure-resurser.
"authentication": {
"type": "MSI",
"resource": "https://management.azure.com/"
}
Kommentar
Om tjänsten har konfigurerats med en Git-lagringsplats måste du lagra dina autentiseringsuppgifter i Azure Key Vault för att använda grundläggande autentisering eller klientcertifikatautentisering. Tjänsten lagrar inte lösenord i Git.
Ytterligare kommentarer
Tjänsten skickar den ytterligare egenskapen callBackUri i brödtexten som skickas till URL-slutpunkten. Tjänsten förväntar sig att den här URI:n anropas innan det angivna tidsgränsvärdet. Om URI:n inte anropas misslyckas aktiviteten med statusen "TimedOut".
Webhook-aktiviteten misslyckas när anropet till den anpassade slutpunkten misslyckas. Alla felmeddelanden kan läggas till i motringningstexten och användas i en senare aktivitet.
För varje REST API-anrop överskrider klienten tidsgränsen om slutpunkten inte svarar inom en minut. Det här beteendet är bästa praxis för HTTP. Åtgärda problemet genom att implementera ett 202-mönster. I det aktuella fallet returnerar slutpunkten 202 (accepterad) och klienten avsöker.
Tidsgränsen på en minut för begäran har inget att göra med tidsgränsen för aktiviteten. Det senare används för att vänta på återanropet som anges av callbackUri.
Brödtexten som skickas tillbaka till återanrops-URI:n måste vara giltig JSON. Content-Type
Ange rubriken till application/json
.
När du använder egenskapen Rapportstatus för återanrop måste du lägga till följande kod i brödtexten när du gör återanropet:
{
"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
}
Relaterat innehåll
Se följande kontrollflödesaktiviteter som stöds: