All Products
Search
Document Center

DataWorks:Node Shell

Last Updated:Mar 27, 2026

Node Shell menjalankan skrip shell standar sebagai tugas terjadwal di DataWorks DataStudio.

Batasan

Batasan Detail
Sintaksis Hanya mendukung sintaksis shell standar; sintaksis interaktif tidak didukung.
Ukuran kode Kode node tidak boleh melebihi 128 KB.
Subproses Hindari memulai sejumlah besar subproses. Pada kelompok sumber daya eksklusif untuk penjadwalan, DataWorks tidak membatasi penggunaan sumber daya untuk node Shell, sehingga subproses berlebihan dapat memengaruhi node lain dalam kelompok yang sama.
Kelompok sumber daya Dapat dijalankan pada kelompok sumber daya arsitektur tanpa server atau kelompok sumber daya eksklusif versi lama untuk penjadwalan. Untuk manajemen sumber daya yang lebih baik, jalankan tugas pada kelompok sumber daya arsitektur tanpa server.
Batas CU pada arsitektur tanpa server Satu tugas mendukung hingga 64 compute units (CUs). Pertahankan pengaturan dalam batas 16 CUs untuk menghindari kekurangan sumber daya yang menunda startup tugas.
Akses daftar putih Jika node Shell pada kelompok sumber daya arsitektur tanpa server perlu mengakses sumber data yang memiliki daftar putih, tambahkan alamat IP elastis (EIP) atau Blok CIDR yang diperlukan ke daftar putih sumber data tersebut. Lihat Gunakan kelompok sumber daya arsitektur tanpa server
Catatan Untuk menggunakan lingkungan pengembangan tertentu untuk tugas node Shell, buat custom image di konsol DataWorks. Lihat Custom images.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Membuat workflow. Operasi pengembangan DataStudio berbasis pada workflow. Lihat Buat workflow.

Buat node Shell umum

  1. Buka halaman DataStudio. Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi kiri, pilih Data Development and O\&M > Data Development. Pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Development.

  2. Klik Confirm.

Gunakan resource dalam node Shell

Node Shell dapat mereferensikan file resource yang diunggah dan menjalankannya sebagai bagian dari tugas.

Unggah resource

Unggah resource ke DataWorks sebelum mereferensikannya. DataWorks mendukung pembuatan dan pengunggahan resource MaxCompute dan E-MapReduce (EMR):

Catatan Komit resource sebelum mereferensikannya di node. Jika lingkungan produksi juga memerlukan resource tersebut, deploy ke produksi. Lihat Publish tasks.

Referensikan resource di node

Setelah diunggah, referensikan resource tersebut di node Shell agar tugas dapat menggunakannya. Setelah direferensikan, komentar @resource_reference{"Resource name"} muncul di bagian atas kode node.

  1. Buka node Shell untuk masuk ke halaman pengeditan node.

  2. Di panel Scheduled Workflow, temukan resource yang telah Anda unggah.

  3. Klik kanan resource tersebut dan pilih Insert Resource Path.

使用资源

Tulis kode di editor untuk menjalankan resource yang direferensikan.

Konfigurasikan parameter penjadwalan

Node Shell menggunakan variabel posisional: $1, $2, $3, dan seterusnya. Untuk parameter kesepuluh atau lebih tinggi, gunakan format ${Number} — misalnya, ${10}.

Format variabel Penggunaan
$1, $2, $3 Variabel posisional untuk parameter pertama hingga kesembilan
${10}, ${11} Variabel posisional untuk parameter kesepuluh dan seterusnya

Di bagian Parameters, tetapkan nilai ke variabel secara berurutan menggunakan ekspresi, dipisahkan dengan spasi. Nilai pertama diberikan ke $1, nilai kedua ke $2, dan seterusnya.

配置参数

Contoh di atas memberikan tiga parameter ke $1, $2, dan $3, semuanya digunakan untuk memperoleh waktu data:

  • $1: diberi nilai $bizdate, parameter bawaan yang mengembalikan tanggal bisnis.

  • $2: diberi nilai ${yyyymmdd}, ekspresi format tanggal.

  • $3: diberi nilai $[yyyymmdd], ekspresi format tanggal lainnya.

Untuk detail tentang konfigurasi dan penggunaan parameter penjadwalan, lihat Konfigurasikan dan gunakan parameter penjadwalan dan Format yang didukung untuk parameter penjadwalan.

Tentukan apakah skrip Shell berhasil

DataWorks menggunakan exit code dari skrip shell untuk menentukan hasil tugas.

Exit code Hasil
0 Skrip berhasil dijalankan
-1 Skrip dihentikan
2 Skrip perlu dijalankan ulang secara otomatis
Kode lainnya Skrip gagal

Untuk skrip Shell, jika perintah pertama adalah perintah tidak valid, error akan dikembalikan. Namun, jika perintah valid dijalankan setelah perintah tidak valid tersebut, skrip Shell dapat berhasil dijalankan.

Contoh: skrip berhasil meskipun perintah pertama tidak valid

#!/bin/bash
curl http://xxxxx/asdasd   # Perintah tidak valid — gagal diam-diam
echo "nihao"               # Perintah valid — keluar dengan kode 0

Skrip ini keluar dengan sukses karena skrip berakhir seperti yang diharapkan.

Contoh: skrip gagal karena exit eksplisit

#!/bin/bash
curl http://xxxxx/asdasd
if [[ $? == 0 ]]; then
    echo "curl success"
else
    echo "failed"
    exit 1                 # Exit eksplisit dengan kode 1 — tugas gagal
fi
echo "nihao"

Skrip ini gagal karena exit 1 dijalankan sebelum echo terakhir.

Akses OSS dengan ossutil

Gunakan pola ini untuk membaca dari dan menulis ke bucket Object Storage Service (OSS) langsung dari tugas node Shell.

Jalur instalasi default: /home/admin/usertools/tools/ossutil64

Untuk mengautentikasi ke OSS, buat file konfigurasi dan unggah menggunakan O\&M Assistant ke /home/admin/usertools/tools/myconfig. Format file konfigurasi:

[Credentials]
        language = CH
        endpoint = oss.aliyuncs.com
        accessKeyID = <your-accesskey-id>
        accessKeySecret = <your-accesskey-secret>
        stsToken = <your-sts-token>
        outputDir = <your-output-dir>
        ramRoleArn = <your-ram-role-arn>

Ganti placeholder dengan nilai aktual Anda:

Placeholder Deskripsi
<your-accesskey-id> ID AccessKey Anda
<your-accesskey-secret> Rahasia AccessKey Anda
<your-sts-token> Token Security Token Service (STS) (wajib hanya saat menggunakan kredensial temporary)
<your-output-dir> Direktori lokal untuk output ossutil
<your-ram-role-arn> ARN peran Resource Access Management (RAM) (wajib hanya saat menggunakan akses berbasis peran)

Contoh: salin objek dari OSS

#!/bin/bash
/home/admin/usertools/tools/ossutil64 --config-file /home/admin/usertools/tools/myconfig \
    cp oss://bucket/object object
if [[ $? == 0 ]]; then
    echo "access oss success"
else
    echo "failed"
    exit 1
fi
echo "finished"

Untuk daftar lengkap perintah ossutil, lihat Perintah umum.

Langkah selanjutnya

Untuk menjalankan node Shell sesuai jadwal, konfigurasikan properti penjadwalannya dan deploy ke lingkungan produksi. Lihat Langkah 6: Konfigurasikan properti penjadwalan dan Publish tasks.

Topik terkait