運算環境參數 - AWS Batch

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

運算環境參數

運算環境分為幾個基本元件:運算環境的名稱、類型和狀態、運算資源定義 (如果是受管運算環境)、Amazon EKS 組態 (如果使用 Amazon EKS 資源)、用於提供 IAM 許可的服務角色 AWS Batch,以及運算環境的標籤。

運算環境名稱

computeEnvironmentName

您的運算環境名稱。名稱最多可包含 128 個字元。可以包含大小寫字母、數字、連字號 (-) 和底線 (_)。

類型:字串

必要:是

Type

type

運算環境類型。選MANAGED擇 AWS Batch 管理您定義的 EC2 或 Fargate 運算資源。如需詳細資訊,請參閱 運算資源。選擇UNMANAGED管理您自己的 EC2 運算資源。

類型:字串

有效值:MANAGED | UNMANAGED

必要:是

State

state

運算環境狀態。

如果狀態為ENABLED,則 AWS Batch 排程器會嘗試在環境中放置工作。這些工作來自計算資源上的關聯工作佇列。如果管理運算環境,則執行個體會根據工作佇列需求自動向外擴充或擴充。

如果狀態為DISABLED,則 AWS Batch 排程器不會嘗試在環境中放置工作。處於STARTINGRUNNING狀態的工作會繼續正常進行。處於此DISABLED狀態的受管理運算環境不會向外延展。

注意

處於某個DISABLED狀態的運算環境可能會繼續產生帳單費用。若要避免額外費用,請關閉然後刪除運算環境。有關更多信息,請參閱AWS Billing 用戶指南DeleteComputeEnvironment中的 AWS Batch API 參考和避免意外費中的。

執行個體閒置時,例證會縮小至該minvCpus值。不過,執行個體大小不會變更。例如,假設c5.8xlarge執行個體的minvCpus值為4desiredvCpus值為36。此執行個體不會縮減為c5.large執行個體。

類型:字串

有效值:ENABLED | DISABLED

必要:否

運算資源

computeResources

由運算環境管理的運算資源詳細資訊。如需詳細資訊,請參閱 運算環境

類型:ComputeResource 物件

必要:受管理的運算環境需要此參數

type

運算環境類型。您可以選擇使用 EC2 隨需執行個體 (EC2) 和 EC2 競價型執行個體 (SPOT),或在受管運算環境中使用 Fargate 容量 (FARGATEFARGATE_SPOT) 和遠門競價型容量 ()。如果您選擇 SPOT,您還必須使用 spotIamFleetRole 參數指定 Amazon EC2 Spot Fleet 角色。如需詳細資訊,請參閱 Amazon EC2 現貨叢集角色

有效值:EC2 | SPOT | FARGATE | FARGATE_SPOT

必要:是

allocationStrategy

如果沒有足夠的最適合 EC2 執行個體類型的執行個體配置策略可用於運算資源。這可能是因為 AWS 區域 或 Amazon EC2 服務限制中的執行個體類型可用性所致。如需詳細資訊,請參閱 分配策略

注意

此參數不適用於在 Fargate 資源上執行的任務。

BEST_FIT (default)

AWS Batch 選取最符合工作需求的執行個體類型,並選取具有最低成本執行個體類型偏好設定的執行個體類型。如果所選執行個體類型的其他執行個體無法使用,請 AWS Batch 等待其他執行個體可用。如果沒有足夠的可用執行個體,或者達到 Amazon EC2 服務限制,則在目前正在執行的任務完成之後才會執行其他任務。這種配置策略可以降低成本,但可能限制擴展。如果搭配使用 Spot 叢集BEST_FIT,則必須指定 Spot 叢集 IAM 角色。使用BEST_FIT配置策略的計算資源不支援基礎結構更新,也無法更新某些參數。如需詳細資訊,請參閱 更新運算環境

注意

BEST_FIT不支援使用 Amazon EKS 資源的運算環境。

BEST_FIT_PROGRESSIVE

使用足夠大的其他執行個體類型,以符合佇列中工作的需求。針對每個單元 vCPU 以較低的成本偏好執行個體類型。如果先前選取的執行個體類型的其他執行個體無法使用,請選 AWS Batch 取新的執行個體類型。

SPOT_CAPACITY_OPTIMIZED

(僅適用於 Spot 執行個體運算資源) 使用其他大小足以滿足佇列中任務需求的執行個體類型。偏好不太可能中斷的執行個體類型。

