

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

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

# 「Kubernetes クラスターにデプロイ」アクション YAML
<a name="deploy-action-ref-eks"></a>

**[Kubernetes クラスターにデプロイ]** アクションの YAML 定義を次に示します。このアクションの使用方法については、「[ワークフローを使用して Amazon EKS にデプロイする](deploy-action-eks.md)」を参照してください。

このアクション定義は、より広範なワークフロー定義ファイル内のセクションとして存在します。ファイルの詳細については、「[ワークフロー YAML 定義](workflow-reference.md)」を参照してください。

**注記**  
後続の YAML プロパティのほとんどには、対応する UI 要素がビジュアルエディタにあります。UI 要素を検索するには、**[Ctrl\$1F]** を使用します。要素は、関連付けられた YAML プロパティとともに一覧表示されます。

```
# The workflow definition starts here.
# See 最上位プロパティ for details.
        
Name: MyWorkflow
SchemaVersion: 1.0 
Actions:

# The action definition starts here.   
  DeployToKubernetesCluster\$1nn: 
    Identifier: aws/kubernetes-deploy@v1
    DependsOn:
      - build-action
    Compute:  
        - Type: EC2 | Lambda
        - Fleet: fleet-name
    Timeout: timeout-minutes
    Environment:
      Name: environment-name
      Connections:
        - Name: account-connection-name
          Role: DeployToEKS
    Inputs:
      # Specify a source or an artifact, but not both.
      Sources:
        - source-name-1
      Artifacts:
        - manifest-artifact
    Configuration:
      Namespace: namespace
      Region: us-east-1 
      Cluster: eks-cluster
      Manifests: manifest-path
```

## DeployToKubernetesCluster
<a name="deploy.action.eks.name"></a>

(必須)

アクションの名前を指定します。すべてのアクション名は、ワークフロー内で一意である必要があります。アクション名で使用できるのは、英数字 (a～z、A～Z、0～9)、ハイフン (-)、アンダースコア (\$1) のみです。スペースは使用できません。引用符を使用して、アクション名の特殊文字とスペースを有効にすることはできません。

デフォルト: `DeployToKubernetesCluster_nn`。

対応する UI: [設定] タブ/**[アクション表示名]**

## Identifier
<a name="deploy.action.eks.identifier"></a>

(*DeployToKubernetesCluster*/**Identifier**)

(必須)

アクションを識別します。バージョンを変更したい場合でない限り、このプロパティを変更しないでください。詳細については、「[使用するアクションバージョンの指定](workflows-action-versions.md)」を参照してください。

デフォルト: `aws/kubernetes-deploy@v1`。

対応する UI: ワークフロー図/DeployToKubernetesCluster\$1nn/**aws/kubernetes-deploy@v1** ラベル

## DependsOn
<a name="deploy.action.eks.dependson"></a>

(*DeployToKubernetesCluster*/**DependsOn**)

(オプション)

このアクションを実行するために正常に実行する必要があるアクション、アクショングループ、またはゲートを指定します。

「DependsOn」機能の詳細については、「[アクションの順序付け](workflows-depends-on.md)」を参照してください。

対応する UI: [入力] タブ/**[依存 - オプション]**

## Compute
<a name="deploy.action.eks.computename"></a>

(*DeployToKubernetesCluster*/**Compute**)

(オプション)

ワークフローアクションの実行に使用されるコンピューティングエンジンです。コンピューティングはワークフローレベルまたはアクションレベルで指定できますが、両方を指定することはできません。ワークフローレベルで指定すると、コンピューティング設定はワークフローで定義されたすべてのアクションに適用されます。ワークフローレベルでは、同じインスタンスで複数のアクションを実行することもできます。詳細については、「[アクション間でのコンピューティングの共有する](compute-sharing.md)」を参照してください。

対応する UI: *[なし]*

## Type
<a name="deploy.action.eks.computetype"></a>

