DataWorks menyediakan node Function Compute yang memungkinkan Anda menjalankan kode kustom sesuai kebutuhan bisnis. Node ini mendukung penjadwalan berkala sehingga menyederhanakan eksekusi tugas terjadwal, serta dapat digabungkan dengan jenis node DataWorks lainnya untuk membangun alur 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 diaktifkan, pelajari fitur-fiturnya agar proses pengembangan berjalan lancar. Untuk informasi selengkapnya, lihat Aktifkan Function Compute dan Apa itu Function Compute?.
Layanan telah dibuat untuk memanggil fungsi tersebut.
Layanan merupakan unit sumber daya dasar dalam Function Compute. Pada tingkat layanan, Anda dapat memberikan izin, mengonfigurasi log, dan membuat fungsi. Anda harus membuat layanan terlebih dahulu sebelum mengembangkan fungsi. Untuk informasi selengkapnya tentang cara membuat layanan, lihat Buat layanan.
Fungsi telah dibuat.
Fungsi adalah unit dasar untuk penjadwalan dan eksekusi kode. Anda menulis kode berdasarkan antarmuka fungsi yang disediakan oleh Function Compute, lalu menerapkan kode tersebut sebagai fungsi. Untuk informasi selengkapnya tentang cara membuat fungsi, lihat Buat fungsi.
Informasi latar belakang
Function Compute adalah layanan komputasi yang sepenuhnya dikelola dan berbasis event-driven. Dengan Function Compute, Anda tidak perlu mengelola infrastruktur seperti server. Cukup tulis dan unggah kode atau gambar untuk mengelola layanan dan fungsi Anda. Function Compute mendukung dua jenis fungsi berikut:
Fungsi event: Digunakan dalam model event-driven di mana terjadinya suatu event akan memicu fungsi terkait.
Fungsi HTTP: Digunakan untuk skenario seperti membangun aplikasi web secara cepat.
Anda dapat mengonfigurasi layanan dan fungsi untuk dijalankan dalam node Function Compute, lalu menerbitkan node tersebut ke lingkungan produksi agar layanan dan fungsi tersebut dijalankan secara berkala.
Batasan
Batasan fitur
DataWorks hanya mendukung pemanggilan event functions. DataWorks tidak mendukung pemanggilan HTTP functions. Oleh karena itu, jika Anda ingin menjadwalkan fungsi secara berkala di DataWorks, Anda harus membuat event function yang menangani permintaan event. Untuk informasi selengkapnya tentang jenis fungsi, lihat Jenis fungsi.
Ketersediaan wilayah
Node Function Compute tersedia di ruang kerja pada wilayah-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
Saat menggunakan node Function Compute, Anda harus memanggil event function dari layanan yang telah dibuat. Jika daftar layanan yang telah dibuat tidak muncul saat Anda memilih layanan, kemungkinan disebabkan oleh salah satu alasan berikut:
Akun Anda memiliki pembayaran tertunda. Tambahkan dana ke akun Anda, refresh halaman konfigurasi node, lalu coba lagi.
Pengguna saat ini tidak memiliki izin untuk mengambil daftar layanan. Hubungi Pemilik Akun Alibaba Cloud Anda untuk memberikan izin fc:ListServices atau kebijakan AliyunFCFullAccess ke akun Anda. Setelah izin diberikan, refresh halaman konfigurasi node dan coba lagi. Untuk informasi selengkapnya tentang cara memberikan izin, lihat Berikan izin kepada RAM user.
Jika suatu fungsi berjalan lebih dari 1 jam dalam node Function Compute DataWorks, Anda harus mengatur metode pemanggilan ke pemanggilan asinkron. Untuk informasi selengkapnya tentang pemanggilan asinkron di Function Compute, lihat Pemanggilan asinkron.
Jika RAM user mengembangkan node Function Compute, Anda harus memberikan izin kepada pengguna tersebut menggunakan kebijakan sistem atau kebijakan kustom berikut.
Jenis kebijakan
Deskripsi kebijakan
Kebijakan sistem
Saat menggunakan kebijakan sistem, berikan kebijakan izin berikut kepada pengguna:
AliyunFCFullAccess,AliyunFCReadOnlyAccess, danAliyunFCInvocationAccess.Kebijakan Kustom
Izin umum yang diberikan melalui kebijakan kustom Function Compute adalah sebagai berikut:
fc:GetAsyncTaskfc:StopAsyncTaskfc:GetServicefc:ListServicesfc:GetFunctionfc:InvokeFunctionfc:ListFunctionsfc:GetFunctionAsyncInvokeConfigfc:ListServiceVersionsfc:ListAliasesfc:GetAliasfc:ListFunctionAsyncInvokeConfigsfc:GetStatefulAsyncInvocationfc:StopStatefulAsyncInvocation
CatatanUntuk informasi selengkapnya tentang kebijakan izin Function Compute, lihat dokumen berikut:
Langkah 1: Buka halaman pembuatan node
Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi kiri, pilih . Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down, lalu klik Go to Data Development.
Buka halaman pembuatan node.
Di halaman DataStudio, Anda dapat membuat node Function Compute dengan salah satu metode berikut.