SPOT_PRICE_CAPACITY_OPTIMIZED

(僅適用於競價型執行個體運算資源) 價格和容量最佳化配置策略會查看價格和容量,以選擇最不可能中斷且價格最低的競價型執行個體集區。

注意

我們建議您使用SPOT_PRICE_CAPACITY_OPTIMIZED而不是SPOT_CAPACITY_OPTIMIZED在大多數情況下使用。

使用隨需或競價型執行個體的SPOT_CAPACITY_OPTIMIZED、和SPOT_PRICE_CAPACITY_OPTIMIZEDBEST_FIT略,以及使用 Spot 執行個體的策略, AWS Batch 可能需maxvCpus要超過以符合您的容量需求。BEST_FIT_PROGRESSIVE在此情況下, AWS Batch 永遠不會超maxvCpus過單一執行個體以上。

有效值:BEST_FIT | BEST_FIT_PROGRESSIVE | SPOT_CAPACITY_OPTIMIZED | SPOT_PRICE_CAPACITY_OPTIMIZED

必要:否

minvCpus

即使運算環境為DISABLED,環境仍維護的 vCPUs 數目下限。

注意

此參數不適用於在 Fargate 資源上執行的任務。

類型:整數

必要:否

maxvCpus

AWS Batch 運算環境可支援的 vCPUs 數目上限。

注意

使用隨需或競價型執行個體的SPOT_CAPACITY_OPTIMIZED、和SPOT_PRICE_CAPACITY_OPTIMIZED配置策BEST_FIT略,以及使用 Spot 執行個體的策略, AWS Batch 可能需maxvCpus要超過以符合您的容量需求。BEST_FIT_PROGRESSIVE在此情況下, AWS Batch 永遠不會超maxvCpus過單一執行個體以上。例如, AWS Batch 使用計算環境中指定的執行個體不超過一個執行個體。

類型:整數

必要:否

desiredvCpus

運算環境中所需的 vCPUS 數目。 AWS Batch 根據工作佇列需求,在最小值和最大值之間修改此值。

注意

此參數不適用於在 Fargate 資源上執行的任務。

類型:整數

必要:否

instanceTypes

可啟動的執行個體類型。此參數不適用於在 Fargate 資源上執行的任務。請勿指定它。您可以指定例證族群以啟動這些族群中的任何例證類型 (例如c5c5n、或p3)。或者,您可以指定族群內的特定大小 (例如c5.8xlarge)。請注意,金屬例證類型不在例證族群中 (例如c5不包含) c5.metal。您還可以選擇 optimal,選取符合您任務佇列需求的執行個體類型 (C4、M4、R4 執行個體系列)。

注意

在建立運算環境時,您為其選取的執行個體類型必須共用相同架構。例如,您無法在相同的運算環境中混合使用 x86 和 ARM 執行個體。

注意

目前,optimal 使用 C4、M4 和 R4 執行個體系列中的執行個體類型。如果沒有來自這些例證族群的例證類型,則會使用 C5、M5 和 R5 例證族群中 AWS 區域 的例證類型。

類型:字串陣列

必要:是

imageId

此參數已過時。

用於運算環境啟動的執行個體的 Amazon Machine Image (AMI) ID。此參數會由 Ec2Configuration 結構的 imageIdOverride 成員覆寫。

注意

此參數不適用於在 Fargate 資源上執行的任務。

注意

您為運算環境選擇的 AMI 必須與您要用於該運算環境的執行個體類型架構相符。例如,如果您的運算環境使用A1執行個體類型,則您選擇的計算資源 AMI 必須支援Arm執行個體。Amazon ECS 出售 Amazon ECS x86 的兩個Arm版本優化 Amazon Linux 2 AMI。有關詳情,請參閱 Amazon ECS Amazon 彈性容器服務開發人員指南中的 Amazon ECS 優化亞馬遜 Linux 2 AMI

類型:字串

必要:否

subnets

啟動運算資源的 VPC 子網路。這些子網路必須位於相同的 VPC 中。Fargate 算資源最多可包含 16 個子網路。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 VPC 和子網路

注意

