Tüm Ürünler
Search
Belge Merkezi

DataWorks:Farklı kiracılar arasında düğümleri çalıştırmak için HTTP tetikleyici düğümünü kullanma

Son Güncelleme:Oct 05, 2026

DataWorks, farklı kiracılardaki görevleri tetiklemek ve çalıştırmak için HTTP tetikleyici düğümü sağlar. Bu konu, DataWorks'te çapraz kiracı iş akışlarını düzenlemek amacıyla bir HTTP tetikleyici düğümünün nasıl yapılandırılacağını açıklar.

Arka Plan

Birçok kuruluşta veri işleme ve analiz iş akışları birden fazla kiracı arasında veya aynı kiracı altındaki farklı bölgelerde çalışır. DataWorks bu senaryoları desteklemek için HTTP tetikleyici düğümünü sunar:

  • Farklı kiracı ortamlarındaki bağımlı görevlerin orkestrasyonu.

  • Aynı kiracı altında birden fazla bölgedeki farklı zamanlama sistemleri arasındaki iş akışlarının koordinasyonu. Örneğin, B Sistemindeki bir iş akışı yalnızca A Sistemindeki bir düğüm görevini tamamladıktan sonra başlayabilir.

Aşağıdaki diyagram, çapraz kiracı senaryosunda tetikleme mekanizmasının nasıl çalıştığını gösterir.

image

Diyagram açıklaması: Kiracı B ortamındaki bir iş akışı bir HTTP tetikleyici düğümü içerir ve Operation Center'a dağıtılır. İş akışı çalıştırıldığında, yukarı akış düğümleri zamanlamalarına göre sırayla yürütülür. Yürütme HTTP tetikleyici düğümüne ulaştığında, düğüm ve aşağı akış görevleri bekleme durumuna geçer. HTTP tetikleyici düğümü Kiracı A'dan gelen bir tetikleme komutunu aldıktan ve doğruladıktan sonra, HTTP tetikleyici düğümü ve aşağı akış görevleri sırayla çalışmaya başlar.

Ön Koşullar

  • Her biri ayrı bir kök hesaba sahip iki kiracı ortamınız vardır.

  • İki ortamın her birinde bir çalışma alanı oluşturdunuz.

  • Her ortamdaki çalışma alanıyla bir serverless kaynak grubunu ilişkilendirdiniz.

  • Tetikleyen çalışma alanıyla ilişkili serverless kaynak grubunun VPC'si için bir Internet NAT Gateway ve bir EIP yapılandırdınız.

    Önemli

    Bir shell düğümü bir HTTP tetikleyici düğümünü tetiklediğinde, tetikleme komutu genel internet üzerinden gönderilmelidir.

  • Tetikleme komutunu gönderen shell düğümünü içeren çalışma alanıyla bir MaxCompute hesaplama kaynağını ilişkilendirdiniz. Daha fazla bilgi için bkz. Hesaplama kaynaklarını yönetme.

Notlar

  • HTTP tetikleyici düğümü yalnızca bir tetikleyici olarak işlev görür. Düğüm için herhangi bir kod yapılandırmanıza gerek yoktur.

  • Çalışma alanı türünüzle eşleşen örneği izleyin:

    • Use Data Studio (New Version) çalışma alanları: Data Studio (yeni sürüm) örneğini izleyin.

    • Use Data Studio (New Version) özelliğini kullanmayan çalışma alanları: eski Data Studio örneğini izleyin.

      Not

      Use Data Studio (New Version) özelliğini etkinleştirmemiş çalışma alanlarında yalnızca DataWorks Enterprise Edition HTTP tetikleyici düğümlerini destekler.

Data Studio (yeni sürüm) örneği

Kiracı A'dan Kiracı B'nin Data Studio (yeni sürüm) ortamında düğüm yürütmeyi tetiklemek istiyorsanız aşağıdaki talimatları izleyin.

Kiracı B ortamı: HTTP tetikleyici düğüm iş akışı oluşturma

