Bagikan melalui


Aktivitas webhook di Azure Data Factory

BERLAKU UNTUK: Azure Data Factory Azure Synapse Analytics

Petunjuk

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Aktivitas webhook dapat mengontrol eksekusi alur melalui kode kustom. Dengan aktivitas webhook, kode dapat memanggil suatu endpoint dan meneruskannya URL callback. Alur berjalan menunggu pemanggilan panggilan balik sebelum melanjutkan ke aktivitas berikutnya.

Penting

Aktivitas WebHook sekarang memungkinkan Anda untuk menampilkan status kesalahan dan pesan kustom kembali ke aktivitas dan alur. Atur reportStatusOnCallBack ke true, dan sertakan StatusCode dan Kesalahan dalam payload panggilan balik. Untuk informasi selengkapnya, lihat bagian Catatan Tambahan.

Membuat aktivitas Webhook dengan UI

Untuk menggunakan aktivitas Webhook dalam alur, selesaikan langkah-langkah berikut:

  1. Cari Webhook di panel Aktivitas alur, dan seret aktivitas Webhook ke kanvas alur.

  2. Pilih aktivitas webhook baru di kanvas jika belum dipilih, dan tab Pengaturannya, untuk mengedit detailnya.

    Menampilkan UI untuk aktivitas Webhook.

  3. Tentukan URL untuk webhook, yang dapat berupa string URL literal, atau kombinasi ekspresi dinamis, fungsi, variabel sistem, atau output dari aktivitas lain. Berikan detail lain yang akan diajukan bersama permintaan.

  4. Gunakan output dari aktivitas sebagai input ke aktivitas lain, dan referensikan output di mana saja konten dinamis didukung dalam aktivitas tujuan.

Sintaks


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

Properti jenis

Properti Deskripsi Nilai yang diizinkan Wajib
nama Nama aktivitas webhook. String Ya
jenis Harus diatur ke "WebHook". String Ya
metode Metode REST API untuk titik akhir target. Tali. Jenis yang didukung adalah "POST". Ya
url Titik akhir dan jalur target. String atau ekspresi dengan nilai resultType dari string. Ya
header Tajuk yang dikirimkan pada permintaan. Berikut adalah contoh yang mengatur bahasa dan mengetik berdasarkan permintaan: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. String atau ekspresi dengan nilai resultType dari string. Ya. Content-TypeHeader seperti "headers":{ "Content-Type":"application/json"} diperlukan.
body Mewakili muatan yang dikirim ke titik akhir. JSON yang valid atau ekspresi dengan nilai resultType dari JSON. Lihat Skema payload permintaan untuk melihat strukturnya. Ya
autentikasi Metode autentikasi yang digunakan untuk mengakses endpoint. Jenis yang Didukung adalah "Basic" dan "ClientCertificate". Untuk informasi lebih lanjut, lihat Autentikasi. Jika autentikasi tidak diperlukan, kecualikan properti ini. String atau ekspresi dengan nilai resultType dari string. Tidak
Timeout Berapa lama aktivitas menunggu panggilan balik yang ditentukan oleh callBackUri untuk dapat dipanggil. Nilai defaultnya adalah 10 menit ("00:10:00"). Nilai memiliki format TimeSpan d..hh:mm:ss. String Tidak
Laporkan status pada panggilan balik Memungkinkan pengguna melaporkan status aktivitas webhook yang gagal. Boolean Tidak

Autentikasi

Aktivitas webhook mendukung jenis autentikasi berikut.

Tidak

Jika autentikasi tidak diperlukan, jangan sertakan properti autentikai.

Dasar

Tentukan nama pengguna dan kata sandi yang akan digunakan dengan autentikasi dasar.

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

Sertifikat klien

Tentukan konten yang dikodekan Base64 dari file PFX dan kata sandi.

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

Identitas terkelola

Gunakan identitas terkelola untuk pabrik data atau ruang kerja Synapse Anda untuk menentukan URI sumber daya yang token aksesnya akan diminta. Untuk memanggil Azure Resource Management API, gunakan https://management.azure.com/. Untuk informasi selengkapnya tentang identitas terkelola bekerja, lihat Identitas terkelola untuk gambaran umum sumber daya Azure.

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

Catatan

Jika layanan dikonfigurasi dengan repositori Git, Anda harus menyimpan kredensial di Azure Key Vault untuk menggunakan autentikasi dasar atau sertifikat klien. Layanan ini tidak menyimpan kata sandi di Git.

Catatan tambahan

Layanan melewati properti tambahan callBackUri dalam isi yang dikirim ke titik akhir URL. Layanan mengharapkan URI ini dipanggil sebelum nilai batas waktu yang ditentukan. Jika URI tidak dipanggil, aktivitas gagal dengan status "TimedOut".

Aktivitas webhook gagal ketika panggilan ke titik akhir kustom gagal. Setiap pesan kesalahan dapat ditambahkan ke isi panggilan balik dan digunakan dalam aktivitas selanjutnya.

Untuk setiap panggilan REST API, klien akan kehabisan waktu jika titik akhir tidak merespons dalam satu menit. Perilaku ini adalah praktik terbaik HTTP standar. Untuk memperbaiki masalah ini, terapkan pola 202. Dalam kasus saat ini, titik akhir mengembalikan 202 (Diterima) dan klien melakukan polling.

Batas waktu satu menit pada permintaan tidak ada hubungannya dengan batas waktu aktivitas. Yang terakhir digunakan untuk menunggu panggilan balik yang ditentukan oleh callbackUri.

Badan pesan yang diteruskan kembali ke URI callback harus berupa JSON yang valid. Atur header Content-Type ke application/json.

Saat Anda menggunakan properti Laporkan status pada panggilan balik, Anda harus menambahkan kode berikut ke isi saat Anda melakukan panggilan balik:

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

Lihat aktivitas alur kontrol yang didukung berikut :