すべてのプロダクト
Search
ドキュメントセンター

:CreateJob(DAG)

最終更新日:Dec 28, 2024

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} を超えることはできません。