Uzaktan tetiklenecek olan Kiracı B'nin çalışma alanında bir iş akışı oluşturun. İş akışı, tetikleme komutunu alan bir HTTP tetikleyici düğümü ve çapraz kiracı tetikleme etkisini doğrulamanızı sağlayan bir aşağı akış iş düğümü (bu konuda örnek olarak bir shell düğümü kullanılmıştır) içermelidir.

  1. Data Studio'ya gidin.

    DataWorks çalışma alanı listesi sayfasına gidin, üst gezinme çubuğunda hedef bölgeye geçin, hedef çalışma alanını bulun ve ardından Data Studio'ya gitmek için Operation sütununda Shortcuts > Data Studio seçeneğine tıklayın.

  2. Bir iş akışı oluşturun.

    1. Sol gezinme bölmesinde image simgesine tıklayın, Project Directory yanındaki image simgesine tıklayın ve ardından Create Workflow öğesini seçerek Create Workflow iletişim kutusunu açın.

    2. Create Workflow iletişim kutusunda iş akışı için özel bir Name belirtin (bu örnekte HTTP_Workflow) ve ardından iş akışı düzenleme sayfasına gitmek için Confirm öğesine tıklayın.

  3. Düğümler oluşturun.

    1. İş akışı düzenleme sayfasındaki Create Node panelinde General > HTTP Trigger düğümünü ve General > Shell düğümünü iş akışı düzenleme sayfasına sürükleyin.

    2. Shell düğümünü HTTP tetikleyici düğümünün aşağı akış düğümü olarak ekleyin.

  4. İş akışındaki shell düğümünü düzenleyin.

    Önemli

    HTTP tetikleyici düğümü yalnızca bir tetikleyici olarak işlev görür. Düğüm için herhangi bir kod yapılandırmanıza gerek yoktur.

    1. Shell düğümünün üzerine gelin ve Open Node öğesine tıklayın. Düğüm düzenleme sayfasına aşağıdaki içeriği girin.

      echo "DataWorks";
    2. Shell düğümü düzenleme sayfasının sağ tarafındaki Scheduling Settings bölümünde Resource Group ayarını çalışma alanınızla ilişkili serverless kaynak grubuna ayarlayın.

    3. Shell düğümü düzenleme sayfasının üstündeki araç çubuğunda Save öğesine tıklayın.

  5. İş akışını dağıtın.

    1. Proje dizininde oluşturduğunuz HTTP_Workflow iş akışını bulun. İş akışı düzenleme sayfasının sağ tarafındaki Scheduling Settings bölümünde Instance generation method ayarını Instant generation after publishing olarak ayarlayın.

    2. Dağıtım panosunu açmak için araç çubuğundaki image düğmesine tıklayın ve ardından Start Release Production öğesine tıklayın. Görev, dağıtım denetimi süreci aracılığıyla dağıtılacaktır. Daha fazla bilgi için bkz. Düğümleri dağıtma.

  6. HTTP örnek parametre bilgilerini kaydedin.

    HTTP tetikleyici düğümü zamanlanmış örnekleri hemen oluşturduğundan, HTTP örnek parametre bilgilerini görüntülemek ve kaydetmek için Operation Center'a gidebilirsiniz.

    1. DataWorks konsolunda oturum açın. Hedef bölgede sol gezinme bölmesinden Data Development and O&M > Operation Center seçeneğine tıklayın. Açılan listeden bir çalışma alanı seçin ve Go to Operation Center öğesine tıklayın.

    2. Sol gezinme bölmesinde Auto Triggered Task O&M > Cycle Examples seçeneğine tıklayarak Cycle Examples sayfasına gidin.

    3. Oluşturduğunuz HTTP tetikleyici düğüm örneğini bulun ve örneğin Task ID ile Scheduled Time değerlerini kaydedin.

      Not

      Örneğin Task ID değerini görüntülemek için HTTP tetikleyici düğüm örneğinin adının üzerine gelin.

