全部产品
Search
文档中心

DataWorks:Pemicu HTTP node

更新时间:Jul 06, 2025

Jika Anda menggunakan sistem penjadwalan eksternal dan ingin memicu node DataWorks setelah node dalam sistem penjadwalan tersebut dijalankan, Anda dapat menggunakan Pemicu HTTP node dari DataWorks. Topik ini menjelaskan cara menggunakan Pemicu HTTP node serta tindakan pencegahan yang perlu diperhatikan.

Perkenalan

Pemicu HTTP node adalah node virtual khusus. Anda dapat memanggil operasi RunTriggerNode dari DataWorks untuk menjadwalkan Pemicu HTTP node dan node turunannya.

Pemicu HTTP node umumnya digunakan untuk berkomunikasi antara sistem eksternal dan sistem penjadwalan DataWorks.

Pemicu HTTP node dapat digunakan untuk memicu tugas DataWorks setelah tugas sistem penjadwalan eksternal selesai. Sistem penjadwalan eksternal digunakan dalam skenario tipikal berikut:

  • Pemicu HTTP node tidak memiliki node leluhur selain node akar alur kerja.

    Anda harus mengonfigurasi pemicu di sistem penjadwalan eksternal setelah membuat Pemicu HTTP node. Kemudian, konfigurasikan properti penjadwalan untuk setiap node di DataWorks. Untuk informasi lebih lanjut, lihat Pemicu HTTP node.

  • Pemicu HTTP node memiliki node leluhur.

    • Anda harus mengonfigurasi pemicu di sistem penjadwalan eksternal setelah membuat Pemicu HTTP node. Kemudian, konfigurasikan properti penjadwalan untuk setiap node di DataWorks.

    • Secara default, Pemicu HTTP node menggunakan node akar alur kerja sebagai node leluhurnya. Anda harus secara manual mengubah node leluhur Pemicu HTTP node ke node yang diperlukan.

    • Pemicu HTTP node hanya dapat memicu node turunannya setelah node leluhur Pemicu HTTP node dijalankan sesuai harapan dan Pemicu HTTP node menerima instruksi penjadwalan dari sistem penjadwalan eksternal.

      Jika Pemicu HTTP node menerima instruksi penjadwalan dari sistem penjadwalan eksternal sebelum node leluhur Pemicu HTTP node selesai dijalankan, Pemicu HTTP node tidak akan memicu node turunannya. Sistem penjadwalan DataWorks menyimpan instruksi penjadwalan dari sistem penjadwalan eksternal dan menjadwalkan Pemicu HTTP node untuk memicu node turunan setelah pelaksanaan node leluhur selesai.

      Catatan

      Instruksi penjadwalan dari sistem penjadwalan eksternal hanya dapat disimpan selama 24 jam. Jika eksekusi node leluhur tidak selesai dalam waktu 24 jam, instruksi penjadwalan dari sistem penjadwalan eksternal menjadi tidak valid dan dibuang.

Prasyarat

  • Pengguna RAM yang ingin Anda gunakan telah ditambahkan ke ruang kerja Anda.

    Jika Anda ingin menggunakan pengguna RAM untuk mengembangkan tugas, tambahkan pengguna RAM ke ruang kerja Anda sebagai anggota dan tetapkan peran Develop atau Workspace Administrator. Peran Workspace Administrator memiliki lebih banyak izin daripada yang diperlukan. Berhati-hatilah saat menetapkan peran Workspace Administrator. Untuk informasi lebih lanjut tentang cara menambahkan anggota dan menetapkan peran kepada anggota, lihat Tambahkan anggota ruang kerja dan tetapkan peran kepada mereka.

  • Grup sumber daya serverless terhubung dengan ruang kerja Anda. Untuk informasi lebih lanjut, lihat topik-topik dalam direktori Gunakan grup sumber daya serverless.

  • Pemicu HTTP node dibuat sebelum Anda mengembangkan tugas pada Pemicu HTTP node. Untuk informasi lebih lanjut, lihat Buat node tugas.

