Node Function Compute memungkinkan Anda menjalankan fungsi event kustom sesuai jadwal periodik dan mengintegrasikannya ke dalam alur kerja pemrosesan data DataWorks. Topik ini menjelaskan cara mengonfigurasi, menerapkan, dan memantau node Function Compute.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Menambahkan Pengguna RAM ke ruang kerja Anda dengan peran Develop atau Workspace Administrator. Peran Workspace Administrator memiliki izin yang lebih luas daripada yang diperlukan. Berhati-hatilah saat memberikan peran ini. Untuk informasi selengkapnya, lihat Tambahkan anggota ruang kerja dan berikan peran kepada mereka.
-
Mengaitkan kelompok sumber daya arsitektur tanpa server dengan ruang kerja Anda. Untuk informasi selengkapnya, lihat Gunakan kelompok sumber daya arsitektur tanpa server.
-
Membuat node Function Compute di IDE DataWorks. Untuk informasi selengkapnya, lihat Buat node tugas.
Wilayah yang didukung
Node Function Compute hanya tersedia di ruang kerja yang dibuat di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Shenzhen), Tiongkok (Hong Kong), Singapura, Inggris (London), AS (Silicon Valley), AS (Virginia), Jerman (Frankfurt), Australia (Sydney), dan India (Mumbai).
Batasan
DataWorks hanya memanggil fungsi event. Jika Anda ingin menjadwalkan fungsi secara periodik, buatlah fungsi event — bukan fungsi HTTP. Untuk informasi selengkapnya, lihat Pemilihan jenis fungsi.
Izin Pengguna RAM
Jika Anda mengembangkan node Function Compute sebagai Pengguna RAM, sambungkan kebijakan berikut ke Pengguna RAM tersebut.
| Jenis Kebijakan | Kebijakan yang harus disambungkan |
|---|---|
| Kebijakan sistem | AliyunFCFullAccess, AliyunFCReadOnlyAccess, dan AliyunFCInvocationAccess. Lihat Kebijakan sistem. |
| Kebijakan kustom (Function Compute 3.0) | fc:GetAsyncTask, fc:StopAsyncTask, fc:GetService, fc:ListServices, fc:GetFunction, fc:InvokeFunction, fc:ListFunctions, fc:GetFunctionAsyncInvokeConfig, fc:ListServiceVersions, fc:ListAliases, fc:GetAlias, fc:ListFunctionAsyncInvokeConfigs, fc:GetStatefulAsyncInvocation, fc:StopStatefulAsyncInvocation. Lihat Kebijakan kustom. |
| Kebijakan kustom (Function Compute 2.0) | Sama seperti Function Compute 3.0, kecuali fc:GetAsyncTask dan fc:StopAsyncTask tidak diperlukan. |
Untuk contoh kebijakan lainnya, lihat Kebijakan dan contoh kebijakan serta Contoh kebijakan.
Konfigurasi node Function Compute
Pada tab konfigurasi node Function Compute, atur parameter berikut.
| Parameter | Deskripsi |
|---|---|
| Select Version Or Alias | Versi layanan atau alias yang digunakan untuk pemanggilan fungsi. Jika Anda memilih Default Version, parameter Version akan ditampilkan dan nilainya tetap sebagai LATEST. Opsi: versi layanan yang telah dirilis (Snapshot dari layanan yang berisi pengaturan dan kode fungsi, tetapi tidak mencakup informasi pemicu; mendukung rollback) atau alias versi (mengarah ke versi tertentu dan mendukung rilis canary serta rollback). Untuk detailnya, lihat Manage versions dan Manage aliases. |
| Select Function | Fungsi event yang akan dipanggil. DataWorks hanya mendukung fungsi event — bukan fungsi HTTP. Jika tidak tersedia fungsi, buat terlebih dahulu. Lihat Manage functions dan Function type selection. |
| Invocation Method | Cara DataWorks memanggil fungsi tersebut. Opsi: Synchronous Invocation atau Asynchronous Invocation. Lihat Choose an invocation method di bawah ini. |
| Variable | Muatan JSON yang diteruskan ke fungsi sebagai input event-nya. Gunakan format ${} untuk mereferensi variabel penjadwalan DataWorks (misalnya, "triggerTime": "${bizdate}"). Ini sesuai dengan konten pada tab Create New Test Event di panel Configure Test Parameters dalam Konsol Function Compute. Untuk mengakses panel ini, buka halaman detail fungsi di Konsol Function Compute, lalu pilih Test Function > Configure Test Parameters pada tab Code. |
Pilih metode pemanggilan
| Synchronous Invocation | Asynchronous Invocation | |
|---|---|---|
| Cara kerja | DataWorks menunggu hingga fungsi selesai dan mengembalikan hasil eksekusi. | DataWorks langsung mengembalikan respons setelah permintaan dipertahankan; fungsi berjalan di latar belakang. |
| Gunakan saat | Fungsi selesai dalam waktu satu jam. | Fungsi memakan waktu lama, intensif sumber daya, atau berjalan lebih dari satu jam. |
Contoh: fungsi yang dipicu pada waktu penjadwalan
Contoh berikut menggunakan fungsi bernama para_service_01_by_time_triggers. Fungsi ini membaca metadata penjadwalan dari muatan event dan mencatatnya.
Kode fungsi:
import json
import logging
logger = logging.getLogger()
def handler(event, context):
logger.info('event: %s', event)
# Parse the JSON event payload
evt = json.loads(event)
triggerName = evt["triggerName"]
triggerTime = evt["triggerTime"]
payload = evt["payload"]
logger.info('triggerName: %s', triggerName)
logger.info("triggerTime: %s", triggerTime)
logger.info("payload: %s", payload)
return 'Timer Payload: ' + payload
Konfigurasi variabel (diatur pada bidang Variable di tab konfigurasi node):
{
"payload": "payload1",
"triggerTime": "${bizdate}",
"triggerName": "triggerName1"
}
${bizdate} adalah variabel penjadwalan DataWorks yang berisi tanggal bisnis saat runtime. Untuk contoh kode fungsi lainnya, lihat Contoh kode.
Konfigurasi penjadwalan dan penerapan
-
Setelah mengonfigurasi node, atur properti penjadwalan untuk menentukan kapan DataWorks menjalankannya secara otomatis. Lihat Konfigurasi penjadwalan.
-
Terapkan node ke lingkungan produksi. Lihat Penerapan node atau alur kerja.
-
Setelah penerapan, buka Operation Center > Auto Triggered Nodes untuk melihat node yang telah diterapkan dan memantau eksekusinya. Lihat Memulai Operation Center.
Pemecahan masalah
Service list not visible: Jika daftar layanan yang telah dibuat tidak muncul saat Anda mengonfigurasi node, periksa dua kemungkinan penyebab berikut:
-
Akun Anda memiliki Pembayaran tertunda. Isi ulang akun Anda dan refresh halaman konfigurasi node.
-
Akun Anda tidak memiliki izin fc:ListServices. Hubungi Pemilik Akun Alibaba Cloud untuk memberikan izin fc:ListServices atau menyambungkan kebijakan AliyunFCFullAccess, lalu refresh halaman. Untuk informasi selengkapnya, lihat Kelola izin layanan DataWorks dan entitas di Konsol DataWorks menggunakan kebijakan RAM.