DataHub adalah layanan data streaming di Alibaba Cloud. Ketika data tiba di topik DataHub yang memiliki konektor Function Compute, DataHub mendorong catatan tersebut ke fungsi Anda sebagai sebuah event. Topik ini menjelaskan cara mengonfigurasi event uji, menulis kode fungsi, dan memverifikasi hasilnya.
Cara kerja
DataHub merupakan one-way trigger: pemicu dikonfigurasi di DataHub, bukan di Konsol Function Compute. Alurnya adalah sebagai berikut:
Buat konektor Function Compute di konsol DataHub untuk menghubungkan topik ke fungsi Anda.
Ketika DataHub menerima catatan, catatan tersebut dikemas menjadi event batch dan memanggil fungsi Anda.
Function Compute mengeksekusi fungsi dan mengembalikan hasilnya ke DataHub.
Karena pemicu berasal dari sisi DataHub, Anda hanya dapat mengonfigurasi pemicu di sumber event.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Layanan Function Compute. Lihat Buat layanan.
Fungsi Function Compute. Lihat Buat fungsi.
Konektor Function Compute yang telah dibuat di DataHub. Lihat Sinkronkan data ke Function Compute.
Konfigurasikan pemicu di DataHub
DataHub adalah pemicu satu arah. Konfigurasikan konektor di konsol DataHub: navigasikan ke proyek Anda, buka topik, lalu klik + Connector di pojok kanan atas untuk membuat konektor Function Compute.


Langkah 1: Konfigurasikan event uji
DataHub meneruskan catatan ke fungsi Anda melalui parameter event. Sebelum menulis kode produksi, konfigurasikan event uji di Konsol Function Compute untuk memvalidasi logika penanganan Anda.
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih Wilayah. Di halaman Services, klik layanan target.
Di halaman Functions, klik fungsi target.
Di tab Code, klik ikon
dan pilih Configure Test Parameters dari daftar drop-down.Di panel Configure Test Parameters, klik Create New Test Event atau Modify Existing Test Event, masukkan Event Name, lalu tempel JSON event tersebut. Klik OK.
Contoh berikut menunjukkan struktur event yang dikirim DataHub ke fungsi Anda. Untuk spesifikasi lengkap bidangnya, lihat bagian "Data structure of events" dalam Sinkronkan data ke Function Compute.
{
"eventSource": "acs:datahub",
"eventName": "acs:datahub:putRecord",
"eventSourceARN": "/projects/test_project_name/topics/test_topic_name",
"region": "cn-hangzhou",
"records": [
{
"eventId": "0:12345",
"systemTime": 1463000123000,
"data": "[\"col1's value\",\"col2's value\"]"
},
{
"eventId": "0:12346",
"systemTime": 1463000156000,
"data": "[\"col1's value\",\"col2's value\"]"
}
]
}Langkah 2: Tulis dan uji fungsi
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih Wilayah. Di halaman Services, klik layanan target.
Di halaman Functions, klik fungsi target.
Di tab Code, edit kode fungsi Anda di editor kode lalu klik Deploy.
Contoh Python 3.6 berikut membaca event mentah dan mencatatnya. Uraikan event sebagai JSON untuk mengakses catatan individual.
# -*- coding: utf-8 -*-
import logging
import json
# Untuk mengaktifkan fitur initializer,
# implementasikan fungsi inisialisasi seperti di bawah ini:
# def initializer(context):
# logger = logging.getLogger()
# logger.info('initializing')
def handler(event, context):
logger = logging.getLogger()
logger.info('hello world')
# Uraikan event untuk mengakses catatan
# evt = json.loads(event)
logger.info(event)
return 'hello world'Klik Test Function.
Setelah fungsi dijalankan, hasil eksekusi akan muncul di tab Code.
Langkah selanjutnya
Untuk memahami konfigurasi konektor lengkap dan skema event, lihat Sinkronkan data ke Function Compute.