(*DeployToKubernetesCluster*/Compute/**Type**)

([Compute](#deploy.action.eks.computename) が含まれている場合は必須)

コンピューティングエンジンのタイプです。次のいずれかの値を使用できます。
+ **EC2** (ビジュアルエディタ) または `EC2` (YAML エディタ)

  アクション実行時の柔軟性を目的として最適化されています。
+ **Lambda** (ビジュアルエディタ) または `Lambda` (YAML エディタ)

  アクションの起動速度を最適化しました。

コンピューティングタイプの詳細については、「[コンピューティングタイプ](workflows-working-compute.md#compute.types)」を参照してください。

対応する UI: [設定] タブ/[高度な設定 - オプション]/**[コンピューティングタイプ]**

## Fleet
<a name="deploy.action.eks.computefleet"></a>

(*DeployToKubernetesCluster*/Compute/**Fleet**)

(オプション)

ワークフローまたはワークフローアクションを実行するマシンまたはフリートを指定します。オンデマンドフリートでは、アクションが開始すると、ワークフローは必要なリソースをプロビジョニングし、アクションが完了するとマシンは破棄されます。オンデマンドフリートの例: `Linux.x86-64.Large`、`Linux.x86-64.XLarge`。オンデマンドフリートの詳細については、「[オンデマンドフリートのプロパティ](workflows-working-compute.md#compute.on-demand)」を参照してください。

プロビジョニングされたフリートでは、ワークフローアクションを実行するように専用マシンのセットを設定します。これらのマシンはアイドル状態のままで、アクションをすぐに処理できます。プロビジョニングされたフリートの詳細については、「[プロビジョニングされたフリートのプロパティ](workflows-working-compute.md#compute.provisioned-fleets)」を参照してください。

`Fleet` を省略した場合、デフォルトは `Linux.x86-64.Large` です。

対応する UI: [設定] タブ/[高度な設定 - オプション]/**[コンピューティングフリート]**

## Timeout
<a name="deploy.action.eks.timeout"></a>

(*DeployToKubernetesCluster*/**Timeout**)

(オプション)

CodeCatalyst がアクションを終了するまでにアクションを実行できる時間を分単位 (YAML エディタ) または時間分単位 (ビジュアルエディタ) で指定します。最小値は 5 分で、最大値は [CodeCatalyst のワークフローのクォータ](workflows-quotas.md) で記述されています。デフォルトのタイムアウトは、最大タイムアウトと同じです。

対応する UI: [設定] タブ/**[タイムアウト - オプション]**

## Environment
<a name="deploy.action.eks.environment"></a>

(*DeployToKubernetesCluster*/**Environment**)

(必須)

アクションで使用する CodeCatalyst 環境を指定します。アクションは、選択した環境で指定された AWS アカウント およびオプションの Amazon VPC に接続します。アクションは、環境で指定されたデフォルトの IAM ロールを使用して に接続し AWS アカウント、[Amazon VPC 接続](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.add.html)で指定された IAM ロールを使用して Amazon VPC に接続します。

**注記**  
デフォルトの IAM ロールにアクションに必要なアクセス許可がない場合は、別のロールを使用するようにアクションを設定できます。詳細については、「[アクションの IAM ロールの変更](deploy-environments-switch-role.md)」を参照してください。

環境タグ付けの詳細については、「[AWS アカウント と VPCs へのデプロイ](deploy-environments.md)」と「[環境を作成する](deploy-environments-creating-environment.md)」を参照してください。

