使用 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的一般變更

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

Amazon ECS 的多容器任務定義

為了容納 Amazon ECS 的多容器結構,某些 API 資料類型不同。例如

  • ecsProperties 與單一容器定義containerProperties中的層級相同。如需詳細資訊,請參閱 AWS Batch API 參考指南中的 EcsProperties

  • taskProperties 包含為 Amazon ECS 任務定義的屬性。如需詳細資訊,請參閱 AWS Batch API 參考指南中的 EcsProperties

  • containers 在單一容器定義containerProperties中包含與 類似的資訊。主要差別在於containers可讓您定義最多十個容器。如需詳細資訊,請參閱 AWS Batch API 參考指南中的 ECSTaskProperties:containers

  • essential 參數指出容器如何影響任務。所有必要容器都必須成功完成 (以 0 結束),才能讓任務繼續。如果標示為必要 的容器失敗 (結束為非 0),則任務會失敗。

    預設值為 true,且至少必須將一個容器標記為 essential。如需詳細資訊,請參閱 essential API 參考指南中的「AWS Batch 」。

  • 您可以使用 dependsOn 參數定義容器相依性的清單。如需詳細資訊,請參閱 dependsOn API 參考指南中的「AWS Batch 」。

    注意

    dependsOn 清單的複雜性和相關聯的容器執行時間可能會影響任務的開始時間。如果相依性需要很長的時間才能執行,任務會保持 STARTING 狀態,直到完成為止。

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

Amazon EKS 的多容器任務定義

為了容納 Amazon EKS 的多容器結構,某些 API 資料類型不同。例如

  • name 是容器的唯一識別符。單一容器不需要此物件,但在 Pod 中定義多個容器時需要此物件。name 未針對單一容器定義 時,default會套用預設名稱 。

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

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

    注意

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

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

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

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