Yerel ortam: Örnek kodu hazırlama

  1. POM bağımlılıklarını ekleyin.

    TriggerSchedulerTaskInstance hata ayıklama sayfasına giderek SDK Example sekmesindeki eksiksiz SDK kurulum bilgilerini görüntüleyebilirsiniz.

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>com.example.demo.CrossTenantTriggerSchedulerTaskInstance</mainClass>  <!-- Replace this with your main class -->
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase> <!-- Execute during the package phase -->
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
        <dependencies>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>dataworks_public20240518</artifactId>
                <version>6.2.0</version>
            </dependency>
        </dependencies>
    Önemli

    Kod geliştirmeyi tamamladıktan sonra mainClass parametresini oluşturduğunuz Java kodunun ana sınıf adıyla değiştirin. Ana sınıf adı, tam paket adının ardından sınıf adının geldiği biçimi kullanır. Örneğin, com.example.demo.CrossTenantTriggerSchedulerTaskInstance.

  2. Kodu geliştirin.

    package com.example.demo;
    import com.aliyun.dataworks_public20240518.Client;
    import com.aliyun.dataworks_public20240518.models.TriggerSchedulerTaskInstanceRequest;
    import com.aliyun.dataworks_public20240518.models.TriggerSchedulerTaskInstanceResponse;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    public class CrossTenantTriggerSchedulerTaskInstance {
        // Method to create an Alibaba Cloud DataWorks client
        public static Client createClient20240518(String accessId, String accessKey, String endpoint) throws Exception {
            // Initialize OpenAPI configuration object
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
            config.setAccessKeyId(accessId); // Set AccessKey ID
            config.setAccessKeySecret(accessKey); // Set AccessKey Secret
            config.setEndpoint(endpoint); // Set service endpoint
            return new Client(config); // Return the initialized client instance
        }
        // Method to trigger a DataWorks node run
        public static TriggerSchedulerTaskInstanceResponse runTriggerScheduler(Client client, Long nodeId, String EnvType,Long TriggerTime) throws Exception {
            TriggerSchedulerTaskInstanceRequest request = new TriggerSchedulerTaskInstanceRequest(); // Create API request object
            request.setTaskId(nodeId); // Set the node ID to trigger
            request.setEnvType(EnvType); // Set the project environment
            request.setTriggerTime(TriggerTime); // Set the scheduled trigger time (millisecond timestamp)
            RuntimeOptions runtime = new RuntimeOptions(); // Initialize runtime options
            return client.triggerSchedulerTaskInstanceWithOptions(request, runtime); // Execute the API call and return the response
        }
        // Main entry method
        public static void main(String[] args) throws Exception {
            // Initialize node ID (example value)
            String nodeId1 = "";
            // Initialize project environment (example value)
            String EnvTypeStr = "";
            // Initialize scheduled time (example value)
            String cycTimeStr = "";
            // Process command-line arguments in a for loop, assigning values to nodeId1, cycTimeParam, and bizTimeParam
            int i;
            for(i = 0; i < args.length; ++i) {
                if (i == 0) {
                    nodeId1 = args[i];
                } else if (i == 1) {
                    EnvTypeStr = args[i];
                }else if (i == 2) {
                    cycTimeStr = args[i];
                }
            }
            // Convert string to Long type node ID
            Long nodeId = Long.parseLong(nodeId1);
            // Print usage instructions
            System.out.println("Usage: java -jar test-1.0-SNAPSHOT.jar nodeId EnvTypeStr cycTimeParam");
            // Parse scheduled time and convert to timestamp
            SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(sdft.parse(cycTimeStr)); // Parse time string
            Long cycTime = calendar.getTimeInMillis(); // Get millisecond timestamp
            // Print debug info (timestamp)
            System.out.println("Scheduled timestamp: " + cycTime);
            // Configure Alibaba Cloud service parameters
            String endpoint = "dataworks.cn-hangzhou.aliyuncs.com"; // Service endpoint
            String accessId = "xxx"; // AccessKey ID
            String accessKey = "xxx"; // AccessKey Secret
            // Create Alibaba Cloud client instance
            Client client = createClient20240518(accessId, accessKey, endpoint);
            // Execute trigger node operation
            TriggerSchedulerTaskInstanceResponse response = runTriggerScheduler(client, nodeId,EnvTypeStr, cycTime);
            // Print API response result (JSON format)
            System.out.println(com.aliyun.teautil.Common.toJSONString(com.aliyun.teautil.Common.toMap(response)));
        }
    }

    Yukarıdaki kodda bulunan endpoint, accessId ve accessKey parametrelerini aşağıdaki parametre açıklamalarına göre gerçek değerlerle değiştirin.

    Parametre

    Açıklama

    endpoint

    Hedef HTTP tetikleyici düğümünün bulunduğu çalışma alanının uç noktası. Daha fazla bilgi için bkz. Alibaba Cloud OpenAPI Geliştirici Portalı uç noktaları.

    accessId

    Hedef HTTP tetikleyici düğümünün bulunduğu çalışma alanına sahip Alibaba Cloud hesabının AccessKey ID değeri.

    DataWorks konsolunda oturum açın, üst gezinme çubuğunun sağ üst köşesindeki profil simgesinin üzerine gelin ve ardından hedef HTTP tetikleyici düğümüne sahip RAM kullanıcısının AccessKey ID ve AccessKey Secret değerlerini almak için AccessKey bölümüne gidin.

    Uyarı

    Bir Alibaba Cloud kök hesabının AK değeri tam izinlere sahiptir. AK sızdırılırsa ciddi güvenlik riskleri oluşabilir. Hedef çalışma alanında yalnızca çalışma alanı yöneticisi rolüne sahip bir RAM kullanıcısının AK değerini kullanmanızı öneririz.

    accessKey

    Hedef HTTP tetikleyici düğümünün bulunduğu çalışma alanına sahip Alibaba Cloud hesabının AccessKey Secret değeri.

  3. Yukarıdaki kodu jar-with-dependencies.jar son ekiyle bir JAR dosyasında paketleyin.

