Membuat dan mengirimkan pekerjaan DAG.
Sintaks permintaan
POST /jobs
{
"Name": "testJob",
"Description": "Demo pekerjaan BatchCompute",
"JobFailOnInstanceFail": true,
"Priority": 1,
"Type": "DAG",
"AutoRelease": false,
"Notification": {
"Topic": {
"Name": "test-topic",
"Endpoint": "http://[UserId].mns.[Region].aliyuncs.com/",
"Events": [
"OnJobWaiting",
"OnJobRunning",
"OnJobStopped",
"OnJobFinished",
"OnJobFailed",
"OnTaskWaiting",
"OnTaskRunning",
"OnTaskStopped",
"OnTaskFinished",
"OnTaskFailed",
"OnInstanceWaiting",
"OnInstanceRunning",
"OnInstanceStopped",
"OnInstanceFinished",
"OnInstanceFailed",
"OnPriorityChange"
]
}
},
"DAG": {
"Dependencies": {},
"Tasks": {
"taskA": {
"AutoCluster": {
"Configs": {
"Disks": {
"DataDisk": {
"MountPoint": "/home/mydisk/",
"Size": 0,
"Type": "ephemeral"
},
"SystemDisk": {
"Size": 40,
"Type": "ephemeral"
}
},
"Mounts": {
"Entries": [
{
"Destination": "/home/admin/mount-dest",
"Source": "oss://your-bucket/mount-source",
"WriteSupport": true
}
],
"Locale": "GBK",
"Lock": false,
"CacheSupport": true,
"NAS": {
"AccessGroup": [
"group1",
"group2"
],
"FileSystem": [
"filesystem1",
"filesystem2"
]
},
"OSS": {
"AccessKeyId": "",
"AccessKeySecret": "",
"AccessSecurityToken": ""
}
},
"Networks": {
"Classic": {
"AllowIpAddress": [],
"AllowIpAddressEgress": [],
"AllowSecurityGroup": [],
"AllowSecurityGroupEgress": []
},
"VPC": {
"CidrBlock": "192.168.0.0/16"
}
}
},
"ECSImageId": "",
"ImageId": "img-ubuntu",
"InstanceType": "bcs.a2.large",
"ResourceType": "OnDemand",
"SpotStrategy": "SpotAsPriceGo",
"SpotPriceLimit": 0,0,
"UserData": {},
"ReserveOnFail": false
},
"ClusterId": "cls-6kir9pdp3lg6220g418002",
"InputMapping": {
"oss://bucket/tmp/": "/home/mount1/"
},
"InstanceCount": 1,
"LogMapping": {},
"MaxRetryCount": 0,
"OutputMapping": {
"/home/mount1": "oss://bucket/tmp/"
},
"Mounts": {
"Entries": [
{
"Destination": "/home/admin/mount-dest",
"Source": "oss://your-bucket/mount-source",
"WriteSupport": true
}
],
"Locale": "GBK",
"Lock": false,
"NAS": {
"AccessGroup": [
"group1",
"group2"
],
"FileSystem": [
"filesystem1",
"filesystem2"
]
},
"OSS": {
"AccessKeyId": "",
"AccessKeySecret": "",
"AccessSecurityToken": ""
}
},
"Parameters": {
"Command": {
"CommandLine": "python worker.py",
"EnvVars": {},
"PackagePath": "oss://bucket/tests/worker.tar.gz"
},
"InputMappingConfig": {
"Locale": "GBK",
"Lock": false
},
"StderrRedirectPath": "oss://bucket/tests/logs/",
"StdoutRedirectPath": "oss://bucket/tests/logs/"
},
"Timeout": 172800,
"WriteSupport": true
}
}
}
}Deskripsi atribut
Atribut | Tipe | Diperlukan atau Tidak | Deskripsi |
Nama | string | Ya | Nama dari sebuah pekerjaan. |
Deskripsi | string | Tidak | Deskripsi dari sebuah pekerjaan. |
Prioritas | int | Ya | Prioritas dari sebuah pekerjaan. Nilainya berkisar antara 0 hingga 1000. Prioritas meningkat seiring dengan nilai. |
Tipe | string | Ya | Saat ini, tugas hanya dapat dijelaskan dalam bentuk grafik asiklik terarah (DAG). |
JobFailOnInstanceFail | bool | Ya | Nilai True menunjukkan bahwa pekerjaan gagal ketika instance gagal. |
AutoRelease | bool | Tidak | Nilai True menunjukkan bahwa sistem secara otomatis menghapus pekerjaan setelah pekerjaan berhasil dijalankan. Nilai default: False |
Notifikasi | object | Tidak | Konfigurasi pesan notifikasi. |
DAG | object | Ya | Deskripsi dari DAG. |
Tugas | object | Ya | Deskripsi dari sebuah tugas. |
Parameter | object | Ya | Rincian tentang parameter tugas. |
Perintah | object | Ya | Parameter baris perintah yang terkait dengan program pengguna. |
CommandLine | String | Ya | Menentukan perintah untuk menjalankan program pengguna. CommandLine berbeda dari Shell. Ini hanya mendukung bentuk “interpreter + script”, misalnya, “python test.py” atau “sh test.sh.” |
PackagePath | string | Ya | Jalur OSS tempat program pengguna berada. |
EnvVars | string | Tidak | Variabel lingkungan untuk eksekusi program pengguna. |
InputMappingConfig | object | Tidak | Konfigurasi layanan pemasangan NFS. |
Locale | string | Tidak | Set karakter yang digunakan saat objek OSS dipasang ke server lokal. Nilai opsional termasuk GBK, GB2312-80, BIG5, ANSI, EUC-JP, EUC-TW, EUC-KR, SHIFT-JIS, dan KSC5601. |
Kunci | bool | Tidak | Menentukan apakah layanan pemasangan NFS mendukung penguncian file jaringan. |
StdoutRedirectPath | string | Ya | Direktori OSS tempat keluaran standar dialihkan. |
StderrRedirectPath | string | Ya | Direktori OSS tempat kesalahan standar dialihkan. |
InputMapping | object | Tidak | Pemetaan dari direktori OSS ke direktori lokal. |
OutputMapping | object | Tidak | Pemetaan dari direktori lokal ke direktori OSS. |
LogMapping | object | Tidak | Pemetaan dari jalur log lokal ke OSS. Direktori adalah “OSS” yang diakhiri dengan garis miring. Log OSS diberi nama dalam format {Nama log lokal}.{ID Pekerjaan}.{ID Tugas}.{ID Instance}, misalnya, output_log.job-0000000056A6E991000001780000000D.Echo.0. |
Timeout | int | Ya | Waktu eksekusi maksimum untuk sebuah instance. |
InstanceCount | int | Ya | Jumlah instance. |
MaxRetryCount | int | Tidak | Jumlah percobaan ulang maksimum. Nilai default: 0 |
ClusterId | string | Tidak | ID dari sebuah kluster. Salah satu dari parameter ini dan AutoCluster (kluster anonim) harus dipilih. |
AutoCluster | object | Tidak | Kluster anonim. Salah satu dari AutoCluster dan ClusterId harus valid dan hanya salah satunya yang berlaku. |
Dependencies | object | Tidak | Struktur objek dari dependensi antar tugas. Parameter kunci menunjukkan nama tugas sumber. Parameter nilai menunjukkan daftar nama tugas target dan dapat menggambarkan hubungan urutan satu-ke-banyak. |
AutoCluster
Atribut | Tipe | Diperlukan atau Tidak | Deskripsi |
ImageId | string | Tidak | ID dari citra BatchCompute. |
ECSImageId | string | Tidak | ID dari citra ECS. Nilainya harus merupakan ID yang valid dari citra ECS. Hanya salah satu dari ECSImageId dan ImageId yang dapat disetel ke nilai yang valid, dan yang lainnya harus dibiarkan kosong. |
InstanceType | string | Ya | Tipe instance untuk menyiapkan kluster. |
ResourceType | String | Tidak | Tipe sumber daya. “OnDemand” dan “Spot” didukung. |
SpotStrategy | String | Tidak | Strategi penawaran untuk instance. Berlaku hanya jika ResourceType adalah Spot.Nilai:SpotWithPriceLimit: Tetapkan harga maksimum untuk instance spot.SpotAsPriceGo: Sistem memberikan harga secara otomatis. Nilai maksimumnya adalah harga Pay-As-You-Go. |
SpotPriceLimit | Float | Tidak | Harga maksimum instance per jam (harga setiap jenis instance, bukan harga per jam).Nilai tersebut dapat mencakup hingga tiga desimal. Berlaku saat SpotStrategy adalah SpotWithPriceLimit. |
UserData | object | Tidak | Pemetaan Key-Value. Ini ditentukan oleh pengguna dan dapat diperoleh menggunakan metaserver dari ECS. |
Configs | object | Tidak | Konfigurasi kluster. |
ReserveOnFail | Bool | Tidak | Saat tugas gagal, VM terkait tidak dilepaskan, dan biaya untuk sumber daya ini masih dikenakan sampai pengguna menghapus pekerjaan. Nilai default adalah False. Digunakan hanya dalam survei. |
Respon
Sukses
Kode status 201 dan ID pekerjaan berikut dikembalikan:
{
"Id":"job-xxx"
}Deskripsi atribut
Atribut | Tipe | Deskripsi |
Id | string | ID dari sebuah pekerjaan. |
Kode kesalahan
IdempotentTokenMismatch | Token idempoten yang ditentukan tidak cocok. | 400 | Token telah digunakan dan berbeda dari permintaan sebelumnya. |
Invalid{Parameter} | Parameter {Parameter} yang ditentukan tidak valid. | 400 | Parameter {Parameter} tidak valid. |
InvalidClusterId | Parameter ClusterId yang ditentukan tidak valid. Jenisnya harus string. | 400 | ClusterId harus berupa string. |
InvalidClusterId | Parameter ClusterId yang ditentukan tidak valid. Panjangnya harus dalam [1, 64]. | 400 | Panjang ClusterId harus dalam rentang [1, 64]. |
InvalidClusterId | Parameter ClusterId yang ditentukan tidak valid. Hanya boleh berisi karakter dalam [a-zA-Z0-9-], dan tidak boleh dimulai dengan [0-9]. | 400 | ClusterId hanya boleh berisi huruf, angka, garis bawah (_), dan tanda hubung (-), serta tidak boleh dimulai dengan angka. |
InvalidCommand | Parameter Command yang ditentukan tidak valid. Jenisnya harus object. | 400 | Command harus berupa objek. |
InvalidCommandLine | Parameter CommandLine yang ditentukan tidak valid. Jenisnya harus string. | 400 | CommandLine harus berupa string. |
InvalidCommandLine | Parameter CommandLine yang ditentukan tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang CommandLine harus dalam rentang [0, 1024]. |
InvalidDAG | Parameter DAG yang ditentukan tidak valid. Jenisnya harus object. | 400 | DAG harus berupa objek. |
InvalidDependencies | Parameter Dependencies yang ditentukan tidak valid. Jenisnya harus object. | 400 | Dependencies harus berupa objek. |
InvalidDependencies.{key}.value | Parameter Dependencies.{key}.value tidak valid. Jenisnya harus array. | 400 | Nilai dari Dependencies.{key} harus berupa array. |
InvalidDescription | Parameter Description yang ditentukan tidak valid. Jenisnya harus string. | 400 | Description harus berupa string. |
InvalidDescription | Parameter Description yang ditentukan tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang Description harus dalam rentang [0, 1024]. |
InvalidEnvVars | Parameter EnvVars yang ditentukan tidak valid. Jenisnya harus object. | 400 | EnvVars harus berupa objek. |
InvalidEnvVars | Parameter EnvVars yang ditentukan tidak valid. Ukurannya harus dalam [0, 64]. | 400 | Nilai EnvVars harus dalam rentang [0, 64]. |
InvalidEnvVars.{key} | Parameter EnvVars.{key} tidak valid. Panjangnya harus dalam [1, 128]. | 400 | Ukuran EnvVars.{key} harus dalam rentang [1, 128]. |
InvalidEnvVars.{key}.value | Parameter EnvVars.{key}.value tidak valid. Jenisnya harus string. | 400 | Nilai EnvVars.{key} harus berupa string. |
InvalidEnvVars.{key}.value | Parameter EnvVars.{key}.value tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang EnvVars.{key} harus dalam rentang [0, 1024]. |
InvalidHttpBody | Parameter HttpBody yang ditentukan tidak valid. Jenisnya harus object. | 400 | Http Body harus berupa objek. |
InvalidInputMapping | Parameter InputMapping yang ditentukan tidak valid. Jenisnya harus object. | 400 | InputMapping harus berupa objek. |
InvalidInputMapping | Parameter InputMapping yang ditentukan tidak valid. Ukurannya harus dalam [0, 16]. | 400 | Jumlah kunci dalam InputMapping harus dalam rentang [0, 16]. |
InvalidInputMapping.{key} | Parameter InputMapping.{key} tidak valid. Panjangnya harus dalam [1, 1024]. | 400 | Panjang InputMapping.{key} harus dalam rentang [1, 1024]. |
InvalidInputMapping.{key} | Parameter InputMapping.{key} tidak valid. Jalur OSS harus dimulai dengan ‘oss://‘, harus diakhiri dengan ‘/‘ jika itu adalah folder, dan tidak boleh diakhiri dengan ‘/‘ jika itu adalah file. | 400 | InputMapping.{key} harus berupa jalur OSS yang valid. |
InvalidInputMapping.{key}.value | Parameter InputMapping.{key}.value tidak valid. Jenisnya harus string. | 400 | Nilai InputMapping.{key} harus berupa string. |
InvalidInputMapping.{key}.value | Parameter InputMapping.{key}.value tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang InputMapping.{key} harus dalam rentang [0, 1024]. |
InvalidInputMapping.{key}.value | Parameter InputMapping.{key}.value tidak valid. Jalur lokal harus berupa jalur absolut pada Linux, dan huruf drive pada Windows. | 400 | InputMapping.{key} harus berupa jalur lokal yang valid. |
InvalidInputMappingConfig | Parameter InputMappingConfig yang ditentukan tidak valid. Jenisnya harus object. | 400 | InputMappingConfig harus berupa objek. |
InvalidInstanceCount | Parameter InstanceCount yang ditentukan tidak valid. Jenisnya harus integer. | 400 | InstanceCount harus berupa integer. |
InvalidJobFailOnInstanceFail | Parameter JobFailOnInstanceFail yang ditentukan tidak valid. Jenisnya harus boolean. | 400 | JobFailOnInstanceFail harus berupa nilai boolean. |
InvalidJsonFormat | Badan permintaan memiliki format json yang tidak valid. | 400 | Badan permintaan memiliki format JSON yang tidak valid. |
InvalidLocale | Parameter Locale yang ditentukan tidak valid. | 400 | Nilai Locale tidak valid. |
InvalidLock | Parameter Lock yang ditentukan tidak valid. Jenisnya harus boolean. | 400 | Lock harus berupa nilai boolean. |
InvalidLogMapping | Parameter LogMapping yang ditentukan tidak valid. Jenisnya harus object. | 400 | LogMapping harus berupa objek. |
InvalidLogMapping | Parameter LogMapping yang ditentukan tidak valid. Ukurannya harus dalam [0, 16]. | 400 | Jumlah kunci dalam LogMapping harus dalam rentang [0, 16]. |
InvalidLogMapping.{key} | Parameter LogMapping.{key} tidak valid. Panjangnya harus dalam [1, 1024]. | 400 | Panjang LogMapping.{key} harus dalam rentang [1, 1024]. |
InvalidLogMapping.{key} | Parameter LogMapping.{key} tidak valid. Jalur lokal harus berupa jalur absolut. | 400 | LogMapping.{key} harus berupa jalur lokal yang valid. |
InvalidLogMapping.{key}.value | Parameter LogMapping.{key}.value tidak valid. Jenisnya harus string. | 400 | Nilai LogMapping.{key} harus berupa string. |
InvalidLogMapping.{key}.value | Parameter LogMapping.{key}.value tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang LogMapping.{key} harus dalam rentang [0, 1024]. |
InvalidLogMapping.{key}.value | Parameter LogMapping.{key}.value tidak valid. Jalur OSS harus dimulai dengan ‘oss://‘, harus diakhiri dengan ‘/‘ jika itu adalah folder, dan tidak boleh diakhiri dengan ‘/‘ jika itu adalah file. | 400 | Panjang LogMapping.{key} harus dalam rentang [1, 1024]. |
InvalidMaxRetryCount | Parameter MaxRetryCount yang ditentukan tidak valid. Jenisnya harus integer. | 400 | MaxRetryCount harus berupa integer. |
InvalidName | Parameter Name yang ditentukan tidak valid. Jenisnya harus string. | 400 | Name harus berupa string. |
InvalidName | Parameter Name yang ditentukan tidak valid. Panjangnya harus dalam [1, 64]. | 400 | Panjang Name harus dalam rentang [1, 64]. |
InvalidName | Parameter Name yang ditentukan tidak valid. Hanya boleh berisi karakter dalam [a-zA-Z0-9-], dan tidak boleh dimulai dengan [0-9]. | 400 | Name hanya boleh berisi huruf, angka, garis bawah, dan tanda hubung, serta tidak boleh dimulai dengan angka. |
InvalidOutputMapping | Parameter OutputMapping yang ditentukan tidak valid. Jenisnya harus object. | 400 | OutputMapping harus berupa objek. |
InvalidOutputMapping | Parameter OutputMapping yang ditentukan tidak valid. Ukurannya harus dalam [0, 16]. | 400 | Jumlah kunci dalam OutputMapping harus dalam rentang [0, 16]. |
InvalidOutputMapping.{key} | Parameter OutputMapping.{key} tidak valid. Panjangnya harus dalam [1, 1024]. | 400 | Panjang OutputMapping.{key} harus dalam rentang [1, 1024]. |
InvalidOutputMapping.{key} | Parameter OutputMapping.{key} tidak valid. Jalur lokal harus berupa jalur absolut. | 400 | OutputMapping.{key} harus berupa jalur lokal yang valid. |
InvalidOutputMapping.{key}.value | Parameter OutputMapping.{key}.value tidak valid. Jenisnya harus string. | 400 | Nilai OutputMapping.{key} harus berupa string. |
InvalidOutputMapping.{key}.value | Parameter OutputMapping.{key}.value tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang OutputMapping.{key} harus dalam rentang [0, 1024]. |
InvalidOutputMapping.{key}.value | Parameter OutputMapping.{key}.value tidak valid. Jalur OSS harus dimulai dengan ‘oss://‘, harus diakhiri dengan ‘/‘ jika itu adalah folder, dan tidak boleh diakhiri dengan ‘/‘ jika itu adalah file. | 400 | Panjang OutputMapping.{key} harus dalam rentang [1, 1024]. |
InvalidPackagePath | Parameter PackagePath yang ditentukan tidak valid. Jenisnya harus string. | 400 | PackagePath harus berupa string. |
InvalidPackagePath | Parameter PackagePath yang ditentukan tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang PackagePath harus dalam rentang [0, 1024]. |
InvalidPackagePath | Parameter PackagePath yang ditentukan tidak valid. Jalur OSS harus dimulai dengan ‘oss://‘, harus diakhiri dengan ‘/‘ jika itu adalah folder, dan tidak boleh diakhiri dengan ‘/‘ jika itu adalah file. | 400 | PackagePath harus berupa jalur OSS yang valid. |
InvalidParameters | Parameter Parameters yang ditentukan tidak valid. Jenisnya harus object. | 400 | Parameters harus berupa objek. |
InvalidPriority | Parameter Priority yang ditentukan tidak valid. Jenisnya harus integer. | 400 | Priority harus berupa integer. |
InvalidPriority | Parameter Priority yang ditentukan tidak valid. Harus dalam [0, 1000]. | 400 | Nilai Priority harus dalam rentang [0, 1000]. |
InvalidStderrRedirectPath | Parameter StderrRedirectPath yang ditentukan tidak valid. Jenisnya harus string. | 400 | StderrRedirectPath harus berupa string. |
InvalidStderrRedirectPath | Parameter StderrRedirectPath yang ditentukan tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang StderrRedirectPath harus dalam rentang [0, 1024]. |
InvalidStderrRedirectPath | Parameter StderrRedirectPath yang ditentukan tidak valid. Jalur OSS harus dimulai dengan ‘oss://‘, harus diakhiri dengan ‘/‘ jika itu adalah folder, dan tidak boleh diakhiri dengan ‘/‘ jika itu adalah file. | 400 | StderrRedirectPath harus berupa jalur OSS yang valid. |
InvalidStdoutRedirectPath | Parameter StdoutRedirectPath yang ditentukan tidak valid. Jenisnya harus string. | 400 | StdoutRedirectPath harus berupa string. |
InvalidStdoutRedirectPath | Parameter StdoutRedirectPath yang ditentukan tidak valid. Panjangnya harus dalam [0, 1024]. | 400 | Panjang StdoutRedirectPath harus dalam rentang [0, 1024]. |
InvalidStdoutRedirectPath | Parameter StdoutRedirectPath yang ditentukan tidak valid. Jalur OSS harus dimulai dengan ‘oss://‘, harus diakhiri dengan ‘/‘ jika itu adalah folder, dan tidak boleh diakhiri dengan ‘/‘ jika itu adalah file. | 400 | StdoutRedirectPath harus berupa jalur OSS yang valid. |
InvalidTasks | Parameter Tasks yang ditentukan tidak valid. Jenisnya harus object. | 400 | Tasks harus berupa objek. |
InvalidTasks | Parameter Tasks yang ditentukan tidak valid. Ukurannya harus dalam [1, 16]. | 400 | Ukuran UserData harus dalam rentang [1, 16]. |
InvalidTasks.{key} | Parameter Tasks.{key} tidak valid. Panjangnya harus dalam [1, 64]. | 400 | Panjang Tasks.{key} harus dalam rentang [1, 64]. |
InvalidTasks.{key} | Parameter Tasks.{key} tidak valid. Hanya boleh berisi karakter dalam [a-zA-Z0-9-], dan tidak boleh dimulai dengan [0-9].. | 400 | Tasks.{key} dapat berisi huruf, angka, garis bawah (_), dan tanda hubung (-), serta tidak boleh dimulai dengan angka. |
InvalidTimeout | Parameter Timeout yang ditentukan tidak valid. Jenisnya harus integer. | 400 | Timeout harus berupa integer. |
InvalidType | Parameter Type yang ditentukan tidak valid. | 400 | Nilai Type tidak valid. |
MissingClusterId | ClusterId wajib untuk tindakan ini. | 400 | Parameter ClusterId hilang. |
MissingCommand | Command wajib untuk tindakan ini. | 400 | Parameter Command hilang. |
MissingCommandLine | CommandLine wajib untuk tindakan ini. | 400 | Parameter CommandLine hilang. |
MissingDAG | DAG wajib untuk tindakan ini. | 400 | Parameter DAG hilang. |
MissingInstanceCount | InstanceCount wajib untuk tindakan ini. | 400 | Parameter InstanceCount hilang. |
MissingName | Name wajib untuk tindakan ini. | 400 | Parameter Name hilang. |
MissingParameters | Parameters wajib untuk tindakan ini. | 400 | Parameter Parameters hilang. |
MissingTasks | Tasks wajib untuk tindakan ini. | 400 | Parameter Tasks hilang. |
MissingType | Type wajib untuk tindakan ini. | 400 | Parameter Type hilang. |
QuotaExhausted.MaxInstanceTimeout | Kuota MaxInstanceTimeout ({value}) telah habis. | 403 | Timeout instance tidak boleh melebihi {value}. |
QuotaExhausted.MaxJobCount | Kuota MaxJobCount ({value}) telah habis. | 403 | Jumlah pekerjaan tidak boleh melebihi {value}. |
QuotaExhausted.MaxJobTaskCount | Kuota MaxJobTaskCount ({value}) telah habis. | 403 | Jumlah tugas dalam sebuah pekerjaan tidak boleh melebihi {value}. |
QuotaExhausted.MaxTaskInstanceCount | Kuota MaxTaskInstanceCount ({value}) telah habis. | 403 | InstanceCount dari sebuah tugas tidak boleh melebihi {value}. |