Udostępnij przez


Aktywność webhooka w usłudze Azure Data Factory

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Działanie elementu webhook może kontrolować wykonywanie potoków za pomocą kodu niestandardowego. Za pomocą działania elementu webhook kod może wywołać punkt końcowy i przekazać mu adres URL wywołania zwrotnego. Uruchomienie potoku czeka na wywołanie wywołania zwrotnego, zanim przejdzie do następnego działania.

Ważne

Działanie WebHook umożliwia teraz wyświetlanie stanu błędu i niestandardowych komunikatów z powrotem do działania i przepływu pracy. Ustaw reportStatusOnCallBack na true i dołącz StatusCode oraz Error w ładunku wywołania zwrotnego. Aby uzyskać więcej informacji, zobacz sekcję Dodatkowe uwagi .

Tworzenie działania elementu webhook za pomocą interfejsu użytkownika

Aby użyć działania webhook w pipeline, wykonaj następujące kroki:

  1. Wyszukaj element webhook w okienku Działania potoku i przeciągnij działanie elementu webhook do kanwy potoku.

  2. Wybierz nową akcję webhook na obszarze roboczym, jeśli nie została jeszcze wybrana, i przejdź do jego karty Ustawienia w celu edycji szczegółów.

    Pokazuje interfejs użytkownika dla działania elementu webhook.

  3. Określ adres URL dla webhooka, który może być dosłownym ciągiem URL lub dowolną kombinacją dynamicznych wyrażeń, funkcji, zmiennych systemowych lub wyników innych działań. Podaj inne szczegóły, które mają zostać przesłane z żądaniem.

  4. Użyj danych wyjściowych z działania jako danych wejściowych do dowolnego innego działania i odwołuj się do danych wyjściowych w dowolnym miejscu zawartości dynamicznej obsługiwanej w działaniu docelowym.

Składnia


{
    "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": "****"
        }
    }
}

Właściwości typu

Nieruchomość opis Dozwolone wartości Wymagania
name Nazwa działania elementu webhook. String Tak
typ Musi być ustawiona na wartość "WebHook". String Tak
metoda Metoda interfejsu API REST dla docelowego punktu końcowego. Struna. Obsługiwany typ to "POST". Tak
adres URL Docelowy punkt końcowy i ścieżka. Ciąg lub wyrażenie z wartością resultType ciągu. Tak
Nagłówki Nagłówki wysyłane do żądania. Oto przykład ustawiający język i typ żądania: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Ciąg lub wyrażenie z wartością resultType ciągu. Tak. Nagłówek Content-Type podobny "headers":{ "Content-Type":"application/json"} do tego jest wymagany.
treść Reprezentuje ładunek, który jest wysyłany do punktu końcowego. Prawidłowy kod JSON lub wyrażenie z wartością resultType w formacie JSON. Zobacz Schemat ładunku żądania dla schematu ładunku żądania. Tak
uwierzytelnianie Metoda uwierzytelniania używana do wywołania punktu końcowego. Obsługiwane typy to "Basic" i "ClientCertificate". Aby uzyskać więcej informacji, zobacz Authentication (Uwierzytelnianie). Jeśli uwierzytelnianie nie jest wymagane, wyklucz tę właściwość. Ciąg lub wyrażenie z wartością resultType ciągu. Nie.
Limit czasu Jak długo działanie czeka na wywołanie zwrotne określone przez callBackUri. Wartość domyślna to 10 minut ("00:10:00"). Wartości mają format TimeSpan d.hh:mm:ss. String Nie.
Raport o stanie oddzwonienia Umożliwia użytkownikowi zgłaszanie niepowodzenia aktywności webhook. Boolean Nie.

Uwierzytelnianie

Działanie webhooka obsługuje następujące typy uwierzytelniania.

Brak

Jeśli uwierzytelnianie nie jest wymagane, nie dołączaj właściwości uwierzytelniania .

Podstawowy

Określ nazwę użytkownika i hasło do użycia z uwierzytelnianiem podstawowym.

"authentication":{
   "type":"Basic",
   "username":"****",
   "password":"****"
}

Certyfikat klienta

Określ zakodowaną w formacie Base64 zawartość pliku PFX i hasło.

"authentication":{
   "type":"ClientCertificate",
   "pfx":"****",
   "password":"****"
}

Tożsamość zarządzana

Użyj tożsamości zarządzanej dla fabryki danych lub obszaru roboczego usługi Synapse, aby określić identyfikator URI zasobu, dla którego zażądano tokenu dostępu. Aby wywołać interfejs API usługi Azure Resource Management, użyj polecenia https://management.azure.com/. Aby uzyskać więcej informacji na temat sposobu działania tożsamości zarządzanych, zobacz Omówienie tożsamości zarządzanych dla zasobów platformy Azure.

"authentication": {
    "type": "MSI",
    "resource": "https://management.azure.com/"
}

Uwaga

Jeśli usługa jest skonfigurowana przy użyciu repozytorium Git, musisz przechowywać poświadczenia w usłudze Azure Key Vault, aby używać uwierzytelniania podstawowego lub certyfikatu klienta. Usługa nie przechowuje haseł w usłudze Git.

Dodatkowe uwagi

Usługa przekazuje dodatkową właściwość callBackUri w treści wysłanej do punktu końcowego URL. Usługa oczekuje wywołania tego identyfikatora URI przed określoną wartością limitu czasu. Jeśli identyfikator URI nie jest wywoływany, działanie kończy się niepowodzeniem ze stanem "TimedOut".

Działanie webhooka kończy się niepowodzeniem, gdy wywołanie niestandardowego punktu końcowego nie powiedzie się. Każdy komunikat o błędzie można dodać do treści wywołania zwrotnego i użyć go w późniejszym działaniu.

Przy każdym wywołaniu interfejsu API REST klient przekroczy limit czasu, jeśli punkt końcowy nie odpowie w ciągu jednej minuty. To zachowanie jest standardową najlepszą praktyką protokołu HTTP. Aby rozwiązać ten problem, zaimplementuj wzorzec 202. W bieżącym przypadku punkt końcowy zwraca wartość 202 (Zaakceptowane) i sonduje klienta.

Limit czasu jednorazowego żądania nie ma nic wspólnego z limitem czasu działania. To drugie służy do oczekiwania na wywołanie zwrotne określone przez callbackUri.

Ciało przekazane z powrotem do URI wywołania zwrotnego musi być prawidłowym JSON-em. Ustaw Content-Type nagłówek na application/json.

Jeśli używasz właściwości Report status w wywołaniu zwrotnym, podczas wykonywania wywołania zwrotnego należy dodać następujący kod do treści:

{
    "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
}

Poniżej znajdują się obsługiwane operacje sterowania przepływem: