Node Function Compute di DataWorks memungkinkan Anda menjalankan kode kustom untuk berbagai kebutuhan bisnis. Node ini mendukung penjadwalan berkala, sehingga ideal untuk tugas terjadwal, serta dapat dikombinasikan dengan jenis node lainnya untuk membangun alur kerja pemrosesan data yang lengkap. Topik ini menjelaskan cara membuat dan menggunakan node Function Compute.
Prasyarat
-
Function Compute telah diaktifkan.
Anda harus mengaktifkan Function Compute sebelum dapat menggunakan node Function Compute di DataWorks. Setelah mengaktifkan layanan tersebut, pelajari pengenalan produk dan fiturnya untuk memastikan proses pengembangan berjalan lancar. Untuk informasi selengkapnya, lihat Aktifkan Function Compute dan Apa itu Function Compute?.
-
Layanan untuk memanggil fungsi telah dibuat.
Layanan merupakan unit sumber daya dasar dalam Function Compute. Anda dapat melakukan operasi seperti otorisasi, konfigurasi log, dan pembuatan fungsi di tingkat layanan. Oleh karena itu, Anda harus membuat layanan sebelum mengembangkan fungsi. Untuk informasi selengkapnya, lihat Buat layanan.
-
Fungsi telah dibuat.
Fungsi adalah unit dasar untuk penjadwalan dan eksekusi, yang berisi logika pemrosesan kode Anda. Anda harus menulis kode sesuai antarmuka Function Compute dan menerapkannya sebagai fungsi. Untuk informasi selengkapnya tentang cara membuat fungsi, lihat Buat fungsi.
Latar Belakang
Function Compute adalah layanan komputasi yang sepenuhnya dikelola dan berbasis event. Anda tidak perlu membeli atau mengelola infrastruktur seperti server—cukup menulis dan mengunggah kode atau gambar. Function Compute mendukung dua jenis fungsi berikut:
-
Fungsi event: Cocok untuk model berbasis event di mana fungsi dipanggil saat suatu event terjadi.
-
Fungsi HTTP: Cocok untuk skenario seperti membangun aplikasi web secara cepat.
Anda dapat mengonfigurasi layanan dan fungsi dalam node Function Compute serta menerapkan node tersebut ke lingkungan produksi untuk eksekusi berkala.
Batasan
-
Batasan fitur
DataWorks hanya mendukung pemanggilan event functions, bukan HTTP functions. Oleh karena itu, Anda harus menggunakan event function untuk tugas yang ingin dijadwalkan secara berkala. Untuk informasi selengkapnya tentang jenis fungsi, lihat Jenis fungsi.
-
Batasan wilayah
Fitur Function Compute hanya tersedia di ruang kerja yang berada di wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Beijing), Tiongkok (Shenzhen), Tiongkok (Chengdu), Tiongkok (Hong Kong), Singapura, Malaysia (Kuala Lumpur), Indonesia (Jakarta), Jerman (Frankfurt), Inggris (London), AS (Silicon Valley), dan AS (Virginia).
Catatan Penggunaan
-
Jika daftar layanan kosong saat Anda mencoba memilih layanan, hal ini mungkin disebabkan oleh salah satu alasan berikut:
-
Akun Anda memiliki pembayaran tertunda. Isi ulang akun Anda dan muat ulang halaman konfigurasi node.
-
Pengguna yang sedang login tidak memiliki izin untuk mengambil daftar layanan. Hubungi pemilik Akun Alibaba Cloud Anda untuk memberikan izin fc:ListServices kepada Pengguna RAM Anda, atau menyambungkan kebijakan AliyunFCFullAccess. Setelah izin diberikan, muat ulang halaman konfigurasi node dan coba lagi. Untuk informasi selengkapnya tentang cara memberikan izin, lihat Berikan izin kepada Pengguna RAM.
-
-
Untuk fungsi dalam node Function Compute DataWorks, jika waktu proses melebihi satu jam, Anda harus mengatur metode pemanggilan ke pemanggilan asinkron. Untuk informasi selengkapnya tentang pemanggilan asinkron di Function Compute, lihat Pemanggilan asinkron.
-
Jika Anda menggunakan Pengguna RAM untuk mengembangkan node Function Compute, Anda harus memberikan izin kebijakan sistem atau kebijakan kustom berikut kepada pengguna tersebut.
Jenis Kebijakan
Deskripsi
Kebijakan sistem
Jika Anda menggunakan kebijakan sistem, berikan kebijakan
AliyunFCFullAccess,AliyunFCReadOnlyAccess, danAliyunFCInvocationAccesskepada pengguna.Kebijakan Kustom
Jika Anda menggunakan Function Compute kebijakan kustom, izin berikut umumnya diberikan:
-
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
CatatanUntuk informasi selengkapnya tentang kebijakan izin Function Compute, lihat dokumen berikut:
-
Langkah 1: Buka halaman pembuatan node
-
Login ke Konsol DataWorks. Di wilayah target, klik di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Development.
-
Buka halaman pembuatan node.
Di halaman DataStudio, Anda dapat membuat node Function Compute dengan salah satu dari tiga cara berikut. Metode 1: Di bilah menu atas, klik + New > Node > Function Compute. Metode 2: Di pohon proses bisnis di sebelah kiri, klik kanan proses bisnis target dan pilih New Node > Function Compute. Metode 3: Perluas proses bisnis target di sebelah kiri, klik General > New Node, lalu pilih Function Compute.
Langkah 2: Buat dan konfigurasikan node
-
Buat node Function Compute.
Di halaman pembuatan node, konfigurasikan informasi dasar untuk node baru, seperti path dan nama, lalu buat node tersebut.
-
Konfigurasikan parameter untuk node Function Compute.
Di halaman konfigurasi node, pilih fungsi yang akan dipanggil dan konfigurasikan metode pemanggilan serta variabelnya. Tabel berikut menjelaskan parameter-parameter tersebut.
Parameter
Deskripsi
Select Function
Pilih fungsi yang akan dipanggil untuk tugas ini. Jika tidak ada fungsi yang tersedia, Anda harus membuatnya terlebih dahulu. Untuk informasi selengkapnya, lihat Buat fungsi.
CatatanDataWorks hanya mendukung pemanggilan event functions, bukan HTTP functions. Oleh karena itu, Anda harus menggunakan event function untuk tugas yang ingin dijadwalkan secara berkala. Untuk informasi selengkapnya tentang jenis fungsi, lihat Jenis fungsi.
Dalam contoh ini, fungsi
para_service_01_by_time_triggersdipilih. Saat membuat fungsi ini, pilih kode contoh untuk timer-triggered function yang disediakan oleh platform. Logika kodenya adalah sebagai berikut.import json import logging logger = logging.getLogger() def handler(event, context): logger.info('event: %s', event) # Parse the json 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: ' + payloadUntuk contoh kode fungsi lainnya, lihat Kode contoh.
Select Version or Alias
Pilih versi layanan atau alias. Versi default adalah LATEST.
-
Versi layanan
Function Compute menyediakan fitur pengendalian versi di tingkat layanan yang memungkinkan Anda menerbitkan satu atau beberapa versi layanan Anda. Saat Anda menerbitkan versi, Function Compute membuat snapshot layanan, termasuk konfigurasinya, kode fungsi, dan konfigurasi fungsi. Pemicu tidak termasuk. Function Compute kemudian secara otomatis menetapkan nomor versi pada snapshot tersebut untuk digunakan di masa depan. Untuk informasi selengkapnya, lihat Terbitkan versi.
-
Alias versi
Function Compute memungkinkan Anda membuat alias untuk versi layanan. Alias mengarah ke versi tertentu, yang mempermudah operasi seperti penerbitan, rollback, dan rilis canary. Alias tidak dapat berdiri sendiri tanpa layanan atau versi. Saat Anda menggunakan alias untuk mengakses layanan atau fungsi, Function Compute menyelesaikan alias tersebut ke versi yang dituju. Pemanggil tidak perlu mengetahui versi spesifiknya. Untuk informasi selengkapnya, lihat Buat alias.
Invocation Method
Metode pemanggilan berikut didukung:
-
Synchronous invocation: Event langsung memicu fungsi. Function Compute menjalankan fungsi dan menunggu respons. Setelah fungsi dipanggil, Function Compute mengembalikan hasil eksekusi.
-
Asynchronous invocation: Function Compute mengantri permintaan event dan segera mengembalikan respons, tanpa menunggu permintaan selesai.
-
Jika fungsi memakan waktu lama, intensif sumber daya, atau berisi logika yang rentan error, Anda dapat menggunakan pemanggilan asinkron untuk meningkatkan kecepatan respons dan menangani lonjakan traffic secara andal.
-
Untuk tugas Function Compute yang berjalan lebih dari satu jam, gunakan pemanggilan asinkron.
-
Variable
Tetapkan nilai untuk variabel fungsi. Variabel ini sesuai dengan muatan event yang didefinisikan di bagian di Konsol Function Compute.
Contoh ini meneruskan parameter berikut ke variabel dalam fungsi
para_service_01_by_time_triggers. Dalam parameter tersebut, format${}digunakan untuk mendefinisikan variabel bernamabizdate. Anda harus memberikan nilai untuk variabel ini di Langkah 4.{ "payload": "payload1", "triggerTime": "${bizdate}", "triggerName": "triggerName1" } -
-
Opsional. Debug dan jalankan node Function Compute.
Setelah mengonfigurasi node, klik ikon
. Anda kemudian dapat menentukan kelompok sumber daya untuk tugas tersebut dan memberikan nilai konstan ke variabel kode untuk menjalankan pengujian debugging dan memverifikasi logika node. Saat menjalankan pengujian, gunakan format key=value. Gunakan koma (,) untuk memisahkan beberapa parameter.CatatanUntuk informasi selengkapnya tentang cara melakukan debugging tugas, lihat Debug tugas.
-
Konfigurasikan properti penjadwalan untuk node.
DataWorks menggunakan parameter penjadwalan untuk meneruskan nilai dinamis ke tugas terjadwal. Setelah mendefinisikan variabel seperti
${bizdate}dalam konfigurasi node, Anda harus memberikan nilainya di scheduling properties. Contoh ini menetapkan tanggal hari sebelumnya ke variabelbizdate. Artinya, DataWorks menjadwalkan node untuk berjalan satu hari sebelum waktu eksekusi yang dikonfigurasi. Untuk informasi selengkapnya tentang cara mengonfigurasi parameter penjadwalan, lihat Konfigurasi parameter penjadwalan. Klik tab scheduling properties di panel kanan. Di bagian scheduling parameters, tambahkan parameter secara manual. Tetapkan nama parameter kebizdatedan nilai ke$[yyyymmdd-1]. Di bagian Variable editor kode di sebelah kiri, referensikan parameter penjadwalan ini dengan menggunakan${bizdate}. Misalnya, tetapkan nilai bidangtriggerTimeke${bizdate}. Pilih LATEST untuk versi fungsi dan Synchronous untuk metode pemanggilan. Untuk informasi selengkapnya tentang properti penjadwalan node, lihat Konfigurasi properti dasar tugas.
Langkah 3: Commit dan deploy node
Untuk menjalankan node Function Compute sesuai jadwal otomatis, Anda harus terlebih dahulu melakukan commit dan menerapkannya ke lingkungan produksi.
-
Simpan dan commit node.
Klik ikon
dan
di bilah alat untuk menyimpan dan melakukan commit node. Di kotak dialog commit, masukkan deskripsi perubahan dan, jika diperlukan, pilih opsi untuk tinjauan kode dan pengujian asap.Catatan-
Anda harus mengonfigurasi properti Rerun attribute dan Parent Nodes di properti penjadwalan sebelum dapat melakukan commit node.
-
Jika tinjauan kode diaktifkan, kode node yang diajukan harus disetujui oleh reviewer sebelum node dapat diterapkan. Untuk informasi selengkapnya, lihat Tinjauan kode.
-
Untuk memastikan node terjadwal berjalan sesuai harapan, kami sarankan Anda melakukan pengujian asap pada tugas sebelum menerapkannya. Untuk informasi selengkapnya, lihat Pengujian asap.
-
-
Opsional. Deploy node.
Jika Anda menggunakan ruang kerja dalam mode standar, Anda harus mengklik Deploy di pojok kanan atas untuk menerapkan node setelah melakukan commit. Untuk informasi selengkapnya, lihat Ruang kerja dalam mode standar dan Deploy tugas.
Langkah Selanjutnya
-
Setelah tugas dilakukan commit dan diterapkan, tugas tersebut dijadwalkan oleh Pusat Operasi. Anda kemudian dapat mengelola dan memantau tugas tersebut di Pusat Operasi DataWorks. Untuk informasi selengkapnya, lihat Pusat Operasi.
-
Setelah menguasai langkah-langkah dasar untuk membuat dan menggunakan node Function Compute, Anda dapat menjelajahi praktik terbaik untuk memperoleh pemahaman yang lebih mendalam tentang node tersebut. Untuk informasi selengkapnya, lihat Tambahkan watermark secara dinamis ke PDF menggunakan node Function Compute di DataWorks.