本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用建立工作定義 EcsProperties
使用 AWS Batch 工作定義時 EcsProperties
,您可以在不同的容器中建立硬體、感測器、3D 環境和其他模擬的模擬。您可以使用此功能以邏輯方式組織工作負載元件,並將它們與主應用程式分開。此功能可與 AWS Batch Amazon Elastic Container Service (Amazon ECS),Amazon Elastic Kubernetes Service(Amazon EKS)和一起使用。 AWS Fargate
ContainerProperties
與EcsProperties
工作定義
您可以根據使用案例指示選擇使用ContainerProperties
或EcsProperties
工作定義。在高層級中,執行EcsProperties
的 AWS Batch 工作類似於使用ContainerProperties
.
使ContainerProperties
用的舊式工作定義結構仍受支援。如果您目前有使用此結構的工作流程,您可以繼續執行它們。
主要的差異在於,有一個新的物件加入到工作定義中,以適應EcsProperties
基於定義。
例如,ContainerProperties
在 Amazon ECS 和 Fargate 上使用的任務定義具有以下結構:
{ "containerProperties": { ... "image": "my_ecr_image1", ... }, ... }
EcsProperties
在 Amazon ECS 和 Fargate 上使用的任務定義具有以下結構:
{ "ecsProperties": { "taskProperties": [{ "containers": [ { ... "image": "my_ecr_image1", ... }, { ... "image": "my_ecr_image2", ... },
AWS Batch API 的一般變更
以下內容進一步概述了使用EcsProperties
和 EcsProperties
API 資料類型時的一些主要差異:
-
中使用的許多參數都
ContainerProperties
會顯示在中TaskContainerProperties
。一些範例包括command
image
、privileged
、、secrets
、和users
。它們都可以在其中找到TaskContainerProperties。 -
某些
TaskContainerProperties
參數在傳統結構中沒有功能等價物。一些範例包括dependsOn
essential
、name
、、ipcMode
、和pidMode
。如需詳細資訊,請參閱EcsTaskDetails和TaskContainerProperties。此外,某些
ContainerProperties
參數在EcsProperties
結構中沒有對等項或應用程式。中taskProperties
,container
已被取代為,以containers
便新物件最多可以接受十個元素。如需詳細資訊,請參閱容器內容和:容器RegisterJobDefinition。EcsTaskProperties -
taskRoleArn
在功能上等同於jobRoleArn
. 如需詳細資訊,請參閱 EcsTaskProperties:taskRoleArn和 ContainerProperties:jobRoleArn。 -
您可以在
EcsProperties
結構中包含一 (1) 到十 (10) 個容器。如需詳細資訊,請參閱:EcsTaskProperties容器。 -
taskProperties
和 instanceTypes 對象是數組,但目前只接受一個元素。例如,: 工作屬性和:instanceTypes EcsProperties。NodeRangeProperty
Amazon ECS 的多容器任務定義
為了適應 Amazon ECS 的多容器結構,部分 API 資料類型有所不同。例如
-
ecsProperties
與單一容器定義containerProperties
中的層級相同。如需詳細資訊,請參閱 AWS Batch API 參考指南EcsProperties中的。 -
taskProperties
包含針對 Amazon ECS 任務定義的屬性。如需詳細資訊,請參閱 AWS Batch API 參考指南EcsProperties中的。 -
containers
包含與單一容器定義containerProperties
中的類似資訊。主要區別在於containers
允許您定義多達十個容器。如需詳細資訊,請參閱《API AWS Batch 參考指南》TaskProperties中的 EC:容器。 -
essential
參數指示容器如何影響工作。所有客戶都必須成功完成(退出為 0),以便工作進行。如果標記為 essentail 的容器失敗 (以非 0 結束),則工作會失敗。預設值為,
true
且至少必須將一個容器標記為essential
。如需詳細資訊,請參閱essential
API 參考指南中的「AWS Batch 」。 -
透過
dependsOn
參數,您可以定義容器相依性的清單。如需詳細資訊,請參閱dependsOn
API 參考指南中的「AWS Batch 」。注意
dependsOn
清單的複雜性和相關聯的容器執行階段可能會影響工作的開始時間。如果相依性需要很長時間才能執行,則工作將保持STARTING
狀態,直到完成為止。
如需有關ecsProperties
和結構的詳細資訊,RegisterJobDefinition請參閱 ECs Properties 的要求語法。
Amazon EKS 的多容器任務定義
為了適應 Amazon EKS 的多容器結構,部分 API 資料類型有所不同。例如
-
name
是容器的唯一識別碼。單一容器不需要此物件,但在網繭中定義多個容器時則需要此物件。如果name
未針對單一容器定義,則會套用預設名稱。default
-
initContainers
在eksPodProperties資料類型中定義。Thery 在應用程序容器之前運行,始終運行到完成,並且必須在下一個容器啟動之前成功完成。這些容器會向 Amazon EKS 連接器代理程式註冊,並在 Amazon Elastic Kubernetes Service 後端資料存放區中保留註冊資訊。
initContainers
物件最多可接受十 (10) 個元素。如需詳細資訊,請參閱Kubernetes文件中的初始化容器。 注意
initContainers
物件可能會影響工作的開始時間。如果initContainers
需要很長時間才能執行,工作將保持STARTING
狀態,直到完成為止。 -
shareProcessNamespace
指出網繭中的容器是否可以共用相同的處理序命名空間。預設值為false
。將此設定為可true
讓容器在位於相同網繭中的其他容器中查看程序並發出訊號。 -
每個容器都有重要性。所有容器都必須成功完成 (以 0 結束),工作才能成功。如果一個容器失敗 (以 0 以外的方式結束),則工作會失敗。
如需有關eksProperties
和結構的詳細資訊,RegisterJobDefinition請參閱 EKs Properties 的要求語法。