Batasan

  • Hanya DataWorks Enterprise Edition dan edisi yang lebih canggih yang mendukung Pemicu HTTP node. Untuk informasi tentang edisi DataWorks, lihat Perbedaan di antara edisi DataWorks.

  • Parameter Mode Pembuatan Instance hanya dapat diatur ke Hari Berikutnya untuk Pemicu HTTP node, dan instance pengisian ulang data yang dihasilkan saat data diisi ulang tidak dapat dipicu. Oleh karena itu, Pemicu HTTP node dapat dipicu oleh sistem penjadwalan eksternal pada hari berikutnya setelah Pemicu HTTP node diterapkan ke lingkungan produksi.

  • Pemicu HTTP node hanya berfungsi sebagai node yang memicu node komputasi lainnya. Pemicu HTTP node tidak dapat digunakan sebagai node komputasi. Anda harus mengonfigurasi node yang perlu dipicu sebagai node turunan dari Pemicu HTTP node.

  • Jika Anda ingin menjalankan ulang Pemicu HTTP node setelah alur kerja dibuat dan dijalankan, Anda harus mengaktifkan sistem penjadwalan eksternal untuk mengirimkan kembali instruksi penjadwalan. Menjalankan ulang Pemicu HTTP node tidak memicu pelaksanaan node turunan yang berada dalam status Succeeded.

  • Jika Anda ingin mendapatkan hasil eksekusi dari node turunan Pemicu HTTP node dalam periode historis tertentu setelah alur kerja dibuat dan dijalankan, Anda harus mengisi ulang data untuk node turunan tersebut. Untuk informasi lebih lanjut, lihat Isi ulang data dan lihat instance pengisian ulang data (versi baru). Sistem penjadwalan eksternal tidak perlu mengirimkan instruksi penjadwalan untuk mengisi ulang data. Sebagai gantinya, Pemicu HTTP node langsung memicu operasi pengisian ulang data untuk node turunannya.

Kembangkan tugas pada Pemicu HTTP node

Deskripsi

Pemicu HTTP node hanya dapat dijalankan jika persyaratan berikut terpenuhi:

  • Instance yang dipicu otomatis dihasilkan untuk Pemicu HTTP node. Anda dapat menemukan instance tersebut di halaman Auto Triggered Instances di Operation Center. Instance tersebut berada dalam status menunggu sebelum operasi RunTriggerNode berhasil dipanggil untuk menjalankan instance tersebut. Node turunan dari Pemicu HTTP node diblokir hingga operasi RunTriggerNode dipanggil sesuai harapan untuk menjalankan instance yang dihasilkan untuk Pemicu HTTP node.

  • Semua node leluhur tempat Pemicu HTTP node bergantung dijalankan sesuai harapan. Status dari node leluhur adalah Succeeded.

  • Waktu penjadwalan dari instance yang dipicu otomatis yang dihasilkan untuk Pemicu HTTP node telah tiba.

  • Sumber daya penjadwalan yang cukup tersedia saat Pemicu HTTP node dijalankan.

  • Status dari Pemicu HTTP node bukan Freeze.

  • Pemicu HTTP node hanya dapat dipicu jika berada dalam status Pending. Jika Pemicu HTTP node dipicu, ia tidak dapat dipicu lagi.

Konfigurasikan properti penjadwalan untuk Pemicu HTTP node

Setelah Anda mengembangkan Pemicu HTTP node, konfigurasikan properti penjadwalan untuk Pemicu HTTP node. Untuk informasi lebih lanjut, lihat Konfigurasi penjadwalan.

Catatan

Secara default, Pemicu HTTP node menggunakan node akar alur kerja sebagai node leluhurnya. Anda harus secara manual mengubah node leluhur Pemicu HTTP node ke node yang diperlukan.