AWS Batch 在 Amazon EC2 和 Amazon EKS AWS Batch 上支持 Local Zones。如需詳細資訊,請參閱 Amazon EC2 使用者指南、Amazon EKS 和 L oc al Zones 中的 L AWS ocal Zones,以及本機區域、Wavelength 區域中的 Amazon ECS 叢集以及 Amazon 彈性容器服務開發人員指南AWS Outposts中的本機區域

AWS Batch 在 Fargate 目前不支持 Local Zones。

更新運算環境時,如果您提供 VPC 子網路的空白清單,則 Fargate 和 EC2 運算資源之間產生的行為會有所不同。針對 Fargate 運算資源,系統會猶如未指定此參數且未進行變更一樣來提供空白清單。針對 EC2 運算資源,提供空白清單會從運算資源中移除 VPC 子網路。如果您變更 VPC 子網路,則需要更新運算環境的基礎結構。Fargate 和 EC2 運算資源都是這種情況。如需詳細資訊,請參閱 更新運算環境

類型:字串陣列

必要:是

securityGroupIds

已與在運算環境中啟動之執行個體建立關聯的 Amazon EC2 安全群組。必須指定一或多個安全群組,這些群組必須位於 securityGroupIds 或是使用 launchTemplate 中參照的啟動範本。對於在 Fargate 資源上執行的工作,且必須至少包含一個安全性群組,此參數是必要的。(Fargate 不支持啟動模板。) 如果同時使用 securityGroupIdslaunchTemplate 來指定安全群組,則會使用 securityGroupIds 中的值。

更新運算環境時,如果您提供安全群組的空白清單,則 Fargate 和 EC2 運算資源之間產生的行為會有所不同。針對 Fargate 運算資源,系統會猶如未指定此參數且未進行變更一樣來提供空白清單。針對 EC2 運算資源,提供空白清單會從運算資源中移除安全群組。如果您變更安全群組,則需要更新運算環境的基礎結構。Fargate 和 EC2 運算資源都是這種情況。如需詳細資訊,請參閱 更新運算環境

類型:字串陣列

必要:是

ec2KeyPair

用於在運算環境中啟動的執行個體的 EC2 key pair。您可以使用此金鑰對,經由 SSH 登入您的執行個體。更新運算環境時,如果您變更 EC2 金鑰組,則需要對運算環境進行基礎設施更新。如需詳細資訊,請參閱 更新運算環境

注意

此參數不適用於在 Fargate 資源上執行的任務。

類型:字串

必要:否

instanceRole

要連接到運算環境中 Amazon EC2 執行個體的 Amazon ECS 執行個體設定檔。此參數不適用於在 Fargate 資源上執行的任務。請勿指定它。您可以指定執行個體描述檔的簡稱或完整的 Amazon Resource Name (ARN)。例如 ecsInstanceRolearn:aws:iam::aws_account_id:instance-profile/ecsInstanceRole。如需詳細資訊,請參閱 Amazon ECS 執行個體角色

更新計算環境時,如果您變更此設定,則需要更新運算環境的基礎結構。如需詳細資訊,請參閱 更新運算環境

類型:字串

必要:否

tags

要套用至在運算環境中啟動之 EC2 執行個體的金鑰值配對標籤。舉例來說,您可以將 "Name": "AWS Batch Instance - C4OnDemand" 指定為標籤,以讓運算環境中的每個執行個體都擁有該名稱。這對於在 Amazon EC2 主控台中識別您的 AWS Batch 執行個體很有幫助。使用 AWS BatchListTagsForResourceAPI 操作時,看不到這些標籤。

更新運算環境時,如果您變更 EC2 標籤,則需要更新運算環境的基礎設施。如需詳細資訊,請參閱 更新運算環境

注意

此參數不適用於在 Fargate 資源上執行的任務。

類型:字串到字串映射

必要:否

placementGroup

要與運算資源建立關聯的 Amazon EC2 置放群組。此參數不適用於在 Fargate 資源上執行的任務。請勿指定它。如果您打算將多節點 parallel 工作提交至您的計算環境,請考慮建立叢集置放群組,並將其與您的運算資源產生關聯。這可讓單一可用區域中執行個體邏輯群組上的多節點平行任務,保持較高網路流量潛力。如需詳細資訊,請參閱 Amazon EC2 Linux 執行個體使用者指南中的放置群組

注意

此參數不適用於在 Fargate 資源上執行的任務。

類型:字串

必要:否

bidPercentage

EC2 Spot 執行個體價格在啟動執行個體之前,與該執行個體類型的隨需價格進行比較時所能獲得的最高百分比。例如,如果您的最大百分比為 20%,則 Spot 價格必須小於該 EC2 執行個體目前隨需價格的 20%。您一律會支付最低價 (市價) 且絕不超過您的最大百分比。如果您將此欄位空,預設值是隨需價格的 100%。對於大多數使用案例,我們建議將此欄位留白。

更新運算環境時,如果您變更出價百分比,則需要更新運算環境的基礎結構。如需詳細資訊,請參閱 更新運算環境

注意

此參數不適用於在 Fargate 資源上執行的任務。

必要:否

spotIamFleetRole

套用至 SPOT 運算環境的 Amazon EC2 Spot Fleet IAM 角色的 Amazon Resource Name (ARN)。如果將配置策略設為 BEST_FIT,或是若沒有指定配置策略,則此角色為必要項目。如需詳細資訊,請參閱 Amazon EC2 現貨叢集角色

注意

此參數不適用於在 Fargate 資源上執行的任務。

重要

若要在建立時標記 Spot 執行個體,此處指定的競價型叢集 IAM 角色必須使用較新的 AmazonEC2 SpotFleet TaggingRole 受管政策。先前建議的 AmazonEC2 SpotFleet 角色受管政策沒有標記 Spot 執行個體所需的許可。如需詳細資訊,請參閱 建立時未標記競價型執行個體

類型:字串

必要:SPOT 運算環境必須擁有此參數。

launchTemplate

要與您運算資源相關聯的選用啟動範本。此參數不適用於在 Fargate 資源上執行的任務。請勿指定它。您在CreateComputeEnvironmentUpdateComputeEnvironmentAPI 作業中指定的任何其他計算資源參數會覆寫啟動範本中的相同參數。若要使用啟動範本,您必須在請求中擇一指定啟動範本 ID 或啟動範本名稱,而非同時指定兩者。如需詳細資訊,請參閱 啟動範本支援

更新計算環境時,若要移除自訂啟動範本並使用預設啟動範本,請將啟動範本規格的launchTemplateIdlaunchTemplateName成員設定為空字串。從計算環境中移除啟動範本並不會移除啟動範本中指定的 AMI (如果啟動範本是使用的 AMI)。若要更新從啟動範本中選取的 AMI,必須將updateToLatestImageVersion參數設定為true。更新計算環境時,如果您變更啟動範本,則需要更新運算環境的基礎結構。如需詳細資訊,請參閱 更新運算環境

類型:LaunchTemplateSpecification

object

必要:否

launchTemplateId

啟動範本的 ID。

類型:字串

必要:否

launchTemplateName

啟動範本的名稱。

類型:字串

必要:否

version

啟動範本的版本編號 $Latest$Default

如果數值為 $Latest,則會使用最新版本的啟動範本。如果數值為 $Default,則會使用啟動範本的預設版本。在基礎結構更新期間,如果為計算環境指定$Default$Latest或,請 AWS Batch 重新評估啟動範本版本,並可能使用不同版本的啟動範本。這是即使未在更新中指定啟動範本。

預設:$Default

類型:字串

必要:否

ec2Configuration

提供用於為 EC2 運算環境中執行個體選取 Amazon 機器映像 (AMI) 的資訊。如果Ec2Configuration未指定,則預設值為 Amazon Linux 2 (ECS_AL2)。在 2021 年 3 月 31 日之前,非 GPU、非重力子執行個 AWS 體的預設值為 Amazon Linux (ECS_AL1)。

更新計算環境時,如果您變更此參數,則需要更新運算環境的基礎結構。如需詳細資訊,請參閱 更新運算環境

注意

此參數不適用於在 Fargate 資源上執行的任務。

類型:Ec2Configuration 物件陣列

必要:否

imageIdOverride

用於在運算環境中啟動的執行個體 (符合映像檔類型) 的 AMI ID。此設定會覆寫 computeResource 物件中的 imageId 集。

類型:字串

必要:否

imageKubernetesVersion

運算環境的Kubernetes版本。如果您未指定值,系統會使用 AWS Batch 支援的最新版本。

類型:字串

長度限制:長度下限為 1。長度上限為 256。

必要:否

imageType

與執行個體類型相符的映像類型,用於選取 AMI。ECSEKS 資源支援的值不同。

ECS

若未指定 imageIdOverride 參數,則會使用最近的 Amazon ECS 最佳化 Amazon Linux 2 AMI (ECS_AL2)。如果在更新中指定了新映像類型,但未指定imageIdOverride參數imageId或參數,則會使用該映像類型支援的最新 Amazon ECS 最佳化 AMI。 AWS Batch

ECS_AL2

Amazon Linux 2 – 對於所有非 GPU 執行個體系列為預設。

ECS_AL2_NVIDIA

Amazon Linux 2 (GPU):所有 GPU 執行個體系列的預設值 (例如P4G4),可用於所有非 AWS 重力型執行個體類型。

ECS_AL1

Amazon Linux。Amazon Linux 已經達到了標準 end-of-life 的支持。如需詳細資訊,請參閱 Amazon Linux AMI

EKS

若未指定 imageIdOverride 參數,系統會使用最近的 Amazon EKS 最佳化的 Amazon Linux AMI (EKS_AL2)。如果在更新中指定了新映像類型,但未指定參數imageIdimageIdOverride參數,則會使用 AWS Batch 支援該映像類型的最新 Amazon EKS 最佳化 AMI。

EKS_AL2

Amazon Linux 2 – 對於所有非 GPU 執行個體系列為預設。

EKS_AL2_NVIDIA

Amazon Linux 2 (加速):所有 GPU 執行個體系列的預設值 (例如P4G4),可用於所有非 AWS 重力型執行個體類型。

類型:字串

長度限制:長度下限為 1。長度上限為 256。

必要:是

Amazon EKS 配置

支援 AWS Batch 運算環境之 Amazon EKS 叢集的組態。必須有叢集,才能建立運算環境。

eksClusterArn

Amazon EKS 叢集的 Amazon Resource Name (ARN)。例如,arn:aws:eks:us-east-1:123456789012:cluster/ClusterForBatch

類型:字串

必要:是

kubernetesNamespace

Amazon EKS 叢集的命名空間。 AWS Batch 管理此命名空間中的網繭。值不能留白或為 null。長度必須少於 64 個字元、不能設定為 default、不能以 "kube-" 開頭,且必須符合此規則表達式:^[a-z0-9]([-a-z0-9]*[a-z0-9])?$。如需詳細資訊,請參閱 Kubernetes 文件中的命名空間

類型:字串

必要:是

類型:EksConfiguration物件

必要:否

服務角色

serviceRole

IAM 角色的完整 Amazon 資源名稱 (ARN),可讓您代表您撥 AWS Batch 打其他 AWS 服務的電話。如需詳細資訊,請參閱 使用服務連結角色 AWS Batch。建議您不要指定服務角色。如此一來,就 AWS Batch 會使用AWSServiceRoleForBatch服務連結角色。

重要

如果您的帳戶已建立 AWS Batch 服務連結角色 (AWSServiceRoleForBatch),則除非您在此指定角色,否則依預設會在您的計算環境中使用該角色。如果您的帳戶中不存在 AWS Batch 服務連結角色,且此處未指定角色,則服務會嘗試在您的帳戶中建立 AWS Batch 服務連結角色。如需 AWSServiceRoleForBatch 服務連結角色的詳細資訊,請參閱服務連結角色權限 AWS Batch

如果運算環境是使用AWSServiceRoleForBatch服務連結角色建立的,則無法將其變更為使用一般 IAM 角色。同樣地,如果使用一般 IAM 角色建立運算環境,則無法變更為使用AWSServiceRoleForBatch服務連結角色。若要更新需要基礎結構更新才能變更的運算環境參數,必須使用AWSServiceRoleForBatch服務連結角色。如需詳細資訊,請參閱 更新運算環境

如果您指定的角色具有路徑以外的路徑/,請確定指定完整角色 ARN (建議),或在角色名稱前面加上路徑。

注意

視您建立 AWS Batch 服務角色的方式而定,其 Amazon 資源名稱 (ARN) 可能包含service-role路徑前置詞。當您僅指定服務角色的名稱時,會 AWS Batch 假設 ARN 不使用service-role路徑前置詞。因此,我們建議您在建立運算環境時,指定您服務角色的完整 ARN。

類型:字串

必要:否

標籤

tags

要與計算環境關聯的金鑰值配對標籤。如需詳細資訊,請參閱 標記您的 AWS Batch 資源

類型:字串到字串映射

必要:否