Kiracı A ortamı: Bir shell düğümü yapılandırma

Tetikleme komutunu göndermek için Kiracı A'nın çalışma alanında bir shell düğümü oluşturun ve yapılandırın.

  1. Data Studio'ya gidin.

    DataWorks çalışma alanı listesi sayfasına gidin, üst gezinme çubuğunda hedef bölgeye geçin, hedef çalışma alanını bulun ve ardından Data Studio'ya gitmek için Operation sütununda Shortcuts > Data Studio seçeneğine tıklayın.

  2. Bir JAR kaynağı yükleyin.

    1. Sol gezinme bölmesinde kaynak yönetimine gitmek için image simgesine tıklayın.

    2. Resource Management sayfasında Create düğmesine veya image simgesine tıklayın ve ardından New Resource > Maxcompute Jar seçeneğini belirleyin.

    3. New Resource and Function iletişim kutusunda kaynak adı olarak http_node_work.jar girin ve Confirm (Onayla) öğesine tıklayın.

    4. Kaynak ayrıntıları sayfasında Click Upload düğmesine tıklayarak Yerel ortam: Örnek kodu hazırlama adımında oluşturduğunuz JAR dosyasını yükleyin ve ardından Data Sources ayarını ilişkilendirdiğiniz MaxCompute veri kaynağına ayarlayın.

  3. Kaynağı kaydedin ve dağıtın.

    JAR kaynağı yüklendikten sonra dağıtım panosunu açmak için araç çubuğundaki image düğmesine tıklayın ve ardından Start Release Production öğesine tıklayın. Dağıtım denetimi sürecini tamamlayın. Daha fazla bilgi için bkz. Düğümleri dağıtma.

  4. Bir tetikleme shell düğümü oluşturun.

    1. Sol gezinme bölmesinde image simgesine tıklayın ve ardından Project Directory yanındaki image simgesine tıklayın.

    2. General > Shell seçeneğini belirleyerek New Node iletişim kutusunu açın.

    3. Düğüm için özel bir Name belirtin ve düğüm düzenleme sayfasına gitmek için Confirm öğesine tıklayın.

  5. Tetikleme shell düğümünü düzenleyin.

    1. Shell düğümü düzenleme sayfasının sol gezinme bölmesinde image simgesine tıklayın ve yüklediğiniz JAR kaynağını (http_node_work.jar) bulun.

    2. Yüklediğiniz JAR kaynağına sağ tıklayın ve Insert Resource Path öğesini seçin.

    3. Shell düğümündeki tetikleyici kodu yürütme parametrelerini tamamlayın.

    ##@resource_reference{"http_node_work.jar"}
     java -jar http_node_work.jar nodeId "EnvTypeStr" "cycTimeParam"


    Parametre


    Açıklama


    java -jar


    JAR yürütme komutu.


    http_node_work.jar


    Başvuruda bulunduğunuz kaynağın adı.


    nodeId

    Kiracı B ortamı: HTTP tetikleyici düğüm iş akışı oluşturma adımında kaydettiğiniz HTTP tetikleyici düğümünün Task ID değeri.


    EnvTypeStr

    Hedef HTTP tetikleyici düğümünün proje ortamı. Bu konuda HTTP tetikleyici düğümü üretim ortamına dağıtılır. Bu parametreyi Prod olarak ayarlayın.

    HTTP tetikleyici düğümünü geliştirme ortamında çalıştırmak için bu parametreyi Dev olarak ayarlayın.


    cycTimeParam

    Kiracı B ortamı: HTTP tetikleyici düğüm iş akışı oluşturma adımında kaydettiğiniz HTTP tetikleyici düğüm görevinin Scheduled Time değeri. Zaman biçimi yyyy-MM-dd HH:mm:ss şeklindedir.

  6. Tetikleme shell düğümünü yapılandırın.

    Shell düğümü düzenleme sayfasının sağ tarafındaki Scheduling Settings bölümünde Scheduling Policy > Resource Group yolunu izleyin ve ardından Resource Group olarak çalışma alanıyla ilişkili serverless kaynak grubunu seçin.

