Aktivitas webhook di Azure Data Factory

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

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 Anda. Dengan aktivitas webhook, kode pelanggan dapat memanggil titik akhir dan meneruskan panggilan balik URL. 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 Pengaturan,untuk mengedit detailnya.

    Shows the UI for a Webhook activity.

  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. String. Jenis yang didukung adalah "POST". Ya
url Titik akhir dan jalur target. String atau ekspresi dengan nilai resultType dari string. Ya
header Headers yang dikirim ke 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 valid atau ekspresi dengan nilai resultType dari JSON. Lihat Skema payload permintaan untuk skema payload permintaan. Ya
autentikasi Metode autentikasi yang digunakan untuk memanggil titik akhir. 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 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 ada

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 pabrik data Anda dikonfigurasi dengan repositori Git, Anda harus menyimpan kredensial di Azure Key Vault untuk menggunakan autentikasi sertifikat dasar atau 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 jajak pendapat klien.

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

isi diteruskan kembali ke panggilan balik URI harus valid JSON. 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 :