

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# `INVALID` コンピューティング環境
<a name="invalid_compute_environment"></a>

マネージド型コンピューティング環境を誤って設定した可能性があります。設定した場合、コンピューティング環境は `INVALID` の状態になり、配置するジョブを受け入れられなくなります。以下のセクションでは、考えられる原因と、その原因に基づいたトラブルシューティング方法について説明します。

**重要**  
AWS Batch は、Amazon EC2 起動テンプレート、Amazon EC2 Auto Scaling グループ、Amazon EC2 スポットフリート、Amazon ECS クラスターなど、ユーザーに代わってアカウント内で複数の AWS リソースを作成および管理します。これらのマネージドリソースは、最適な AWS Batch オペレーションを確保するために特別に設定されています。これらのバッチマネージドリソースを手動で変更すると、 AWS Batch ドキュメントに明示的に記載されていない限り、予期しない動作が発生し、`INVALID` コンピューティング環境、最適ではないインスタンススケーリング動作、ワークロード処理の遅延、予期しないコストが発生する可能性があります。これらの手動変更を AWS Batch サービスで決定的にサポートすることはできません。コンピューティング環境を管理するには、サポートされている Batch API または Batch コンソールを必ず使用してください。

## 正しくないロール名または ARN
<a name="invalid_service_role_arn"></a>

コンピューティング環境が `INVALID`状態になる最も一般的な原因は、 AWS Batch サービスロールまたは Amazon EC2 スポットフリートロールの名前または Amazon リソースネーム (ARN) が正しくないことです。これは、 AWS CLI または AWS SDKs。でコンピューティング環境を作成する AWS Batch と AWS マネジメントコンソール、正しいサービスまたはスポットフリートロールを選択できます。ただし、名前または ARN を手動で入力し、またはそれを間違って入力したとします。そうすると、生成されるコンピューティング環境も `INVALID` になります。

しかし、IAM リソースの名前または ARN を AWS CLI コマンドまたは SDK コードに手動で入力すると仮定します。この場合、 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)`

無効なスポットフリートロールの場合:

`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 または AWS SDKs を使用する場合にのみ、完全な Amazon リソースネーム (ARN) ではなく、IAM ロールの名前を指定します。ロールを作成した方法によって、ARN に `aws-service-role` パスプレフィックスが含まれることがあるからです。例えば、 AWS Batch サービスロールを、[のサービスにリンクされたロールの使用 AWS Batch](using-service-linked-roles.md) の手順を使用して手動で作成すると、サービスロール 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 または AWS SDKs を使用するときに IAM ロールの名前のみを指定する場合、 は ARN が`aws-service-role`パスプレフィックスを使用しないことを AWS Batch 前提としています。このため、コンピューティング環境を作成するときには、IAM ロールに完全 ARN を指定することが推奨されます。

この設定の誤りがあるコンピューティング環境を修復するには、[`INVALID` のコンピューティング環境を修復する](#repairing_invalid_compute_environment) を参照してください。

## `INVALID` のコンピューティング環境を修復する
<a name="repairing_invalid_compute_environment"></a>

コンピューティング環境が `INVALID` の状態にある場合、無効なパラメータを修復して更新する必要があります。[正しくないロール名または ARN](#invalid_service_role_arn) については、正しいサービスロールを使ってコンピューティング環境を更新できます。

**誤って設定されたコンピューティング環境を修復するには**

1. [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/) で AWS Batch コンソールを開きます。

1. ナビゲーションバーから、 AWS リージョン 使用する を選択します。

1. ナビゲーションペインで、**[Compute environments]** (コンピューティング環境) を選択します。

1. **[Compute environments]** (コンピューティング環境) ページで、編集するコンピューティング環境の横にあるラジオボタンを選択し、**[Edit]** (編集) を選択します。

1. **[Update compute environment]** (コンピューティング環境の更新) ページの **[Service role]** (サービスロール) で、コンピューティング環境に使用する IAM ロールを選択します。 AWS Batch コンソールには、コンピューティング環境と正しい信頼関係があるロールのみが表示されます。
**ヒント**  
サービスにリンクされたロールを作成する方法に関する説明については、「[での ロールの使用 AWS Batch](using-service-linked-roles-batch-general.md)」を参照してください。

1. **[Save]** (保存) を選択して、コンピューティング環境を更新します。