使用建立工作定義 EcsProperties - AWS Batch

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

使用建立工作定義 EcsProperties

使用 AWS Batch 工作定義時 EcsProperties,您可以在不同的容器中建立硬體、感測器、3D 環境和其他模擬的模擬。您可以使用此功能以邏輯方式組織工作負載元件,並將它們與主應用程式分開。此功能可與 AWS Batch Amazon Elastic Container Service (Amazon ECS),Amazon Elastic Kubernetes Service(Amazon EKS)和一起使用。 AWS Fargate

ContainerPropertiesEcsProperties工作定義

您可以根據使用案例指示選擇使用ContainerPropertiesEcsProperties工作定義。在高層級中,執行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 的一般變更

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

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

  • initContainerseksPodProperties資料類型中定義。Thery 在應用程序容器之前運行,始終運行到完成,並且必須在下一個容器啟動之前成功完成。

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

    注意

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

  • shareProcessNamespace指出網繭中的容器是否可以共用相同的處理序命名空間。預設值為false。將此設定為可true讓容器在位於相同網繭中的其他容器中查看程序並發出訊號。

  • 每個容器都有重要性。所有容器都必須成功完成 (以 0 結束),工作才能成功。如果一個容器失敗 (以 0 以外的方式結束),則工作會失敗。

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