本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 建立任務定義 EcsProperties
透過使用 AWS Batch 的任務定義EcsProperties
,您可以在個別容器中建立硬體、感應器、3D 環境和其他模擬的模型。您可以使用此功能以邏輯方式組織工作負載元件,並將其與主要應用程式分開。此功能可在 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS) 和 AWS Batch 上使用 AWS Fargate。
ContainerProperties
與EcsProperties
任務定義
您可以選擇使用 ContainerProperties
或 EcsProperties
任務定義作為您的使用案例指示。在高階,使用 執行 AWS Batch 的任務EcsProperties
類似於使用 執行的任務ContainerProperties
。
使用 的舊版任務定義結構ContainerProperties
仍受支援。如果您目前有使用此結構的工作流程,您可以繼續執行它們。
主要差別在於,任務定義中新增了新的物件,以容納 EcsProperties
型定義。
例如,在 Amazon ECS和 Fargate ContainerProperties
上使用的任務定義具有下列結構:
{ "containerProperties": { ... "image": "my_ecr_image1", ... }, ... }
在 Amazon ECS和 Fargate EcsProperties
上使用的任務定義具有下列結構:
{ "ecsProperties": { "taskProperties": [{ "containers": [ { ... "image": "my_ecr_image1", ... }, { ... "image": "my_ecr_image2", ... },
的一般變更 AWS Batch APIs
以下進一步概述了使用 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:containerProperties 和 EcsTaskProperties:containers 。 -
taskRoleArn
功能上相當於jobRoleArn
。如需詳細資訊,請參閱 EcsTaskProperties:taskRoleArn 和 ContainerProperties:jobRoleArn。 -
您可以在
EcsProperties
結構中包含一 (1) 到十 (10) 個容器。如需詳細資訊,請參閱EcsTaskProperties:容器 。 -
taskProperties
和 instanceTypes 物件是陣列,但目前只接受一個元素。例如,EcsProperties:taskProperties 和 NodeRangeProperty:instanceTypes。
Amazon 的多容器任務定義 ECS
為了容納 Amazon 的多容器結構ECS,某些API資料類型不同。例如
-
ecsProperties
與單一容器定義containerProperties
中的層級相同。如需詳細資訊,請參閱 參考指南 EcsProperties 中的 。 AWS Batch API -
taskProperties
包含為 Amazon ECS任務定義的屬性。如需詳細資訊,請參閱 參考指南 EcsProperties 中的 。 AWS Batch API -
containers
在單一容器定義containerProperties
中包含 與 的類似資訊。主要差異在於containers
可讓您定義最多十個容器。如需詳細資訊,請參閱 AWS Batch API參考指南 中的ECSTaskProperties:容器。 -
essential
參數指示容器如何影響任務。所有 essentail 合作夥伴都必須成功完成 (以 0 結束),才能讓任務繼續。如果標記為 essentail 的容器失敗 (結束為非 0),則任務會失敗。預設值為
true
,且至少必須將一個容器標記為essential
。如需詳細資訊,請參閱 參考指南essential
中的 。 AWS Batch API -
您可以使用
dependsOn
參數定義容器相依性清單。如需詳細資訊,請參閱 參考指南dependsOn
中的 。 AWS Batch API注意
dependsOn
清單的複雜性和相關聯的容器執行時間可能會影響任務的開始時間。如果相依性需要很長時間才能執行,任務會保持STARTING
狀態,直到完成為止。
如需 ecsProperties
和 結構的詳細資訊,請參閱 的RegisterJobDefinition請求語法ecsProperties。
Amazon 的多容器任務定義 EKS
為了容納 Amazon 的多容器結構EKS,某些API資料類型不同。例如
-
name
是容器的唯一識別符。單一容器不需要此物件,但在 Pod 中定義多個容器時則需要此物件。name
未針對單一容器定義 時,default
會套用預設名稱 。 -
initContainers
在eksPodProperties資料類型中定義。ry 在應用程式容器之前執行,一律執行至完成,且必須在下一個容器啟動之前成功完成。這些容器已向 Amazon EKS Connector 代理程式註冊,並在 Amazon Elastic Kubernetes Service 後端資料存放區中保留註冊資訊。
initContainers
物件最多可接受十 (10) 個元素。如需詳細資訊,請參閱中的初始化容器Kubernetes 文件 。 注意
initContainers
物件可能會影響任務的開始時間。如果initContainers
需要很長時間才能執行,任務會保持STARTING
狀態,直到完成為止。 -
shareProcessNamespace
指出 Pod 中的容器是否可以共用相同的程序命名空間。預設值為false
。將此 設定為true
,以啟用位於相同 Pod 的其他容器中的容器查看和訊號程序。 -
每個容器都很重要。所有容器都必須成功完成 (以 0 結束),任務才能成功。如果一個容器失敗 (與 0 不同),則任務會失敗。
如需 eksProperties
和 結構的詳細資訊,請參閱 的RegisterJobDefinition請求語法eksProperties。