Çalıştırma ve sonuçları görüntüleme

Kiracı B'deki HTTP tetikleyici düğümünü ve aşağı akış görevlerini tetiklemek için Kiracı A'daki shell düğümünü çalıştırın.

  1. Tetikleme shell düğümünü çalıştırın.

    Kiracı A ortamı: Bir shell düğümü yapılandırma adımında yapılandırdığınız shell düğümünün üzerindeki araç çubuğunda Run öğesine tıklayın.

  2. Yürütme sonuçlarını görüntüleyin.

    Kiracı B ortamına gidin ve yürütme sonuçlarını görüntülemek için aşağıdaki adımları izleyin.

    1. DataWorks konsolunda oturum açın. Hedef bölgede sol gezinme bölmesinden Data Development and O&M > Operation Center seçeneğine tıklayın. Açılan listeden bir çalışma alanı seçin ve Go to Operation Center öğesine tıklayın.

    2. Sol gezinme bölmesinde zamanlanmış örnek sayfasına gitmek için Auto Triggered Task O&M > Cycle Examples seçeneğine tıklayın.

    3. Tetkilemek istediğiniz HTTP tetikleyici düğüm örneğini bulun ve yürütme sonuçlarını görüntüleyin.

Eski Data Studio örneği

Kiracı A'dan Kiracı B'nin eski Data Studio ortamında düğüm yürütmeyi tetiklemek istiyorsanız aşağıdaki talimatları izleyin.

Kiracı B ortamı: HTTP tetikleyici düğüm iş akışı oluşturma