Komit dan terapkan Pemicu HTTP node

  1. Setelah kode node dan pengaturan penjadwalan dikonfigurasi, terapkan Pemicu HTTP node ke lingkungan produksi. Untuk informasi lebih lanjut, lihat Terapkan node.

  2. Setelah penyebaran selesai, kunjungi halaman Auto Triggered Nodes di Operation Center untuk melihat node yang diterapkan dan melakukan operasi O&M pada node tersebut. Sistem secara berkala menjalankan node berdasarkan properti penjadwalan yang Anda konfigurasikan. Untuk informasi lebih lanjut, lihat Memulai dengan Operation Center.

Konfigurasikan pemicu dalam sistem penjadwalan eksternal

Anda dapat menggunakan Alibaba Cloud SDK for Java atau Python untuk mengonfigurasi pemicu dalam sistem penjadwalan eksternal atau memanggil operasi API untuk menjalankan Pemicu HTTP node.

Alibaba Cloud SDK for Java

  1. Instal Alibaba Cloud SDK for Java. Untuk informasi lebih lanjut, lihat Mulai dengan Alibaba Cloud SDK V1.0 for Java.

    Tentukan konfigurasi Project Object Model (POM) berikut untuk menggunakan DataWorks SDK for Java:

    <dependency>
      <groupId>com.aliyun</groupId>
      <artifactId>aliyun-java-sdk-dataworks-public</artifactId>
      <version>3.4.2</version>
    </dependency>
  2. Gunakan kode contoh dan konfigurasikan parameter dalam kode.

    Anda dapat pergi ke halaman debugging dari operasi RunTriggerNode dan melihat kode contoh lengkap di tab SDK Sample Code.

    // File ini dihasilkan secara otomatis, jangan edit. Terima kasih.
    package com.aliyun.sample;
    
    import com.aliyun.tea.*;
    
    public class Sample {
    
        /**
         *  :
         * <p>Gunakan pasangan AccessKey Anda untuk menginisialisasi klien.</p>
         * @return Client
         * 
         * @throws Exception
         */
        public static com.aliyun.dataworks_public20200518.Client createClient() throws Exception {
            // Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Kode contoh berikut hanya untuk referensi. 
            // Untuk keamanan yang lebih baik, kami sarankan Anda menggunakan kredensial akses sementara yang dikeluarkan oleh Security Token Service (STS). Untuk informasi lebih lanjut, lihat https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-access-credentials. 
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
                    // Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. 
                    .setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
                    // Diperlukan. Pastikan bahwa variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. 
                    .setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
            // Untuk informasi lebih lanjut tentang titik akhir, lihat https://api.aliyun.com/product/dataworks-public.
            config.endpoint = "dataworks.cn-shanghai.aliyuncs.com";
            return new com.aliyun.dataworks_public20200518.Client(config);
        }
    
        public static void main(String[] args_) throws Exception {
            java.util.List<String> args = java.util.Arrays.asList(args_);
            com.aliyun.dataworks_public20200518.Client client = Sample.createClient();
            com.aliyun.dataworks_public20200518.models.RunTriggerNodeRequest runTriggerNodeRequest = new com.aliyun.dataworks_public20200518.models.RunTriggerNodeRequest();
            com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
            try {
                // Tulis kode Anda sendiri untuk menampilkan respons dari operasi API jika perlu.
                client.runTriggerNodeWithOptions(runTriggerNodeRequest, runtime);
            } catch (TeaException error) {
                // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian disediakan hanya untuk referensi. 
                // Pesan kesalahan.
                System.out.println(error.getMessage());
                // URL untuk pemecahan masalah.
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            } catch (Exception _error) {
                TeaException error = new TeaException(_error.getMessage(), _error);
                // Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual dan jangan abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pengecualian disediakan hanya untuk referensi. 
                // Pesan kesalahan.
                System.out.println(error.getMessage());
                // URL untuk pemecahan masalah.
                System.out.println(error.getData().get("Recommend"));
                com.aliyun.teautil.Common.assertAsString(error.message);
            }        
        }
    }
    