対応する UI: [設定] タブ/**[環境]**

## Name
<a name="deploy.action.eks.environment.name"></a>

(*DeployToKubernetesCluster*/Environment/**Name**)

([Environment](#deploy.action.eks.environment) が含まれている場合は必須)

アクションに関連付ける既存の環境の名前を指定します。

対応する UI: [設定] タブ/**[環境]**

## Connections
<a name="deploy.action.eks.environment.connections"></a>

(*DeployToKubernetesCluster*/Environment/**Connections**)

(新しいバージョンのアクションでは任意。古いバージョンでは必須)

アクションに関連付けるアカウント接続を指定します。`Environment` で最大 1 つのアカウント接続を指定できます。

アカウント接続を指定しない場合:
+ アクションは、CodeCatalyst コンソールの環境で指定された AWS アカウント 接続とデフォルトの IAM ロールを使用します。アカウント接続とデフォルトの IAM ロールを環境に追加する方法については、「[環境を作成する](deploy-environments-creating-environment.md)」を参照してください。
+ デフォルトの IAM ロールには、アクションに必要なポリシーとアクセス許可が含まれている必要があります。これらのポリシーとアクセス許可を確認するには、アクションの YAML 定義ドキュメントの **[ロール]** プロパティの説明を参照してください。

アカウント接続の詳細については、「[接続された AWS リソースへのアクセスを許可する AWS アカウント](ipa-connect-account.md)」を参照してください。アカウント接続を環境に追加する方法については、「[環境を作成する](deploy-environments-creating-environment.md)」を参照してください。

対応する UI: アクションのバージョンに応じて、次のいずれか。
+ (新しいバージョン) [設定] タブ/[環境]/[*my-environment* の内容]/3 つのドットメニュー/**[ロールを切り替える]**
+ (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/**[AWS アカウント接続]**

## Name
<a name="deploy.action.eks.environment.connections.name"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Name**)

(オプション)

アカウント接続の名前を指定します。

対応する UI: アクションのバージョンに応じて、次のいずれか。
+ (新しいバージョン) [設定] タブ/[環境]/[*my-environment* の内容]/3 つのドットメニュー/**[ロールを切り替える]**
+ (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/**[AWS アカウント接続]**

## Role
<a name="deploy.action.eks.environment.connections.role"></a>

(*DeployToKubernetesCluster*/Environment/Connections/**Role**)

([Connections](#deploy.action.eks.environment.connections) が含まれている場合は必須)

**[Kubernetes クラスターにデプロイ]** アクションがアクセス AWSとに使用する IAM ロールの名前を指定します。[ロールを CodeCatalyst スペース に追加](ipa-connect-account-addroles.md)し、ロールに次のポリシーが含まれていることを確認します。

IAM ロールを指定しない場合、アクションは CodeCatalyst コンソールの [[環境]](deploy-environments.md) に記載されているデフォルトの IAM ロールを使用します。環境でデフォルトのロールを使用する場合は、次のポリシーがあることを確認してください。
+ 以下のアクセス許可ポリシー:
**警告**  
アクセス許可は、次のポリシーに示すアクセス許可に制限します。より広範なアクセス許可を持つロールを使用すると、セキュリティリスクが発生する可能性があります。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "eks:DescribeCluster",
                  "eks:ListClusters"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
**注記**  
ロールを初めて使用するとき、リソースポリシーステートメントで次のワイルドカードを使用し、使用可能になった後にリソース名でポリシーをスコープダウンします。  

  ```
  "Resource": "*"
  ```
+ 次のカスタム信頼ポリシー:

このロールが、以下に追加されていることを確認します。
+ アカウント接続です。IAM ロールとアカウント接続の追加の詳細については、「[IAM ロールをアカウント接続に追加する](ipa-connect-account-addroles.md)」を参照してください。
+ Kubernetes ConfigMap です。ConfigMap に IAM ロールを追加する方法の詳細については、`eksctl` ドキュメントの「[IAM ユーザーとロールの管理](https://eksctl.io/usage/iam-identity-mappings/)」を参照してください。

**ヒント**  
アカウント接続と ConfigMap に IAM ロールを追加する手順については、「[チュートリアル: Amazon EKS にアプリケーションをデプロイする](deploy-tut-eks.md)」も参照してください。

**注記**  
必要に応じて、このアクションで `CodeCatalystWorkflowDevelopmentRole-spaceName` ロールを使用できます。このロールの詳細については、「[アカウントとスペース用の **CodeCatalystWorkflowDevelopmentRole-*spaceName*** ロールを作成する](ipa-iam-roles.md#ipa-iam-roles-service-create)」を参照してください。`CodeCatalystWorkflowDevelopmentRole-spaceName` ロールにはフルアクセス許可があり、セキュリティ上のリスクをもたらす可能性があることを理解してください。このロールは、セキュリティが懸念されないチュートリアルやシナリオでのみ使用することをお勧めします。

対応する UI: アクションのバージョンに応じて、次のいずれか。
+ (新しいバージョン) [設定] タブ/[環境]/[*my-environment* の内容]/3 つのドットメニュー/**[ロールを切り替える]**
+ (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/**[ロール]**

## Inputs
<a name="deploy.action.eks.inputs"></a>

(*DeployToKubernetesCluster*/**Inputs**)