Uzaktan tetiklenecek olan Kiracı B'nin çalışma alanında bir iş akışı oluşturun. İş akışı, tetikleme komutunu alan bir HTTP tetikleyici düğümü ve çapraz kiracı tetikleme etkisini doğrulamanızı sağlayan bir aşağı akış iş düğümü (bu konuda örnek olarak bir shell düğümü kullanılmıştır) içermelidir.

  1. Bir HTTP tetikleyici düğümü oluşturun. Daha fazla bilgi için bkz. HTTP tetikleyici düğümü oluşturma.

  2. Bir shell düğümü oluşturun. Daha fazla bilgi için bkz. Shell düğümü oluşturma.

    Düğüm düzenleme sayfasına aşağıdaki içeriği girin. Shell düğümü düzenleme sayfasının sağ tarafındaki zamanlama ayarlarında RUN Attribute ve Resource Group for Scheduling öğelerini yapılandırın. Ardından düğüm yapılandırmasını kaydetmek için Save öğesine tıklayın.

    echo "DataWorks";
  3. İş akışını Operation Center'a dağıtın.

  4. HTTP örnek parametre bilgilerini kaydedin.

    HTTP tetikleyici düğümü yalnızca T+1 zamanlanmış örnekleri oluşturmayı desteklediğinden, ertesi gün iş akışının sağ üst köşesindeki image simgesine tıklayarak Auto Triggered Task O&M > Cycle Examples altındaki Operation and Maintenance Center bölümünde HTTP örnek parametre bilgilerini görüntüleyebilirsiniz.

    Oluşturduğunuz HTTP tetikleyici düğüm örneğini bulun ve örneğin Task ID, Scheduled Time ve Business Date değerlerini kaydedin.

    Not

    Örneğin Task ID değerini görüntülemek için HTTP tetikleyici düğüm örneğinin adının üzerine gelin.