Alibaba Cloud SDK untuk Python

  1. Instal Alibaba Cloud SDK untuk Python. Untuk informasi lebih lanjut, lihat Integrasi dengan Alibaba Cloud SDK V1.0 untuk Python.

    Jalankan perintah berikut untuk menginstal DataWorks SDK untuk Python:

    pip install aliyun-python-sdk-dataworks-public==2.1.2
  2. Gunakan kode contoh dan konfigurasikan parameter dalam kode tersebut.

    Anda dapat pergi ke dan melihat kode contoh lengkap pada tab SDK Sample Code.

    # -*- coding: utf-8 -*-
    # File ini dihasilkan secara otomatis, jangan diedit. Terima kasih.
    import os
    import sys
    
    from typing import List
    
    from alibabacloud_dataworks_public20200518.client import Client as dataworks_public20200518Client
    from alibabacloud_tea_openapi import models as open_api_models
    from alibabacloud_dataworks_public20200518 import models as dataworks_public_20200518_models
    from alibabacloud_tea_util import models as util_models
    from alibabacloud_tea_util.client import Client as UtilClient
    
    
    class Sample:
        def __init__(self):
            pass
    
        @staticmethod
        def create_client() -> dataworks_public20200518Client:
            """
            Gunakan ID AccessKey dan Rahasia AccessKey Anda untuk menginisialisasi klien.
            @return: Klien
            @throws Exception
            """
            # Jika kode proyek bocor, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya dalam akun Anda mungkin terganggu. Contoh kode berikut hanya disediakan sebagai referensi. 
            # Untuk alasan keamanan, kami sarankan Anda menggunakan kredensial akses sementara yang disediakan oleh Security Token Service (STS). Untuk informasi lebih lanjut, kunjungi https://www.alibabacloud.com/help/en/sdk/developer-reference/v2-manage-php-access-credentials. 
            config = open_api_models.Config(
                # Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dikonfigurasi. ,
                access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
                # Diperlukan. Pastikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi. ,
                access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
            )
            # Untuk informasi lebih lanjut tentang titik akhir, lihat https://api.aliyun.com/product/dataworks-public.
            config.endpoint = f'dataworks.cn-shanghai.aliyuncs.com'
            return dataworks_public20200518Client(config)
    
        @staticmethod
        def main(
            args: List[str],
        ) -> None:
            client = Sample.create_client()
            run_trigger_node_request = dataworks_public_20200518_models.RunTriggerNodeRequest()
            runtime = util_models.RuntimeOptions()
            try:
                # Cetak respons dari operasi API jika diperlukan.
                client.run_trigger_node_with_options(run_trigger_node_request, runtime)
            except Exception as error:
                # Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak. 
                # Tampilkan pesan kesalahan.
                print(error.message)
                # Tampilkan URL untuk pemecahan masalah.
                print(error.data.get("Recommend"))
                UtilClient.assert_as_string(error.message)
    
        @staticmethod
        async def main_async(
            args: List[str],
        ) -> None:
            client = Sample.create_client()
            run_trigger_node_request = dataworks_public_20200518_models.RunTriggerNodeRequest()
            runtime = util_models.RuntimeOptions()
            try:
                # Cetak respons dari operasi API jika diperlukan.
                await client.run_trigger_node_with_options_async(run_trigger_node_request, runtime)
            except Exception as error:
                # Tangani pengecualian dengan hati-hati dalam skenario bisnis aktual Anda dan jangan pernah abaikan pengecualian dalam proyek Anda. Dalam contoh ini, pesan kesalahan dicetak. 
                # Tampilkan pesan kesalahan.
                print(error.message)
                # Tampilkan URL untuk pemecahan masalah.
                print(error.data.get("Recommend"))
                UtilClient.assert_as_string(error.message)
    
    
    if __name__ == '__main__':
        Sample.main(sys.argv[1:])
    

Untuk informasi lebih lanjut tentang operasi API, lihat RunTriggerNode.