Langkah 2: Buat dan konfigurasikan node Function Compute
Buat node Function Compute.
Setelah membuka halaman pembuatan node, ikuti petunjuk di layar untuk mengonfigurasi informasi dasar node baru, seperti path dan nama. Lalu, buat node tersebut.
Konfigurasikan parameter untuk node Function Compute.
Di halaman pengeditan node, pilih fungsi yang akan dipanggil untuk tugas tersebut. Kemudian, konfigurasikan metode pemanggilan dan detail variabel sesuai kebutuhan bisnis Anda.

Parameter
Deskripsi
Select Function
Pilih fungsi yang akan dipanggil untuk tugas ini. Jika tidak ada fungsi yang tersedia, buatlah terlebih dahulu. Untuk informasi selengkapnya, lihat Buat fungsi.
CatatanDataWorks hanya mendukung pemanggilan event functions. DataWorks tidak mendukung pemanggilan HTTP functions. Oleh karena itu, jika Anda ingin menjadwalkan fungsi secara berkala di DataWorks, Anda harus membuat event function yang menangani permintaan event. Untuk informasi selengkapnya tentang jenis fungsi, lihat Jenis fungsi.
Dalam contoh ini, fungsi
para_service_01_by_time_triggersdipilih. Saat fungsi ini dibuat, kode contoh untuk Time-triggered Function yang disediakan platform digunakan. 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 Contoh kode.
Select Version or Alias
Pilih versi layanan atau alias yang akan digunakan saat memanggil fungsi. Versi default adalah LATEST.
Versi layanan
Function Compute menyediakan fitur pengendalian versi pada tingkat layanan. Fitur ini memungkinkan Anda menerbitkan satu atau beberapa versi layanan. Saat Anda menerbitkan versi, Function Compute membuat Snapshot dari layanan tersebut. Snapshot mencakup konfigurasi layanan, kode fungsi, dan konfigurasi fungsi, tetapi tidak termasuk pemicu (trigger). Function Compute secara otomatis menetapkan nomor versi pada Snapshot tersebut untuk penggunaan di masa depan. Untuk informasi selengkapnya tentang cara menerbitkan versi, lihat Terbitkan versi.
Alias versi
Function Compute memungkinkan Anda membuat alias untuk versi layanan. Alias mengarah ke versi tertentu. Anda dapat menggunakan alias untuk dengan mudah menerapkan fitur seperti penerbitan, rollback, dan rilis canary. Alias tidak dapat eksis tanpa layanan atau versi. Saat Anda menggunakan alias untuk mengakses layanan atau fungsi, Function Compute akan menyelesaikan alias tersebut ke versi yang dituju. Pemanggil tidak perlu mengetahui versi spesifik yang dituju oleh alias tersebut. Untuk informasi selengkapnya tentang cara membuat alias, lihat Buat alias.
Invocation Method
Fungsi dapat dipanggil dengan cara berikut:
Pemanggilan sinkron: Event langsung memicu fungsi. Function Compute menjalankan fungsi dan menunggu respons. Setelah fungsi dipanggil, Function Compute langsung mengembalikan hasil eksekusi.
Pemanggilan asinkron: Function Compute menyimpan permintaan event secara persisten dan segera mengembalikan respons, tanpa menunggu permintaan dieksekusi.
Jika fungsi memerlukan waktu lama untuk dijalankan, mengonsumsi banyak sumber daya, atau memiliki logika yang rentan error, Anda dapat menggunakan pemanggilan asinkron untuk meningkatkan kecepatan respons program dan menangani lonjakan traffic secara lebih andal.
Untuk tugas Function Compute yang berjalan lebih dari 1 jam, gunakan pemanggilan asinkron.
Variables
Tetapkan nilai variabel dalam fungsi sesuai aplikasi Anda. Variabel ini sesuai dengan konten di bagian pada tab halaman detail fungsi tujuan di Konsol Function Compute.
Dalam contoh ini, parameter berikut diteruskan ke variabel fungsi
para_service_01_by_time_triggers. Dalam parameter tersebut, variabel bernamabizdatedidefinisikan dalam format${}. Variabel ini harus diberi nilai di Langkah 4.{ "payload": "payload1", "triggerTime": "${bizdate}", "triggerName": "triggerName1" }Opsional: Uji node Function Compute.
Setelah mengonfigurasi node Function Compute, klik ikon
. Anda kemudian dapat menentukan kelompok sumber daya untuk tugas tersebut dan memberikan nilai konstan pada variabel kode untuk menguji logika node. Format parameternya adalah key=value. Untuk memasukkan beberapa parameter, pisahkan dengan koma (,).CatatanUntuk informasi selengkapnya tentang cara menguji tugas, lihat Uji tugas.
Konfigurasikan properti penjadwalan berkala node.
DataWorks menyediakan parameter penjadwalan yang memungkinkan Anda meneruskan parameter secara dinamis dalam skenario penjadwalan. Setelah menentukan variabel fungsi di halaman pengeditan node, buka tab Scheduling Configuration untuk memberikan nilai pada variabel tersebut. Contoh ini menetapkan variabel
bizdateke hari sebelumnya. Artinya, saat node dijalankan, data yang diproses berasal dari hari sebelumnya. Untuk informasi selengkapnya tentang cara mengonfigurasi parameter penjadwalan, lihat Konfigurasi parameter penjadwalan.
Untuk informasi selengkapnya tentang properti penjadwalan node, lihat Ikhtisar properti penjadwalan tugas.
Langkah 3: Commit dan terbitkan node
Node Function Compute harus di-commit dan diterbitkan ke lingkungan produksi sebelum dapat dijadwalkan dan dijalankan secara otomatis.
Simpan dan commit node.
Klik ikon
dan
di Bilah alat untuk menyimpan dan meng-commit node. Saat meng-commit node, masukkan deskripsi perubahan sesuai permintaan. Anda juga dapat memilih apakah akan melakukan tinjauan kode dan pengujian asap.CatatanAnda harus mengatur Rerun Property dan Upstream Dependencies untuk node tersebut dalam konfigurasi penjadwalan sebelum dapat meng-commit node.
Jika Anda mengaktifkan tinjauan kode, kode node yang diajukan oleh developer harus disetujui oleh reviewer sebelum dapat diterbitkan. Untuk informasi selengkapnya, lihat Tinjauan kode.
Untuk memastikan tugas node terjadwal berjalan sesuai harapan, kami menyarankan Anda melakukan pengujian asap pada tugas tersebut sebelum menerbitkannya. Untuk informasi selengkapnya, lihat Pengujian asap.
Opsional: Terbitkan node.
Jika Anda menggunakan ruang kerja dalam mode standar, klik Publish di pojok kanan atas untuk menerbitkan node setelah di-commit. Untuk informasi selengkapnya, lihat Ruang kerja dalam mode standar dan Terbitkan tugas.
Langkah selanjutnya
Setelah tugas di-commit dan diterbitkan ke Pusat Operasi untuk penjadwalan, Anda dapat melakukan operasi dan maintenance (O&M) tugas di Pusat Operasi DataWorks. Untuk informasi selengkapnya, lihat Pusat Operasi.
Setelah mempelajari cara membuat dan menggunakan node Function Compute, Anda dapat mengeksplorasi praktik terbaik untuk memahami skenario lanjutan lainnya. Untuk informasi selengkapnya, lihat Tambahkan Watermark secara dinamis ke PDF menggunakan node Function Compute di DataWorks.