Yerel ortam: Kodu hazırlama

  1. POM bağımlılıklarını ekleyin.

    RunTriggerNode hata ayıklama sayfasına giderek SDK Example sekmesindeki eksiksiz SDK kurulum bilgilerini görüntüleyebilirsiniz.

        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>3.3.0</version>
                    <configuration>
                        <archive>
                            <manifest>
                                <mainClass>com.example.demo.CrossTenantTriggerNode</mainClass>  <!-- Replace this with your main class -->
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase> 
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    
        <dependencies>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>dataworks_public20200518</artifactId>
                <version>7.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>tea-openapi</artifactId>
                <version>0.3.8</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>tea-console</artifactId>
                <version>0.0.1</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>tea-util</artifactId>
                <version>0.2.23</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>credentials-java</artifactId>
                <version>1.0.1</version>
            </dependency>
        </dependencies>
    Önemli

    Kod geliştirmeyi tamamladıktan sonra mainClass parametresini oluşturduğunuz Java kodunun ana sınıf adıyla değiştirin. Ana sınıf adı, tam paket adının ardından sınıf adının geldiği biçimi kullanır. Örneğin, com.example.demo. CrossTenantTriggerNode.

  2. Kodu geliştirin.

    package com.example.demo;
    
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import com.aliyun.dataworks_public20200518.Client;
    import com.aliyun.dataworks_public20200518.models.RunTriggerNodeRequest;
    import com.aliyun.dataworks_public20200518.models.RunTriggerNodeResponse;
    import com.aliyun.teautil.models.RuntimeOptions;
    
    public class CrossTenantTriggerNode {
        // Method to create an Alibaba Cloud DataWorks client
        public static Client createClient20200518(String accessId, String accessKey, String endpoint) throws Exception {
            // Initialize OpenAPI configuration object
            com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
            config.setAccessKeyId(accessId); // Set AccessKey ID
            config.setAccessKeySecret(accessKey); // Set AccessKey Secret
            config.setEndpoint(endpoint); // Set service endpoint
            return new Client(config); // Return the initialized client instance
        }
        // Method to trigger a DataWorks node run
        public static RunTriggerNodeResponse runTriggerNode(Client client, Long nodeId, Long cycleTime, Long bizDate, Long appId) throws Exception {
            RunTriggerNodeRequest request = new RunTriggerNodeRequest(); // Create API request object
            request.setNodeId(nodeId); // Set the node ID to trigger
            request.setCycleTime(cycleTime); // Set cycle time (millisecond timestamp)
            request.setBizDate(bizDate); // Set business date (millisecond timestamp)
            request.setAppId(appId); // Set application ID
            RuntimeOptions runtime = new RuntimeOptions(); // Initialize runtime options
            return client.runTriggerNodeWithOptions(request, runtime); // Execute the API call and return the response
        }
        // Main entry method
        public static void main(String[] args) throws Exception {
            // Initialize node ID (example value)
            String nodeId1 = "";
            // Initialize scheduled time and business date (example values)
            String cycTimeStr = "";
            String bizTimeParam = "";
            // Process command-line arguments in a for loop, assigning values to nodeId1, cycTimeParam, and bizTimeParam
            int i;
            for(i = 0; i < args.length; ++i) {
                if (i == 0) {
                    nodeId1 = args[i];
                } else if (i == 1) {
                    cycTimeStr = args[i];
                }else if (i == 2) {
                    bizTimeParam = args[i];
                }
            }
            // Convert string to Long type node ID
            Long nodeId = Long.parseLong(nodeId1);
            // Print usage instructions
            System.out.println("Usage: java -jar test-1.0-SNAPSHOT.jar nodeId cycTimeParam bizTimeParam");
            // Parse scheduled time and convert to timestamp
            SimpleDateFormat sdft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(sdft.parse(cycTimeStr)); // Parse time string
            Long cycTime = calendar.getTimeInMillis(); // Get millisecond timestamp
            // Parse business date and convert to timestamp
            SimpleDateFormat sdfti = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calendari = Calendar.getInstance();
            calendari.setTime(sdfti.parse(bizTimeParam));
            Long bizTime = calendari.getTimeInMillis();
            // Print debug info (timestamps)
            System.out.println("Scheduled timestamp: " + cycTime);
            System.out.println("Business date timestamp: " + bizTime);
            // Configure Alibaba Cloud service parameters
            String endpoint = "dataworks.cn-hangzhou.aliyuncs.com"; // Service endpoint
            String accessId = "xxx"; // AccessKey ID
            String accessKey = "xxx"; // AccessKey Secret
            Long appId = Long.valueOf(xxx); // Application ID (replace with actual value)
            // Create Alibaba Cloud client instance
            Client client = createClient20200518(accessId, accessKey, endpoint);
            // Execute trigger node operation
            RunTriggerNodeResponse response = runTriggerNode(client, nodeId, cycTime, bizTime, appId);
            // Print API response result (JSON format)
            System.out.println(com.aliyun.teautil.Common.toJSONString(com.aliyun.teautil.Common.toMap(response)));
        }
    }
    

    Yukarıdaki kodda bulunan endpoint, accessId, accessKey ve appId parametrelerini gerçek değerlerle değiştirin.

    Parametre

    Açıklama

    endpoint

    Hedef HTTP tetikleyici düğümünün bulunduğu çalışma alanının uç noktası. Daha fazla bilgi için bkz. Alibaba Cloud OpenAPI Geliştirici Portalı uç noktaları.

    accessId

    Hedef HTTP tetikleyici düğümünün bulunduğu çalışma alanına sahip Alibaba Cloud hesabının AccessKey ID değeri.

    DataWorks konsolunda oturum açın, üst gezinme çubuğunun sağ üst köşesindeki profil simgesinin üzerine gelin ve ardından AccessKey ID ve AccessKey Secret değerlerini almak için AccessKey bölümüne gidin.

    Uyarı

    Bir Alibaba Cloud kök hesabının AK değeri tam izinlere sahiptir. AK sızdırılırsa ciddi güvenlik riskleri oluşabilir. Hedef çalışma alanında yalnızca çalışma alanı yöneticisi rolüne sahip bir RAM kullanıcısının AK değerini kullanmanızı öneririz.

    accessKey

    Hedef HTTP tetikleyici düğümünün bulunduğu çalışma alanına sahip Alibaba Cloud hesabının AccessKey Secret değeri.

    appId

    Hedef HTTP tetikleyici düğümünün bulunduğu çalışma alanının kimliği. Çalışma alanı kimliğini Administration bölümünde görüntüleyebilirsiniz.

  3. Yukarıdaki kodu jar-with-dependencies.jar son ekiyle bir JAR dosyasında paketleyin.

