Node Shell mendukung sintaks shell standar tetapi tidak mendukung sintaks interaktif.
Batasan
Node Shell mendukung sintaks shell standar, namun tidak mendukung sintaks interaktif.
Tugas pada node Shell dapat dijalankan pada grup sumber daya tanpa server atau grup sumber daya eksklusif versi lama untuk penjadwalan. Kami menyarankan Anda menjalankan tugas pada grup sumber daya tanpa server. Untuk informasi lebih lanjut tentang cara membeli grup sumber daya tanpa server, lihat Buat dan gunakan grup sumber daya tanpa server.
CatatanSaat menjalankan tugas pada grup sumber daya tanpa server, satu tugas dapat dikonfigurasi hingga 64 CU. Namun, disarankan untuk menjaga pengaturan dalam 16 CU untuk menghindari kekurangan sumber daya potensial yang dapat memengaruhi startup tugas.
Node Shell yang dijalankan pada grup sumber daya tanpa server mungkin perlu mengakses sumber data yang memiliki daftar putih dikonfigurasi. Dalam hal ini, Anda harus menambahkan alamat IP elastis (EIP) atau blok CIDR yang diperlukan ke daftar putih sumber data.
Jangan memulai sejumlah besar subproses dalam node Shell. Jika Anda memulai sejumlah besar subproses dalam node Shell yang dijalankan pada grup sumber daya eksklusif untuk penjadwalan, node lain yang dijalankan pada grup sumber daya tersebut mungkin terpengaruh karena DataWorks tidak memberlakukan batasan pada penggunaan sumber daya untuk menjalankan node Shell.
Kode tugas pada node Shell tidak boleh melebihi ukuran 128 KB.
Jika Anda ingin menggunakan lingkungan pengembangan tertentu untuk mengembangkan tugas, Anda dapat membuat gambar kustom di konsol DataWorks. Untuk informasi lebih lanjut, lihat Kelola gambar.
Prasyarat
Sebuah alur kerja dibuat. Operasi pengembangan di berbagai jenis mesin komputasi dilakukan berdasarkan alur kerja di DataStudio. Oleh karena itu, sebelum Anda membuat node, Anda harus membuat alur kerja. Untuk informasi lebih lanjut, lihat Buat alur kerja.
Buat node Shell umum
Pergi ke halaman DataStudio.
Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi di sebelah kiri, pilih . Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Development.
Geser pointer di atas ikon
dan pilih . Di kotak dialog Create Node, konfigurasikan parameter Nama dan Jalur.Klik Confirm untuk membuat node.
Aktifkan node Shell untuk menggunakan sumber daya
Sebelum sebuah node dapat menggunakan sumber daya di DataWorks, Anda harus mengunggah sumber daya ke DataWorks dan mereferensikan sumber daya dalam lingkungan runtime node. Bagian ini menjelaskan prosedurnya.
Unggah sumber daya
DataWorks memungkinkan Anda membuat sumber daya atau mengunggah sumber daya yang ada. Anda dapat memilih metode berdasarkan antarmuka pengguna setiap jenis sumber daya.
Anda dapat membuat sumber daya MaxCompute dan EMR di konsol DataWorks. Untuk informasi lebih lanjut, lihat Buat dan gunakan sumber daya MaxCompute dan Buat dan gunakan sumber daya EMR.
Sumber daya harus dikomit sebelum sumber daya dapat direferensikan dalam sebuah node. Jika node dalam lingkungan produksi perlu menggunakan sumber daya ini, Anda juga perlu menerapkan sumber daya ke lingkungan produksi. Untuk informasi lebih lanjut, lihat Terapkan node.
Referensikan sumber daya dalam node
Untuk mengaktifkan node agar dapat menggunakan sumber daya, Anda harus mereferensikan sumber daya dalam node. Setelah sumber daya direferensikan, komentar @resource_reference{"Nama Sumber Daya"} ditampilkan di bagian atas kode node.
Prosedur:
Buka node Shell yang Anda buat dan pergi ke halaman pengeditan node.
Di panel Alur Kerja Terjadwal halaman DataStudio, temukan sumber daya yang Anda unggah.
Klik kanan sumber daya dan pilih Insert Resource Path untuk mereferensikan sumber daya dalam node saat ini.
Di halaman pengeditan node, Anda dapat menulis kode untuk menjalankan sumber daya.