([Connections](#deploy.action.eks.environment.connections) が含まれている場合は必須)

`Inputs` セクションでは、ワークフローの実行中に `DeployToKubernetesCluster` に必要なデータを定義します。

**注記**  
**[Amazon EKS にデプロイ]** アクションごとに 1 つの入力 (ソースまたはアーティファクト) のみが許可されます。

対応する UI: **[入力]** タブ

## Sources
<a name="deploy.action.eks.inputs.sources"></a>

(*DeployToKubernetesCluster*/Inputs/**Sources**)

(マニフェストファイルがソースリポジトリに保存されている場合は必須)

Kubernetes マニフェストファイルがソースリポジトリに保存されている場合は、そのソースリポジトリのラベルを指定します。現在サポートされているラベルは、`WorkflowSource` のみです。

マニフェストファイルがソースリポジトリに含まれていない場合、別のアクションによって生成されたアーティファクトに存在する必要があります。

sources の詳細については、「[ワークフローへのソースリポジトリの接続](workflows-sources.md)」を参照してください。

対応する UI: 入力タブ/**[ソース - オプション]**

## Artifacts - input
<a name="deploy.action.eks.inputs.artifacts"></a>

(*DeployToKubernetesCluster*/Inputs/**Artifacts**)

(マニフェストファイルが前のアクションの [[出力アーティファクト]](workflows-working-artifacts-output.md) に保存されている場合は必須)

Kubernetes マニフェストファイルまたはファイルが前のアクションによって生成されたアーティファクトに含まれている場合は、ここでそのアーティファクトを指定します。マニフェストファイルがアーティファクトに含まれていない場合は、ソースリポジトリに存在する必要があります。

アーティファクトの詳細 (例を含む) については、「[アクション間でのアーティファクトとファイルの共有](workflows-working-artifacts.md)」を参照してください。

対応する UI: [設定] タブ/**[アーティファクト - オプション]**

## Configuration
<a name="deploy.action.eks.configuration"></a>

(*DeployToKubernetesCluster*/**Configuration**)

(必須)

アクションの設定プロパティを定義できるセクション。

対応する UI: **[設定]** タブ

## Namespace
<a name="deploy.action.eks.namespace"></a>

(*DeployToKubernetesCluster*/Configuration/**Namespace**)

(オプション)

Kubernetes アプリケーションをデプロイする Kubernetes 名前空間を指定します。クラスターで名前空間を使用しない場合は、`default` を使用します。ネームスペースの詳細については、Kubernetes ドキュメントの「[「Kubernetes 名前空間を使用したクラスターの分割](https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#subdividing-your-cluster-using-kubernetes-namespaces)」を参照してください。

名前空間を省略すると、`default` の値が使用されます。

対応する UI: [設定] タブ/**[名前空間]**

## Region
<a name="deploy.action.eks.region"></a>

(*DeployToKubernetesCluster*/Configuration/**Region**)

(必須)

Amazon EKS クラスターとサービスが存在する AWS リージョンを指定します。リージョンコードの一覧については、「*AWS 全般のリファレンス*」の「[Regional endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#region-names-codes)」を参照してください。

対応する UI: [設定] タブ/**[リージョン]**

## Cluster
<a name="deploy.action.eks.cluster"></a>

(*DeployToKubernetesCluster*/Configuration/**Cluster**)

(必須)

既存の Amazon EKS クラスターの名前を指定します。**[Kubernetes クラスターにデプロイ]** アクションは、コンテナ化されたアプリケーションをこのクラスターにデプロイします。詳細については、「**Amazon EKS ユーザーガイド**」の「[クラスター](https://docs.aws.amazon.com/eks/latest/userguide/clusters.html)」を参照してください。

対応する UI: [設定] タブ/**[クラスター]**

## Manifests
<a name="deploy.action.eks.manifest"></a>

(*DeployToKubernetesCluster*/Configuration/**Manifests**)

(必須)

YAML 形式の Kubernetes マニフェストファイルへのパスを指定します (Kubernetes ドキュメントでは、*[設定ファイル]* 、*[設定ファイル]*、または単に *[設定]* と呼ばれます）。

複数のマニフェストファイルを使用している場合は、それらを 1 つのフォルダに配置し、そのフォルダを参照します。マニフェストファイルは Kubernetes によって英数字で処理されるため、処理順序を制御するには、ファイル名の前に必ず数字または文字を増やしてください。例えば、次のようになります。

`00-namespace.yaml`

`01-deployment.yaml`

マニフェストファイルがソースリポジトリに存在する場合、パスはソースリポジトリのルートフォルダに相対します。ファイルが以前のワークフローアクションのアーティファクトに存在する場合、パスはアーティファクトルートフォルダに相対します。

例:

`Manifests/`

`deployment.yaml`

`my-deployment.yml`

ワイルドカード (`*`) は使用しないでください。

**注記**  
[[Helm チャート]](https://helm.sh/docs/topics/charts/) と [[kustomization ファイル]](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/) はサポートされていません。

マニフェストファイルの詳細については、Kubernetes ドキュメントの「[リソース設定の整理](https://kubernetes.io/docs/concepts/cluster-administration/manage-deployment/#organizing-resource-configurations)」を参照してください。

対応する UI: **[設定]** タブ