本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
INVALID
運算環境
您可能未正確設定受管運算環境。如果您這樣做,運算環境會進入 INVALID
狀態,且無法接受要放置的任務。下列各節說明可能的原因,以及如何根據原因進行故障診斷。
不正確的角色名稱或 ARN
運算環境進入 INVALID
狀態的最常見原因是 AWS Batch 服務角色或 Amazon EC2 Spot Fleet 角色的名稱或 Amazon Resource Name () 不正確ARN。這在使用 AWS CLI 或 建立的運算環境中更為常見 AWS SDKs。當您在 中建立運算環境時 AWS Management Console, AWS Batch 可協助您選擇正確的服務或 Spot Fleet 角色。不過,假設您手動輸入名稱或 ARN,並輸入不正確。然後,產生的運算環境也是 INVALID
。
但是,假設您在命令或SDK程式碼中輸入ARNIAM AWS CLI 資源的名稱或 。在此情況下, AWS Batch 無法驗證字串。相反地, AWS Batch 必須接受錯誤值,並嘗試建立環境。如果 AWS Batch 無法建立環境,環境會移至 INVALID
狀態,您會看到下列錯誤。
如為無效的服務角色:
CLIENT_ERROR - Not authorized to perform sts:AssumeRole (Service:
AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID:
dc0e2d28-2e99-11e7-b372-7fcc6fb65fe7)
如為無效的 Spot Fleet 角色:
CLIENT_ERROR - Parameter: SpotFleetRequestConfig.IamFleetRole is invalid. (Service:
AmazonEC2; Status Code: 400; Error Code: InvalidSpotFleetRequestConfig; Request ID:
331205f0-5ae3-4cea-bac4-897769639f8d) Parameter: SpotFleetRequestConfig.IamFleetRole is
invalid
此問題的一個常見原因如下。您只能在使用 AWS CLI 或 時指定IAM角色的名稱 AWS SDKs,而不是完整的 Amazon Resource Name (ARN)。視您建立角色的方式而定, ARN可能包含aws-service-role
路徑字首。例如,如果您使用 中的程序手動建立 AWS Batch 服務角色使用 的服務連結角色 AWS Batch,您的服務角色ARN可能會如下所示。
arn:aws:iam::123456789012
:role/AWSBatchServiceRole
不過,如果您今天在主控台首次執行精靈中建立了服務角色,您的服務角色ARN可能會如下所示。
arn:aws:iam::123456789012
:role/aws-service-role/AWSBatchServiceRole
如果您將 AWS Batch 服務層級政策 (AWSBatchServiceRole
) 連接至非服務角色,也可能發生此問題。例如,在此案例中,您可能會收到類似下列內容的錯誤訊息:
CLIENT_ERROR - User: arn:aws:sts::
account_number
:assumed-role/batch-replacement-role/aws-batch is not authorized to perform:action
on resource ...
若要解決此問題,請執行下列其中一項操作。
-
當您建立 AWS Batch 運算環境時,請使用服務角色的空字串。
-
以下列格式指定服務角色:
arn:aws:iam::
。account_number
:role/aws-service-role/batch.amazonaws.com/AWSServiceRoleForBatch
當您在使用 AWS CLI 或 時,只指定IAM角色的名稱時 AWS SDKs, 會 AWS Batch 假設您的 ARN不使用aws-service-role
路徑字首。因此,我們建議您在建立運算環境時ARN,為IAM角色指定完整。
若要修復以這種方式設定錯誤的運算環境,請參閱 修復INVALID運算環境。
修復INVALID
運算環境
當您的運算環境處於 INVALID
狀態時,請更新它以修復無效的參數。對於 不正確的角色名稱或 ARN,請使用正確的服務角色更新運算環境。
修復設定錯誤的運算環境
-
在 開啟 AWS Batch 主控台https://console.aws.amazon.com/batch/
。 -
從導覽列中,選取要 AWS 區域 使用的 。
-
在導覽窗格中,選擇 Compute environments (運算環境)。
-
在 Compute environments (運算環境) 頁面,選擇要編輯的運算環境旁的選項按鈕,然後選擇 Edit (編輯)。
-
在更新運算環境頁面上,針對服務角色 ,選擇要與運算環境搭配使用IAM的角色。 AWS Batch 主控台只會顯示與運算環境有正確信任關係的角色。
-
選擇 Save (儲存),更新運算環境。