使用 建立任務定義 EcsProperties - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 建立任務定義 EcsProperties

透過使用 AWS Batch 的任務定義EcsProperties,您可以在個別容器中建立硬體、感應器、3D 環境和其他模擬的模型。您可以使用此功能以邏輯方式組織工作負載元件,並將其與主要應用程式分開。此功能可在 Amazon Elastic Container Service (Amazon ECS)、Amazon Elastic Kubernetes Service (Amazon EKS) 和 AWS Batch 上使用 AWS Fargate。

ContainerPropertiesEcsProperties任務定義

您可以選擇使用 ContainerPropertiesEcsProperties任務定義作為您的使用案例指示。在高階,使用 執行 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

以下進一步概述了使用 EcsPropertiesEcsPropertiesAPI資料類型時的一些主要差異:

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會套用預設名稱 。

  • initContainerseksPodProperties資料類型中定義。ry 在應用程式容器之前執行,一律執行至完成,且必須在下一個容器啟動之前成功完成。

    這些容器已向 Amazon EKS Connector 代理程式註冊,並在 Amazon Elastic Kubernetes Service 後端資料存放區中保留註冊資訊。initContainers 物件最多可接受十 (10) 個元素。如需詳細資訊,請參閱中的初始化容器 Kubernetes 文件

    注意

    initContainers 物件可能會影響任務的開始時間。如果 initContainers需要很長時間才能執行,任務會保持 STARTING 狀態,直到完成為止。

  • shareProcessNamespace 指出 Pod 中的容器是否可以共用相同的程序命名空間。預設值為 false。將此 設定為 true,以啟用位於相同 Pod 的其他容器中的容器查看和訊號程序。

  • 每個容器都很重要。所有容器都必須成功完成 (以 0 結束),任務才能成功。如果一個容器失敗 (與 0 不同),則任務會失敗。

如需 eksProperties和 結構的詳細資訊,請參閱 的RegisterJobDefinition請求語法eksProperties