Kiracı A ortamı: Bir shell düğümü yapılandırma

Kiracı B'nin çalışma alanındaki HTTP tetikleyici düğümünü tetiklemek için Kiracı A'nın çalışma alanında bir shell düğümü yapılandırmak üzere şu adımları izleyin.

  1. Bir JAR kaynağı oluşturun ve yükleyin.

    Yerel ortam: Kodu hazırlama adımında paketlediğiniz JAR dosyasını bir MaxCompute kaynağı olarak oluşturun. Daha fazla bilgi için bkz. Kaynak oluşturma ve kullanma.

  2. Tetikleme shell düğümünü geliştirin.

    Bir shell düğümü oluşturun ve shell düğümünde bir MaxCompute kaynağına başvurun. Shell düğümündeki tetikleyici kodu yürütme parametrelerini tamamlayın. Aşağıda örnek kod verilmiştir:

    ##@resource_reference{"http_node_work.jar"}
     java -jar http_node_work.jar nodeId "cycleTime" "bizDate"


    Parametre


    Açıklama


    http_node_work.jar


    Başvuruda bulunduğunuz kaynağın adı.


    nodeId

    Kiracı B ortamı: HTTP tetikleyici düğüm iş akışı oluşturma adımında kaydettiğiniz HTTP tetikleyici düğümünün görev kimliği.


    cycleTime

    Kiracı B ortamı: HTTP tetikleyici düğüm iş akışı oluşturma adımında kaydettiğiniz tetikleme düğümü görevinin Scheduled Time değeri. Zaman biçimi yyyy-MM-dd HH:mm:ss şeklindedir.


    bizDate

    Kiracı B ortamı: HTTP tetikleyici düğüm iş akışı oluşturma adımında kaydettiğiniz tetikleme düğümü görevinin Business Date değeri. Zaman biçimi yyyy-MM-dd HH:mm:ss şeklindedir.

  3. Tetikleme shell düğümünü yapılandırın.

    Shell düğümü düzenleme sayfasının sağ tarafındaki Scheduling Settings bölümünde Resource Group > Resource Group for Scheduling yolunu izleyin ve bunu çalışma alanıyla ilişkili serverless kaynak grubuna ayarlayın.

Çalıştırma ve sonuçları görüntüleme

Kiracı B'deki HTTP tetikleyici düğümünü ve aşağı akış görevlerini tetiklemek için Kiracı A'daki shell düğümünü çalıştırın.

  1. Tetikleme shell düğümünü çalıştırın.

    Kiracı A ortamı: Bir shell düğümü yapılandırma adımında yapılandırdığınız shell düğümünün üzerindeki araç çubuğunda düğüm görevini çalıştırmak için image simgesine tıklayın.

  2. Yürütme sonuçlarını görüntüleyin.

    Kiracı B ortamına gidin ve yürütme sonuçlarını görüntülemek için aşağıdaki adımları izleyin.

    1. DataWorks konsolunda oturum açın. Hedef bölgede sol gezinme bölmesinden Data Development and O&M > Operation Center seçeneğine tıklayın. Açılan listeden bir çalışma alanı seçin ve Go to Operation Center öğesine tıklayın.

    2. Sol gezinme bölmesinde zamanlanmış örnek sayfasına gitmek için Auto Triggered Task O&M > Cycle Examples seçeneğine tıklayın.

    3. Tetkilemek istediğiniz HTTP tetikleyici düğüm örneğini bulun ve yürütme sonuçlarını görüntüleyin.