本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Batch 使用 的範例 AWS CLI
下列程式碼範例示範如何使用 AWS Command Line Interface 搭配 來執行動作和實作常見案例 AWS Batch。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會示範如何呼叫個別服務函數,但您可以在相關案例中查看內容中的動作。
每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。
主題
動作
下列程式碼範例示範如何使用 cancel-job
。
- AWS CLI
-
若要取消任務
此範例會取消具有指定任務 ID 的任務。
命令:
aws batch cancel-job --job-id
bcf0b186-a532-4122-842e-2ccab8d54efb
--reason"Cancelling job."
-
如需API詳細資訊,請參閱 命令參考 CancelJob
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 create-compute-environment
。
- AWS CLI
-
使用隨需執行個體建立受管運算環境
此範例會建立具有特定 C4 執行個體類型的受管運算環境,這些執行個體類型會隨需啟動。運算環境稱為 C4OnDemand。
命令:
aws batch create-compute-environment --cli-input-json
file://<path_to_json_file>/C4OnDemand.json
JSON 檔案格式:
{ "computeEnvironmentName": "C4OnDemand", "type": "MANAGED", "state": "ENABLED", "computeResources": { "type": "EC2", "minvCpus": 0, "maxvCpus": 128, "desiredvCpus": 48, "instanceTypes": [ "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge" ], "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "securityGroupIds": [ "sg-cf5093b2" ], "ec2KeyPair": "id_rsa", "instanceRole": "ecsInstanceRole", "tags": { "Name": "Batch Instance - C4OnDemand" } }, "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole" }
輸出:
{ "computeEnvironmentName": "C4OnDemand", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand" }
使用 Spot 執行個體建立受管運算環境
此範例會使用當 Spot 出價等於或低於執行個體類型的隨需價格的 20% 時啟動的 M4 執行個體類型,來建立受管運算環境。運算環境稱為 M4Spot 。
命令:
aws batch create-compute-environment --cli-input-json
file://<path_to_json_file>/M4Spot.json
JSON 檔案格式:
{ "computeEnvironmentName": "M4Spot", "type": "MANAGED", "state": "ENABLED", "computeResources": { "type": "SPOT", "spotIamFleetRole": "arn:aws:iam::012345678910:role/aws-ec2-spot-fleet-role", "minvCpus": 0, "maxvCpus": 128, "desiredvCpus": 4, "instanceTypes": [ "m4" ], "bidPercentage": 20, "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "securityGroupIds": [ "sg-cf5093b2" ], "ec2KeyPair": "id_rsa", "instanceRole": "ecsInstanceRole", "tags": { "Name": "Batch Instance - M4Spot" } }, "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole" }
輸出:
{ "computeEnvironmentName": "M4Spot", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/M4Spot" }
-
如需API詳細資訊,請參閱 命令參考 CreateComputeEnvironment
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 create-job-queue
。
- AWS CLI
-
使用單一運算環境建立低優先順序任務佇列
此範例會建立名為 的任務佇列 LowPriority ,該任務佇列使用 M4Spot 運算環境。
命令:
aws batch create-job-queue --cli-input-json
file://<path_to_json_file>/LowPriority.json
JSON 檔案格式:
{ "jobQueueName": "LowPriority", "state": "ENABLED", "priority": 10, "computeEnvironmentOrder": [ { "order": 1, "computeEnvironment": "M4Spot" } ] }
輸出:
{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/LowPriority", "jobQueueName": "LowPriority" }
使用兩個運算環境建立高優先順序任務佇列
此範例會建立名為 的任務佇列 HighPriority ,其使用順序為 1 的 C4OnDemand 運算環境,以及順序為 2 的 M4Spot 運算環境。排程器會先嘗試在 C4OnDemand 運算環境中放置任務。
命令:
aws batch create-job-queue --cli-input-json
file://<path_to_json_file>/HighPriority.json
JSON 檔案格式:
{ "jobQueueName": "HighPriority", "state": "ENABLED", "priority": 1, "computeEnvironmentOrder": [ { "order": 1, "computeEnvironment": "C4OnDemand" }, { "order": 2, "computeEnvironment": "M4Spot" } ] }
輸出:
{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobQueueName": "HighPriority" }
-
如需API詳細資訊,請參閱 命令參考 CreateJobQueue
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 delete-compute-environment
。
- AWS CLI
-
若要刪除運算環境
此範例會刪除 P2OnDemand compute 環境。
命令:
aws batch delete-compute-environment --compute-environment
P2OnDemand
-
如需API詳細資訊,請參閱 命令參考 DeleteComputeEnvironment
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 delete-job-queue
。
- AWS CLI
-
若要刪除任務佇列
此範例會刪除GPGPU任務佇列。
命令:
aws batch delete-job-queue --job-queue
GPGPU
-
如需API詳細資訊,請參閱 命令參考 DeleteJobQueue
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 deregister-job-definition
。
- AWS CLI
-
若要取消註冊任務定義
此範例會取消註冊名為 sleep10 的任務定義。
命令:
aws batch deregister-job-definition --job-definition
sleep10
-
如需API詳細資訊,請參閱 命令參考 DeregisterJobDefinition
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 describe-compute-environments
。
- AWS CLI
-
描述運算環境
此範例說明 P2OnDemand compute 環境。
命令:
aws batch describe-compute-environments --compute-environments
P2OnDemand
輸出:
{ "computeEnvironments": [ { "status": "VALID", "serviceRole": "arn:aws:iam::012345678910:role/AWSBatchServiceRole", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand", "computeResources": { "subnets": [ "subnet-220c0e0a", "subnet-1a95556d", "subnet-978f6dce" ], "tags": { "Name": "Batch Instance - P2OnDemand" }, "desiredvCpus": 48, "minvCpus": 0, "instanceTypes": [ "p2" ], "securityGroupIds": [ "sg-cf5093b2" ], "instanceRole": "ecsInstanceRole", "maxvCpus": 128, "type": "EC2", "ec2KeyPair": "id_rsa" }, "statusReason": "ComputeEnvironment Healthy", "ecsClusterArn": "arn:aws:ecs:us-east-1:012345678910:cluster/P2OnDemand_Batch_2c06f29d-d1fe-3a49-879d-42394c86effc", "state": "ENABLED", "computeEnvironmentName": "P2OnDemand", "type": "MANAGED" } ] }
-
如需API詳細資訊,請參閱 命令參考 DescribeComputeEnvironments
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 describe-job-definitions
。
- AWS CLI
-
描述作用中任務定義
此範例說明所有作用中的任務定義。
命令:
aws batch describe-job-definitions --status
ACTIVE
輸出:
{ "jobDefinitions": [ { "status": "ACTIVE", "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1", "containerProperties": { "mountPoints": [], "parameters": {}, "image": "busybox", "environment": {}, "vcpus": 1, "command": [ "sleep", "60" ], "volumes": [], "memory": 128, "ulimits": [] }, "type": "container", "jobDefinitionName": "sleep60", "revision": 1 } ] }
-
如需API詳細資訊,請參閱 命令參考 DescribeJobDefinitions
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 describe-job-queues
。
- AWS CLI
-
描述任務佇列
此範例說明 HighPriority 任務佇列。
命令:
aws batch describe-job-queues --job-queues
HighPriority
輸出:
{ "jobQueues": [ { "status": "VALID", "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "computeEnvironmentOrder": [ { "computeEnvironment": "arn:aws:batch:us-east-1:012345678910:compute-environment/C4OnDemand", "order": 1 } ], "statusReason": "JobQueue Healthy", "priority": 1, "state": "ENABLED", "jobQueueName": "HighPriority" } ] }
-
如需API詳細資訊,請參閱 命令參考 DescribeJobQueues
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 describe-jobs
。
- AWS CLI
-
描述任務
下列
describe-jobs
範例說明具有指定任務 ID 的任務。aws batch describe-jobs \ --jobs
bcf0b186-a532-4122-842e-2ccab8d54efb
輸出:
{ "jobs": [ { "status": "SUBMITTED", "container": { "mountPoints": [], "image": "busybox", "environment": [], "vcpus": 1, "command": [ "sleep", "60" ], "volumes": [], "memory": 128, "ulimits": [] }, "parameters": {}, "jobDefinition": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep60:1", "jobQueue": "arn:aws:batch:us-east-1:012345678910:job-queue/HighPriority", "jobId": "bcf0b186-a532-4122-842e-2ccab8d54efb", "dependsOn": [], "jobName": "example", "createdAt": 1480483387803 } ] }
-
如需API詳細資訊,請參閱 命令參考 DescribeJobs
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 list-jobs
。
- AWS CLI
-
若要列出執行中的任務
此範例列出任務佇列中正在執行 HighPriority 的任務。
命令:
aws batch list-jobs --job-queue
HighPriority
輸出:
{ "jobSummaryList": [ { "jobName": "example", "jobId": "e66ff5fd-a1ff-4640-b1a2-0b0a142f49bb" } ] }
若要列出提交的任務
此範例列出處於任務狀態 HighPriority 的任務佇列中的SUBMITTED任務。
命令:
aws batch list-jobs --job-queue
HighPriority
--job-statusSUBMITTED
輸出:
{ "jobSummaryList": [ { "jobName": "example", "jobId": "68f0c163-fbd4-44e6-9fd1-25b14a434786" } ] }
-
如需API詳細資訊,請參閱 命令參考 ListJobs
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 register-job-definition
。
- AWS CLI
-
註冊任務定義
此範例會註冊簡單容器任務的任務定義。
命令:
aws batch register-job-definition --job-definition-name
sleep30
--typecontainer
--container-properties '{ "image": "busybox", "vcpus": 1, "memory": 128, "command": [ "sleep", "30"]}
'輸出:
{ "jobDefinitionArn": "arn:aws:batch:us-east-1:012345678910:job-definition/sleep30:1", "jobDefinitionName": "sleep30", "revision": 1 }
-
如需API詳細資訊,請參閱 命令參考 RegisterJobDefinition
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 submit-job
。
- AWS CLI
-
若要提交任務
此範例會將稱為範例的簡單容器任務提交至 HighPriority 任務佇列。
命令:
aws batch submit-job --job-name
example
--job-queueHighPriority
--job-definitionsleep60
輸出:
{ "jobName": "example", "jobId": "876da822-4198-45f2-a252-6cea32512ea8" }
-
如需API詳細資訊,請參閱 命令參考 SubmitJob
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 terminate-job
。
- AWS CLI
-
終止任務
此範例會終止具有指定任務 ID 的任務。
命令:
aws batch terminate-job --job-id
61e743ed-35e4-48da-b2de-5c8333821c84
--reason"Terminating job."
-
如需API詳細資訊,請參閱 命令參考 TerminateJob
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 update-compute-environment
。
- AWS CLI
-
更新運算環境
此範例會停用 P2OnDemand 運算環境,以便將其刪除。
命令:
aws batch update-compute-environment --compute-environment
P2OnDemand
--stateDISABLED
輸出:
{ "computeEnvironmentName": "P2OnDemand", "computeEnvironmentArn": "arn:aws:batch:us-east-1:012345678910:compute-environment/P2OnDemand" }
-
如需API詳細資訊,請參閱 命令參考 UpdateComputeEnvironment
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 update-job-queue
。
- AWS CLI
-
若要更新任務佇列
此範例會停用任務佇列,以便將其刪除。
命令:
aws batch update-job-queue --job-queue
GPGPU
--stateDISABLED
輸出:
{ "jobQueueArn": "arn:aws:batch:us-east-1:012345678910:job-queue/GPGPU", "jobQueueName": "GPGPU" }
-
如需API詳細資訊,請參閱 命令參考 UpdateJobQueue
中的 。 AWS CLI
-