Delen via


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:

  1. Zoek naar Webhook in het deelvenster Pijplijnactiviteiten en sleep een Webhook-activiteit naar het pijplijncanvas.

  2. Selecteer de nieuwe webhookactiviteit op het canvas als deze nog niet is geselecteerd en het tabblad Instellingen om de details ervan te bewerken.

    Toont de gebruikersinterface voor een webhookactiviteit.

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

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

Bekijk de volgende ondersteunde controlestroomactiviteiten: