本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
運算環境參數
運算環境分為幾個基本元件:運算環境的名稱、類型和狀態、運算資源定義 (如果是受管運算環境)、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 排程器不會嘗試在環境中放置工作。處於STARTING
或RUNNING
狀態的工作會繼續正常進行。處於此DISABLED
狀態的受管理運算環境不會向外延展。注意
處於某個
DISABLED
狀態的運算環境可能會繼續產生帳單費用。若要避免額外費用,請關閉然後刪除運算環境。有關更多信息,請參閱AWS Billing 用戶指南DeleteComputeEnvironment中的 AWS Batch API 參考和避免意外費用中的。執行個體閒置時,例證會縮小至該
minvCpus
值。不過,執行個體大小不會變更。例如,假設c5.8xlarge
執行個體的minvCpus
值為4
且desiredvCpus
值為36
。此執行個體不會縮減為c5.large
執行個體。類型:字串
有效值:
ENABLED
|DISABLED
必要:否
運算資源
computeResources
-
由運算環境管理的運算資源詳細資訊。如需詳細資訊,請參閱 運算環境。
類型:ComputeResource 物件
必要:受管理的運算環境需要此參數
type
-
運算環境類型。您可以選擇使用 EC2 隨需執行個體 (
EC2
) 和 EC2 競價型執行個體 (SPOT
),或在受管運算環境中使用 Fargate 容量 (FARGATE
FARGATE_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_OPTIMIZED
策BEST_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 資源上執行的任務。請勿指定它。您可以指定例證族群以啟動這些族群中的任何例證類型 (例如
c5
c5n
、或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 不支持啟動模板。) 如果同時使用securityGroupIds
和launchTemplate
來指定安全群組,則會使用securityGroupIds
中的值。更新運算環境時,如果您提供安全群組的空白清單,則 Fargate 和 EC2 運算資源之間產生的行為會有所不同。針對 Fargate 運算資源,系統會猶如未指定此參數且未進行變更一樣來提供空白清單。針對 EC2 運算資源,提供空白清單會從運算資源中移除安全群組。如果您變更安全群組,則需要更新運算環境的基礎結構。Fargate 和 EC2 運算資源都是這種情況。如需詳細資訊,請參閱 更新運算環境。
類型:字串陣列
必要:是
ec2KeyPair
-
用於在運算環境中啟動的執行個體的 EC2 key pair。您可以使用此金鑰對,經由 SSH 登入您的執行個體。更新運算環境時,如果您變更 EC2 金鑰組,則需要對運算環境進行基礎設施更新。如需詳細資訊,請參閱 更新運算環境。
注意
此參數不適用於在 Fargate 資源上執行的任務。
類型:字串
必要:否
instanceRole
-
要連接到運算環境中 Amazon EC2 執行個體的 Amazon ECS 執行個體設定檔。此參數不適用於在 Fargate 資源上執行的任務。請勿指定它。您可以指定執行個體描述檔的簡稱或完整的 Amazon Resource Name (ARN)。例如
ecsInstanceRole
或arn:aws:iam::
。如需詳細資訊,請參閱 Amazon ECS 執行個體角色。aws_account_id
:instance-profile/ecsInstanceRole更新計算環境時,如果您變更此設定,則需要更新運算環境的基礎結構。如需詳細資訊,請參閱 更新運算環境。
類型:字串
必要:否
-
要套用至在運算環境中啟動之 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 資源上執行的任務。請勿指定它。您在CreateComputeEnvironment或 UpdateComputeEnvironmentAPI 作業中指定的任何其他計算資源參數會覆寫啟動範本中的相同參數。若要使用啟動範本,您必須在請求中擇一指定啟動範本 ID 或啟動範本名稱,而非同時指定兩者。如需詳細資訊,請參閱 啟動範本支援。
更新計算環境時,若要移除自訂啟動範本並使用預設啟動範本,請將啟動範本規格的
launchTemplateId
或launchTemplateName
成員設定為空字串。從計算環境中移除啟動範本並不會移除啟動範本中指定的 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。
ECS
和EKS
資源支援的值不同。- 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 執行個體系列的預設值 (例如
P4
和G4
),可用於所有非 AWS 重力型執行個體類型。 - ECS_AL1
-
Amazon Linux。Amazon Linux 已經達到了標準 end-of-life 的支持。如需詳細資訊,請參閱 Amazon Linux AMI
。
- EKS
-
若未指定
imageIdOverride
參數,系統會使用最近的 Amazon EKS 最佳化的 Amazon Linux AMI (EKS_AL2
)。如果在更新中指定了新映像類型,但未指定參數imageId
或imageIdOverride
參數,則會使用 AWS Batch 支援該映像類型的最新 Amazon EKS 最佳化 AMI。- EKS_AL2
-
Amazon Linux 2 – 對於所有非 GPU 執行個體系列為預設。
- EKS_AL2_NVIDIA
-
Amazon Linux 2 (加速):所有 GPU 執行個體系列的預設值 (例如
P4
和G4
),可用於所有非 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 資源。
類型:字串到字串映射
必要:否