INVALID 運算環境 - AWS Batch

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

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,請使用正確的服務角色更新運算環境。

修復設定錯誤的運算環境
  1. 在 開啟 AWS Batch 主控台https://console.aws.amazon.com/batch/

  2. 從導覽列中,選取要 AWS 區域 使用的 。

  3. 在導覽窗格中,選擇 Compute environments (運算環境)。

  4. Compute environments (運算環境) 頁面,選擇要編輯的運算環境旁的選項按鈕,然後選擇 Edit (編輯)。

  5. 更新運算環境頁面上,針對服務角色 ,選擇要與運算環境搭配使用IAM的角色。 AWS Batch 主控台只會顯示與運算環境有正確信任關係的角色。

  6. 選擇 Save (儲存),更新運算環境。