DAG ジョブを作成して送信します。
リクエスト構文
POST /jobs
{
"Name": "testJob",
"Description": "BatchCompute demo job",
"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
}
}
}
}
属性の説明
属性 | タイプ | 必須かどうか | 説明 |
Name | string | はい | ジョブの名前。 |
Description | string | いいえ | ジョブの説明。 |
Priority | int | はい | ジョブの優先度。値の範囲は 0 から 1000 です。値が大きいほど優先度が高くなります。 |
Type | string | はい | 現在、タスクは有向非巡回グラフ (DAG) の形式でのみ記述できます。 |
JobFailOnInstanceFail | bool | はい | 値 True は、インスタンスが失敗した場合にジョブが失敗することを示します。 |
AutoRelease | bool | いいえ | 値 True は、ジョブが正常に実行された後、システムがジョブを自動的に削除することを示します。デフォルト値: False |
Notification | object | いいえ | 通知メッセージの設定。 |
DAG | object | はい | DAG の説明。 |
Tasks | object | はい | タスクの説明。 |
Parameters | object | はい | タスクパラメータの詳細。 |
Command | object | はい | ユーザープログラムに関連するコマンドラインパラメータ。 |
CommandLine | String | はい | ユーザープログラムを実行するためのコマンドを指定します。CommandLine は Shell とは異なり、「インタプリタ + スクリプト」の形式(例: 「python test.py」または「sh test.sh」)のみをサポートします。 |
PackagePath | string | はい | ユーザープログラムが存在する OSS パス。 |
EnvVars | string | いいえ | ユーザープログラムの実行のための環境変数。 |
InputMappingConfig | object | いいえ | NFS マウントサービスの設定。 |
Locale | string | いいえ | OSS オブジェクトがローカルサーバーにマウントされるときに使用される文字セット。オプションの値には、GBK、GB2312-80、BIG5、ANSI、EUC-JP、EUC-TW、EUC-KR、SHIFT-JIS、KSC5601 などがあります。 |
Lock | bool | いいえ | NFS マウントサービスがネットワークファイルのロックをサポートするかどうかを指定します。 |
StdoutRedirectPath | string | はい | 標準出力がリダイレクトされる OSS ディレクトリ。 |
StderrRedirectPath | string | はい | 標準エラーがリダイレクトされる OSS ディレクトリ。 |
InputMapping | object | いいえ | OSS ディレクトリからローカルディレクトリへのマッピング。 |
OutputMapping | object | いいえ | ローカルディレクトリから OSS ディレクトリへのマッピング。 |
LogMapping | object | いいえ | ローカルログパスから OSS へのマッピング。ディレクトリはスラッシュで終わる「OSS」です。OSS ログの名前は {ローカルログ名}.{ジョブ ID}.{タスク ID}.{インスタンス ID} の形式で付けられます(例: output_log.job-0000000056A6E991000001780000000D.Echo.0)。 |
Timeout | int | はい | インスタンスの最大実行時間。 |
InstanceCount | int | はい | インスタンスの数。 |
MaxRetryCount | int | いいえ | 最大再試行回数。デフォルト値: 0 |
ClusterId | string | いいえ | クラスタの ID。このパラメータと AutoCluster(匿名クラスタ)のいずれかを選択する必要があります。 |
AutoCluster | object | いいえ | 匿名クラスタ。AutoCluster と ClusterId のいずれかが有効である必要があり、どちらか一方のみが有効になります。 |
Dependencies | object | いいえ | タスク間の依存関係のオブジェクト構造。キーパラメータはソースタスクの名前を示します。値パラメータはターゲットタスク名の一覧を示し、1 対多の順序付けられた関係を記述できます。 |
AutoCluster
属性 | タイプ | 必須かどうか | 説明 |
ImageId | string | いいえ | BatchCompute イメージの ID。 |
ECSImageId | string | いいえ | ECS イメージの ID。値は有効な ECS イメージ ID である必要があります。ECSImageId と ImageId のいずれか一方のみを有効な値に設定でき、もう一方は空白のままにする必要があります。 |
InstanceType | string | はい | クラスタを設定するためのインスタンスタイプ。 |
ResourceType | String | いいえ | リソースタイプ。「OnDemand」と「Spot」がサポートされています。 |
SpotStrategy | String | いいえ | インスタンスの入札戦略。ResourceType が Spot の場合にのみ有効になります。値:SpotWithPriceLimit: スポットインスタンスの最大価格を設定します。SpotAsPriceGo: システムが価格を自動的に提供します。最大値は従量課金制の価格です。 |
SpotPriceLimit | Float | いいえ | インスタンスの 1 時間あたりの最大価格(各タイプのインスタンスの価格であり、1 時間ごとの価格ではありません)。値には最大で 3 つの小数を含めることができます。SpotStrategy が SpotWithPriceLimit の場合に有効になります。 |
UserData | object | いいえ | キーと値のマッピング。ユーザー定義であり、ECS のメタサーバーを使用して取得できます。 |
Configs | object | いいえ | クラスタ設定。 |
ReserveOnFail | Bool | いいえ | タスクが失敗した場合、関連する VM は解放されず、ユーザーがジョブを削除するまでこれらのリソースの料金が引き続き課金されます。デフォルト値は False です。調査でのみ使用されます。 |
レスポンス
成功
201 ステータスコードと次のジョブ ID が返されます。
{
"Id":"job-xxx"
}
属性の説明
属性 | タイプ | 説明 |
Id | string | ジョブの ID。 |
エラーコード
IdempotentTokenMismatch | 指定された冪等トークンが一致しません。 | 400 | トークンはすでに使用されており、以前のリクエストのトークンとは異なります。 |
Invalid{Parameter} | 指定されたパラメータ {Parameter} が無効です。 | 400 | {Parameter} パラメータが無効です。 |
InvalidClusterId | 指定されたパラメータ ClusterId が無効です。タイプは string である必要があります。 | 400 | ClusterId は文字列である必要があります。 |
InvalidClusterId | 指定されたパラメータ ClusterId が無効です。長さは [1, 64] の範囲内である必要があります。 | 400 | ClusterId の長さは [1, 64] の範囲内である必要があります。 |
InvalidClusterId | 指定されたパラメータ ClusterId が無効です。[a-zA-Z0-9-] 内の文字のみを含める必要があり、[0-9] で始めることはできません。 | 400 | ClusterId には文字、数字、アンダースコア(_)、ハイフン(-)のみを含めることができ、数字で始めることはできません。 |
InvalidCommand | 指定されたパラメータ Command が無効です。タイプは object である必要があります。 | 400 | Command はオブジェクトである必要があります。 |
InvalidCommandLine | 指定されたパラメータ CommandLine が無効です。タイプは string である必要があります。 | 400 | CommandLine は文字列である必要があります。 |
InvalidCommandLine | 指定されたパラメータ CommandLine が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | CommandLine の長さは [0, 1024] の範囲内である必要があります。 |
InvalidDAG | 指定されたパラメータ DAG が無効です。タイプは object である必要があります。 | 400 | DAG はオブジェクトである必要があります。 |
InvalidDependencies | 指定されたパラメータ Dependencies が無効です。タイプは object である必要があります。 | 400 | Dependencies はオブジェクトである必要があります。 |
InvalidDependencies.{key}.value | 指定されたパラメータ Dependencies.{key}.value が無効です。タイプは array である必要があります。 | 400 | Dependencies.{key} の値は配列である必要があります。 |
InvalidDescription | 指定されたパラメータ Description が無効です。タイプは string である必要があります。 | 400 | Description は文字列である必要があります。 |
InvalidDescription | 指定されたパラメータ Description が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | Description の長さは [0, 1024] の範囲内である必要があります。 |
InvalidEnvVars | 指定されたパラメータ EnvVars が無効です。タイプは object である必要があります。 | 400 | EnvVars はオブジェクトである必要があります。 |
InvalidEnvVars | 指定されたパラメータ EnvVars が無効です。サイズは [0, 64] の範囲内である必要があります。 | 400 | EnvVars の値は [0, 64] の範囲内である必要があります。 |
InvalidEnvVars.{key} | 指定されたパラメータ EnvVars.{key} が無効です。長さは [1, 128] の範囲内である必要があります。 | 400 | EnvVars.{key} のサイズは [1, 128] の範囲内である必要があります。 |
InvalidEnvVars.{key}.value | 指定されたパラメータ EnvVars.{key}.value が無効です。タイプは string である必要があります。 | 400 | EnvVars.{key} の値は文字列である必要があります。 |
InvalidEnvVars.{key}.value | 指定されたパラメータ EnvVars.{key}.value が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | EnvVars.{key} の長さは [0, 1024] の範囲内である必要があります。 |
InvalidHttpBody | 指定されたパラメータ HttpBody が無効です。タイプは object である必要があります。 | 400 | Http Body はオブジェクトである必要があります。 |
InvalidInputMapping | 指定されたパラメータ InputMapping が無効です。タイプは object である必要があります。 | 400 | InputMapping はオブジェクトである必要があります。 |
InvalidInputMapping | 指定されたパラメータ InputMapping が無効です。サイズは [0, 16] の範囲内である必要があります。 | 400 | InputMapping のキーの数は [0, 16] の範囲内である必要があります。 |
InvalidInputMapping.{key} | 指定されたパラメータ InputMapping.{key} が無効です。長さは [1, 1024] の範囲内である必要があります。 | 400 | InputMapping.{key} の長さは [1, 1024] の範囲内である必要があります。 |
InvalidInputMapping.{key} | 指定されたパラメータ InputMapping.{key} が無効です。OSS パスは「oss://」で始まり、フォルダの場合は「/」で終わり、ファイルの場合は「/」で終わってはいけません。 | 400 | InputMapping.{key} は有効な OSS パスである必要があります。 |
InvalidInputMapping.{key}.value | 指定されたパラメータ InputMapping.{key}.value が無効です。タイプは string である必要があります。 | 400 | InputMapping.{key} の値は文字列である必要があります。 |
InvalidInputMapping.{key}.value | 指定されたパラメータ InputMapping.{key}.value が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | InputMapping.{key} の長さは [0, 1024] の範囲内である必要があります。 |
InvalidInputMapping.{key}.value | 指定されたパラメータ InputMapping.{key}.value が無効です。ローカルパスは Linux では絶対パス、Windows ではドライブ文字である必要があります。 | 400 | InputMapping.{key} は有効なローカルパスである必要があります。 |
InvalidInputMappingConfig | 指定されたパラメータ InputMappingConfig が無効です。タイプは object である必要があります。 | 400 | InputMappingConfig はオブジェクトである必要があります。 |
InvalidInstanceCount | 指定されたパラメータ InstanceCount が無効です。タイプは integer である必要があります。 | 400 | InstanceCount は整数である必要があります。 |
InvalidJobFailOnInstanceFail | 指定されたパラメータ JobFailOnInstanceFail が無効です。タイプは boolean である必要があります。 | 400 | JobFailOnInstanceFail はブール値である必要があります。 |
InvalidJsonFormat | リクエスト本文の JSON 形式が無効です。 | 400 | リクエスト本文の JSON 形式が無効です。 |
InvalidLocale | 指定されたパラメータ Locale が無効です。 | 400 | Locale の値が無効です。 |
InvalidLock | 指定されたパラメータ Lock が無効です。タイプは boolean である必要があります。 | 400 | Lock はブール値である必要があります。 |
InvalidLogMapping | 指定されたパラメータ LogMapping が無効です。タイプは object である必要があります。 | 400 | LogMapping はオブジェクトである必要があります。 |
InvalidLogMapping | 指定されたパラメータ LogMapping が無効です。サイズは [0, 16] の範囲内である必要があります。 | 400 | LogMapping のキーの数は [0, 16] の範囲内である必要があります。 |
InvalidLogMapping.{key} | 指定されたパラメータ LogMapping.{key} が無効です。長さは [1, 1024] の範囲内である必要があります。 | 400 | LogMapping.{key} の長さは [1, 1024] の範囲内である必要があります。 |
InvalidLogMapping.{key} | 指定されたパラメータ LogMapping.{key} が無効です。ローカルパスは絶対パスである必要があります。 | 400 | LogMapping.{key} は有効なローカルパスである必要があります。 |
InvalidLogMapping.{key}.value | 指定されたパラメータ LogMapping.{key}.value が無効です。タイプは string である必要があります。 | 400 | LogMapping.{key} の値は文字列である必要があります。 |
InvalidLogMapping.{key}.value | 指定されたパラメータ LogMapping.{key}.value が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | LogMapping.{key} の長さは [0, 1024] の範囲内である必要があります。 |
InvalidLogMapping.{key}.value | 指定されたパラメータ LogMapping.{key}.value が無効です。OSS パスは「oss://」で始まり、フォルダの場合は「/」で終わり、ファイルの場合は「/」で終わってはいけません。 | 400 | LogMapping.{key} の長さは [1, 1024] の範囲内である必要があります。 |
InvalidMaxRetryCount | 指定されたパラメータ MaxRetryCount が無効です。タイプは integer である必要があります。 | 400 | MaxRetryCount は整数である必要があります。 |
InvalidName | 指定されたパラメータ Name が無効です。タイプは string である必要があります。 | 400 | Name は文字列である必要があります。 |
InvalidName | 指定されたパラメータ Name が無効です。長さは [1, 64] の範囲内である必要があります。 | 400 | Name の長さは [1, 64] の範囲内である必要があります。 |
InvalidName | 指定されたパラメータ Name が無効です。[a-zA-Z0-9-] 内の文字のみを含める必要があり、[0-9] で始めることはできません。 | 400 | Name には文字、数字、アンダースコア、ハイフンのみを含めることができ、数字で始めることはできません。 |
InvalidOutputMapping | 指定されたパラメータ OutputMapping が無効です。タイプは object である必要があります。 | 400 | OutputMapping はオブジェクトである必要があります。 |
InvalidOutputMapping | 指定されたパラメータ OutputMapping が無効です。サイズは [0, 16] の範囲内である必要があります。 | 400 | OutputMapping のキーの数は [0, 16] の範囲内である必要があります。 |
InvalidOutputMapping.{key} | 指定されたパラメータ OutputMapping.{key} が無効です。長さは [1, 1024] の範囲内である必要があります。 | 400 | OutputMapping.{key} の長さは [1, 1024] の範囲内である必要があります。 |
InvalidOutputMapping.{key} | 指定されたパラメータ OutputMapping.{key} が無効です。ローカルパスは絶対パスである必要があります。 | 400 | OutputMapping.{key} は有効なローカルパスである必要があります。 |
InvalidOutputMapping.{key}.value | 指定されたパラメータ OutputMapping.{key}.value が無効です。タイプは string である必要があります。 | 400 | OutputMapping.{key} の値は文字列である必要があります。 |
InvalidOutputMapping.{key}.value | 指定されたパラメータ OutputMapping.{key}.value が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | OutputMapping.{key} の長さは [0, 1024] の範囲内である必要があります。 |
InvalidOutputMapping.{key}.value | 指定されたパラメータ OutputMapping.{key}.value が無効です。OSS パスは「oss://」で始まり、フォルダの場合は「/」で終わり、ファイルの場合は「/」で終わってはいけません。 | 400 | OutputMapping.{key} の長さは [1, 1024] の範囲内である必要があります。 |
InvalidPackagePath | 指定されたパラメータ PackagePath が無効です。タイプは string である必要があります。 | 400 | PackagePath は文字列である必要があります。 |
InvalidPackagePath | 指定されたパラメータ PackagePath が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | PackagePath の長さは [0, 1024] の範囲内である必要があります。 |
InvalidPackagePath | 指定されたパラメータ PackagePath が無効です。OSS パスは「oss://」で始まり、フォルダの場合は「/」で終わり、ファイルの場合は「/」で終わってはいけません。 | 400 | PackagePath は有効な OSS パスである必要があります。 |
InvalidParameters | 指定されたパラメータ Parameters が無効です。タイプは object である必要があります。 | 400 | Parameters はオブジェクトである必要があります。 |
InvalidPriority | 指定されたパラメータ Priority が無効です。タイプは integer である必要があります。 | 400 | Priority は整数である必要があります。 |
InvalidPriority | 指定されたパラメータ Priority が無効です。[0, 1000] の範囲内である必要があります。 | 400 | Priority の値は [0, 1000] の範囲内である必要があります。 |
InvalidStderrRedirectPath | 指定されたパラメータ StderrRedirectPath が無効です。タイプは string である必要があります。 | 400 | StderrRedirectPath は文字列である必要があります。 |
InvalidStderrRedirectPath | 指定されたパラメータ StderrRedirectPath が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | StderrRedirectPath の長さは [0, 1024] の範囲内である必要があります。 |
InvalidStderrRedirectPath | 指定されたパラメータ StderrRedirectPath が無効です。OSS パスは「oss://」で始まり、フォルダの場合は「/」で終わり、ファイルの場合は「/」で終わってはいけません。 | 400 | StderrRedirectPath は有効な OSS パスである必要があります。 |
InvalidStdoutRedirectPath | 指定されたパラメータ StdoutRedirectPath が無効です。タイプは string である必要があります。 | 400 | StdoutRedirectPath は文字列である必要があります。 |
InvalidStdoutRedirectPath | 指定されたパラメータ StdoutRedirectPath が無効です。長さは [0, 1024] の範囲内である必要があります。 | 400 | StdoutRedirectPath の長さは [0, 1024] の範囲内である必要があります。 |
InvalidStdoutRedirectPath | 指定されたパラメータ StdoutRedirectPath が無効です。OSS パスは「oss://」で始まり、フォルダの場合は「/」で終わり、ファイルの場合は「/」で終わってはいけません。 | 400 | StdoutRedirectPath は有効な OSS パスである必要があります。 |
InvalidTasks | 指定されたパラメータ Tasks が無効です。タイプは object である必要があります。 | 400 | Tasks はオブジェクトである必要があります。 |
InvalidTasks | 指定されたパラメータ Tasks が無効です。サイズは [1, 16] の範囲内である必要があります。 | 400 | UserData のサイズは [1, 16] の範囲内である必要があります。 |
InvalidTasks.{key} | 指定されたパラメータ Tasks.{key} が無効です。長さは [1, 64] の範囲内である必要があります。 | 400 | Tasks.{key} の長さは [1, 64] の範囲内である必要があります。 |
InvalidTasks.{key} | 指定されたパラメータ Tasks.{key} が無効です。[a-zA-Z0-9-] 内の文字のみを含める必要があり、[0-9] で始めることはできません。 | 400 | Tasks.{key} には文字、数字、アンダースコア(_)、ハイフン(-)を含めることができ、数字で始めることはできません。 |
InvalidTimeout | 指定されたパラメータ Timeout が無効です。タイプは integer である必要があります。 | 400 | Timeout は整数である必要があります。 |
InvalidType | 指定されたパラメータ Type が無効です。 | 400 | Type の値が無効です。 |
MissingClusterId | このアクションには ClusterId が必須です。 | 400 | ClusterId パラメータがありません。 |
MissingCommand | このアクションには Command が必須です。 | 400 | Command パラメータがありません。 |
MissingCommandLine | このアクションには CommandLine が必須です。 | 400 | CommandLine パラメータがありません。 |
MissingDAG | このアクションには DAG が必須です。 | 400 | DAG パラメータがありません。 |
MissingInstanceCount | このアクションには InstanceCount が必須です。 | 400 | InstanceCount パラメータがありません。 |
MissingName | このアクションには Name が必須です。 | 400 | Name パラメータがありません。 |
MissingParameters | このアクションには Parameters が必須です。 | 400 | Parameters パラメータがありません。 |
MissingTasks | このアクションには Tasks が必須です。 | 400 | Tasks パラメータがありません。 |
MissingType | このアクションには Type が必須です。 | 400 | Type パラメータがありません。 |
QuotaExhausted.MaxInstanceTimeout | MaxInstanceTimeout ({value}) クォータが上限に達しました。 | 403 | インスタンスのタイムアウトは {value} を超えることはできません。 |
QuotaExhausted.MaxJobCount | MaxJobCount ({value}) クォータが上限に達しました。 | 403 | ジョブの数は {value} を超えることはできません。 |
QuotaExhausted.MaxJobTaskCount | MaxJobTaskCount ({value}) クォータが上限に達しました。 | 403 | ジョブ内のタスクの数は {value} を超えることはできません。 |
QuotaExhausted.MaxTaskInstanceCount | MaxTaskInstanceCount ({value}) クォータが上限に達しました。 | 403 | タスクの InstanceCount は {value} を超えることはできません。 |