Dela via


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:

  1. Sök efter Webhook i fönstret Pipelineaktiviteter och dra en Webhook-aktivitet till pipelinearbetsytan.

  2. Välj den nya webhook-aktiviteten på arbetsytan om den inte redan är markerad och fliken Inställningar för att redigera dess information.

    Visar användargränssnittet för en Webhook-aktivitet.

  3. 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.

  4. 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
}

Se följande kontrollflödesaktiviteter som stöds: