

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

# を使用した Docker対応フリートの作成 AWS CLI
<a name="fleet-container-support-cli"></a>

キューロールには、Amazon ECR に対して認証し、Dockerキュー環境によって選択されたイメージをプルするアクセス許可が必要です。フリートロールのアクセス許可は、デフォルトのキュー環境ではオプションです。ホスト設定アクションまたはワーカー側のツールがキューセッションの外部でイメージをプルするときに追加します。

## 前提条件
<a name="fleet-container-cli-prerequisites"></a>

開始する前に、Deadline Cloud フリートを作成し、キューとフリートロールにポリシーをアタッチするアクセス許可 AWS CLI を持つ を設定します。Amazon ECR プライベートリポジトリには、既存のファーム、キュー、キューロール、フリートロール、コンテナイメージも必要です。

## フリートを作成する
<a name="fleet-container-cli-create"></a>

**Dockerが有効なフリートを作成するには**

1. ファーム、キュー、ロールの値を設定します。

   ```
   FARM_ID={{farm-0123456789abcdef0123456789abcdef}}
   QUEUE_ID={{queue-0123456789abcdef0123456789abcdef}}
   FLEET_ROLE_ARN={{arn:aws:iam::123456789012:role/DeadlineFleetRole}}
   MAX_WORKERS={{10}}
   
   QUEUE_ROLE_ARN=$(aws deadline get-queue \
       --farm-id "$FARM_ID" \
       --queue-id "$QUEUE_ID" \
       --query roleArn \
       --output text)
   QUEUE_ROLE_NAME=${QUEUE_ROLE_ARN##*/}
   FLEET_ROLE_NAME=${FLEET_ROLE_ARN##*/}
   ECR_READ_ONLY_POLICY=arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
   ```

1. Amazon ECR 読み取り専用ポリシーをキューロールにアタッチします。デフォルトのDockerキュー環境では、キュー認証情報を使用してイメージを認証およびプルします。

   ```
   aws iam attach-role-policy \
       --role-name "$QUEUE_ROLE_NAME" \
       --policy-arn "$ECR_READ_ONLY_POLICY"
   ```

1. (オプション) ホスト設定アクションまたはワーカー側のツールがキューセッションの外部でイメージをプルする必要がある場合、フリートロールに同じポリシーをアタッチします。

   ```
   aws iam attach-role-policy \
       --role-name "$FLEET_ROLE_NAME" \
       --policy-arn "$ECR_READ_ONLY_POLICY"
   ```

1. 次のフリート設定`docker-fleet-configuration.json`で という名前のファイルを作成します。

   ```
   {
     "serviceManagedEc2": {
       "instanceCapabilities": {
         "vCpuCount": {
           "min": 4,
           "max": 16
         },
         "memoryMiB": {
           "min": 8192,
           "max": 65536
         },
         "osFamily": "linux",
         "cpuArchitectureType": "x86_64",
         "softwareAddOns": [
           {
             "name": "docker"
           }
         ]
       },
       "instanceMarketOptions": {
         "type": "spot"
       }
     }
   }
   ```

1. サービスマネージドフリートを作成し、フリート ID を保存します。

   ```
   FLEET_ID=$(aws deadline create-fleet \
       --farm-id "$FARM_ID" \
       --display-name "Docker fleet" \
       --role-arn "$FLEET_ROLE_ARN" \
       --min-worker-count 0 \
       --max-worker-count "$MAX_WORKERS" \
       --configuration file://docker-fleet-configuration.json \
       --query fleetId \
       --output text)
   
   echo "$FLEET_ID"
   ```

1. キューをフリートに関連付けます。

   ```
   aws deadline create-queue-fleet-association \
       --farm-id "$FARM_ID" \
       --queue-id "$QUEUE_ID" \
       --fleet-id "$FLEET_ID"
   ```

## フリートとロールのアクセス許可を確認する
<a name="fleet-container-cli-verify"></a>

**コンテナのサポートを確認するには**

1. フリート設定にDockerソフトウェアアドオンが含まれていることを確認します。

   ```
   aws deadline get-fleet \
       --farm-id "$FARM_ID" \
       --fleet-id "$FLEET_ID" \
       --query 'configuration.serviceManagedEc2.instanceCapabilities.softwareAddOns'
   ```

   レスポンスに が含まれていることを確認します`"name": "docker"`。

1. キューロールに Amazon ECR 読み取り専用ポリシーがあることを確認します。

   ```
   aws iam list-attached-role-policies \
       --role-name "$QUEUE_ROLE_NAME" \
       --query 'AttachedPolicies[?PolicyName==`AmazonEC2ContainerRegistryReadOnly`]'
   ```

1. ポリシーをフリートロールにアタッチした場合は、 を使用して コマンドを繰り返します`--role-name "$FLEET_ROLE_NAME"`。

フリートはルートレス を提供しますがDocker、キューにはイメージを識別するDockerキュー環境が必要です。キュー設定の詳細については、「」を参照してください[サービスマネージドフリートのコンテナサポート](fleet-container-support.md)。