Parameter penjadwalan yang digunakan oleh node Shell
Anda tidak diizinkan menyesuaikan nama variabel untuk node Shell umum. Variabel harus diberi nama berdasarkan nomor urutnya, seperti $1, $2, dan $3. Jika jumlah parameter mencapai atau melebihi 10, gunakan ${Nomor} untuk mendeklarasikan variabel tambahan. Misalnya, gunakan ${10} untuk mendeklarasikan variabel kesepuluh. Untuk informasi lebih lanjut tentang cara mengonfigurasi dan menggunakan parameter penjadwalan, lihat Konfigurasi dan penggunaan parameter penjadwalan. Untuk informasi lebih lanjut tentang metode untuk menetapkan nilai ke parameter penjadwalan, lihat Format yang didukung untuk parameter penjadwalan.
Dalam gambar sebelumnya, parameter kustom ditetapkan ke variabel kustom $1, $2, dan $3 di bagian Parameter, dan variabel kustom dirujuk di editor kode. Contoh:
$1: Tentukan $bizdate sebagai $1. Variabel ini digunakan untuk mendapatkan timestamp data. $bizdate adalah parameter bawaan.
$2: Tentukan ${yyyymmdd} sebagai $2. Variabel ini digunakan untuk mendapatkan timestamp data.
$3: Tentukan $[yyyymmdd] sebagai $3. Variabel ini digunakan untuk mendapatkan timestamp data.
Untuk node Shell umum, Anda hanya dapat menetapkan parameter kustom ke variabel kustom dengan menggunakan ekspresi. Parameter harus dipisahkan oleh spasi, dan nilai parameter harus sesuai dengan urutan definisi parameter. Misalnya, parameter pertama $bizdate yang Anda masukkan di bagian Parameter ditetapkan ke variabel pertama $1.
Bagaimana cara menentukan apakah skrip Shell kustom berhasil dijalankan?
Kode keluar dari skrip Shell kustom menentukan apakah skrip berhasil dijalankan. Kode keluar:
0: menunjukkan bahwa skrip Shell kustom berhasil dijalankan.
-1: menunjukkan bahwa skrip Shell kustom dihentikan.
2: menunjukkan bahwa skrip Shell kustom perlu dijalankan ulang secara otomatis.
Kode keluar lainnya: menunjukkan bahwa skrip Shell kustom gagal dijalankan.
Untuk skrip Shell, jika perintah pertama adalah perintah yang tidak valid, kesalahan akan dikembalikan. Jika perintah valid dijalankan setelah perintah yang tidak valid, skrip Shell dapat berhasil dijalankan. Contoh:
#! /bin/bash
curl http://xxxxx/asdasd
echo "nihao"Skrip Shell berhasil dijalankan karena skrip keluar seperti yang diharapkan.
Jika Anda mengubah skrip sebelumnya menjadi skrip berikut, hasil yang berbeda dikembalikan. Contoh:
#! /bin/bash
curl http://xxxxx/asdasd
if [[ $? == 0 ]];then
echo "curl success"
else
echo "failed"
exit 1
fi
echo "nihao"Dalam hal ini, skrip gagal dijalankan.
Gunakan skrip Shell untuk mengakses ossutil
Anda dapat menggunakan jalur instalasi default berikut jika ingin menginstal ossutil:
/home/admin/usertools/tools/ossutil64.
Untuk informasi tentang perintah umum dalam ossutil, lihat Perintah umum.
Anda dapat mengonfigurasi nama pengguna dan kata sandi yang digunakan untuk mengakses Object Storage Service (OSS) dalam file konfigurasi berdasarkan kebutuhan bisnis Anda. Kemudian, Anda dapat menggunakan Asisten O&M untuk mengunggah file konfigurasi ke direktori /home/admin/usertools/tools/myconfig.
[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_arnSintaks perintah:
#! /bin/bash
/home/admin/usertools/tools/ossutil64 --config-file /home/admin/usertools/tools/myconfig cp oss://bucket/object object
if [[ $? == 0 ]];then
echo "akses oss berhasil"
else
echo "gagal"
exit 1
fi
echo "selesai"Operasi selanjutnya
Jika node Shell perlu dijadwalkan secara berkala, Anda perlu menentukan properti penjadwalan untuk node Shell dan menerapkan node ke lingkungan produksi. Untuk informasi tentang cara mengonfigurasi properti penjadwalan untuk node, lihat Langkah 6: Konfigurasikan properti penjadwalan untuk tugas sinkronisasi batch. Untuk informasi tentang cara menerapkan node ke lingkungan produksi, lihat Terapkan node.
Referensi
Untuk informasi tentang cara menjalankan skrip Python pada node Shell menggunakan perintah Python 2 atau Python 3, lihat Gunakan node Shell untuk menjalankan skrip Python.