「Amazon ECS にデプロイ」アクション YAML - Amazon CodeCatalyst

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

「Amazon ECS にデプロイ」アクション YAML

以下は、[Amazon ECS にデプロイ] アクションの YAML 定義です。このアクションの使用方法については、「ワークフローを使用した Amazon ECS へのデプロイ」を参照してください。

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

注記

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

# The workflow definition starts here. # See 最上位プロパティ for details. Name: MyWorkflow SchemaVersion: 1.0 Actions: # The action definition starts here. ECSDeployAction_nn: Identifier: aws/ecs-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: iam-role-name Inputs: # Specify a source or an artifact, but not both. Sources: - source-name-1 Artifacts: - task-definition-artifact Configuration: region: us-east-1 cluster: ecs-cluster service: ecs-service task-definition: task-definition-path force-new-deployment: false|true codedeploy-appspec: app-spec-file-path codedeploy-application: application-name codedeploy-deployment-group: deployment-group-name codedeploy-deployment-description: deployment-description

ECSDeployAction

(必須)

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

デフォルト: ECSDeployAction_nn

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

Identifier

(ECSDeployAction/Identifier)

(必須)

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

デフォルト: aws/ecs-deploy@v1

対応する UI: ワークフロー図/ECSDeployAction _nn/aws/ecs-deploy@v1 ラベル

DependsOn

(ECSDeployAction/DependsOn)

(オプション)

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

「DependsOn」機能の詳細については、「アクションの順序付け」を参照してください。

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

Compute

(ECSDeployAction/Compute)

(オプション)

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

対応する UI: [なし]

Type

(ECSDeployAction/Compute/Type)

(Compute が含まれている場合は必須)

コンピューティングエンジンのタイプです。次のいずれかの値を使用できます。

  • EC2 (ビジュアルエディタ) または EC2 (YAML エディタ)

    アクション実行時の柔軟性を目的として最適化されています。

  • Lambda (ビジュアルエディタ) または Lambda (YAML エディタ)

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

コンピューティングタイプの詳細については、「コンピューティングタイプ」を参照してください。

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

Fleet

(ECSDeployAction/Compute/Fleet)

(オプション)

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

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

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

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

Timeout

(ECSDeployAction/Timeout)

(オプション)

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

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

Environment

(ECSDeployAction/Environment)

(必須)

アクションで使用する CodeCatalyst 環境を指定します。アクションは、選択した環境で指定された AWS アカウント および任意の Amazon VPC に接続します。このアクションは、 環境で指定されたデフォルトの IAM ロールを使用して AWS アカウント に接続し、[Amazon VPC 接続] で指定された IAM ロールを使用して Amazon VPC に接続します。

注記

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

環境タグ付けの詳細については、「AWS アカウント と VPCsへのデプロイ」と「環境を作成する」を参照してください。

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

Name

(ECSDeployAction/Environment/Name)

(Environment が含まれている場合は必須)

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

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

Connections

(ECSDeployAction/Environment/Connections)

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

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

アカウント接続を指定しない場合:

  • このアクションは、CodeCatalyst コンソールの環境で指定された AWS アカウント 接続とデフォルトの IAM ロールを使用します。アカウント接続とデフォルトの IAM ロールを環境に追加する方法については、「環境を作成する」を参照してください。

  • デフォルトの IAM ロールには、 アクションに必要なポリシーとアクセス許可が含まれている必要があります。これらのポリシーとアクセス許可を確認するには、アクションの YAML 定義ドキュメントの [ロール] プロパティの説明を参照してください。

アカウント接続の詳細については、「接続された AWS リソースへのアクセスを許可する AWS アカウント」を参照してください。アカウント接続を環境に追加する方法については、「環境を作成する」を参照してください。

対応する UI: アクションのバージョンに応じて、次のいずれか。

  • (新しいバージョン) [設定] タブ/[環境]/[my-environment の内容]/3 つのドットメニュー/[ロールを切り替える]

  • (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/[AWS アカウント接続]

Name

(ECSDeployAction/Environment/Connections/Name)

(Connections が含まれている場合は必須)

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

対応する UI: アクションのバージョンに応じて、次のいずれか。

  • (新しいバージョン) [設定] タブ/[環境]/[my-environment の内容]/3 つのドットメニュー/[ロールを切り替える]

  • (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/[AWS アカウント接続]

Role

(ECSDeployAction/Environment/Connections/Role)

(Connections が含まれている場合は必須)

Amazon ECS にデプロイ」アクションがアクセス AWS とに使用する IAM ロールの名前を指定します。ロールを CodeCatalyst スペース に追加し、ロールに次のポリシーが含まれていることを確認します。

IAM ロールを指定しない場合、アクションは CodeCatalyst コンソールの [環境] に記載されているデフォルトの IAM ロールを使用します。環境でデフォルトのロールを使用する場合は、次のポリシーがあることを確認してください。

  • 以下のアクセス許可ポリシー:

    警告

    アクセス許可は、次のポリシーに示すアクセス許可に制限します。より広範なアクセス許可を持つロールを使用すると、セキュリティリスクが発生する可能性があります。

    { "Version": "2012-10-17", "Statement": [{ "Action":[ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:DeleteTaskSet", "ecs:ListClusters", "ecs:RegisterTaskDefinition", "ecs:UpdateServicePrimaryTaskSet", "ecs:UpdateService", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "lambda:ListFunctions", "cloudwatch:DescribeAlarms", "sns:Publish", "sns:ListTopics", "s3:GetObject", "s3:GetObjectVersion", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment" ], "Resource":"*", "Effect":"Allow" },{"Action":[ "iam:PassRole" ], "Effect":"Allow", "Resource":"*", "Condition":{"StringLike":{"iam:PassedToService":[ "ecs-tasks.amazonaws.com", "codedeploy.amazonaws.com" ] } } }] }
    注記

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

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
注記

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

対応する UI: アクションのバージョンに応じて、次のいずれか。

  • (新しいバージョン) [設定] タブ/[環境]/[my-environment の内容]/3 つのドットメニュー/[ロールを切り替える]

  • (旧バージョン) [設定] タブ/「環境/アカウント/ロール」/[ロール]

Inputs

(ECSDeployAction/Inputs)

(オプション)

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

注記

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

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

Sources

(ECSDeployAction/Inputs/Sources)

(タスク定義ファイルがソースリポジトリに保存されている場合は必須)

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

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

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

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

Artifacts - input

(ECSDeployAction/Inputs/Artifacts)

(タスク定義ファイルが前のアクションの出力アーティファクトに保存されている場合は必須)

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

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

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

Configuration

(ECSDeployAction/Configuration)

(必須)

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

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

region

(Configuration/region)

(必須)

Amazon ECS クラスターとサービスが存在する AWS リージョンを指定します。リージョンコードの一覧については、「AWS 全般のリファレンス」の「Regional endpoints」を参照してください。

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

cluster

(ECSDeployAction/Configuration/cluster)

(必須)

既存の Amazon ECS クラスターの名前を指定します。[Amazon ECS にデプロイ] アクションは、コンテナ化されたアプリケーションをタスクとしてこのクラスターにデプロイします。詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「クラスター」を参照してください。

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

service

(ECSDeployAction/Configuration/service)

(必須)

タスク定義ファイルをインスタンス化する既存の Amazon ECS サービスの名前を指定します。このサービスは、 cluster フィールドで指定されたクラスターの下に存在する必要があります。Amazon ECS サービスの詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS サービスとは」を参照してください。

対応する UI: [設定] タブ/[サービス]

task-definition

(ECSDeployAction/Configuration/task-definition)

(必須)

既存のタスク定義ファイルへのパスを指定します。ファイルがソースリポジトリに存在する場合、パスはソースリポジトリのルートフォルダに相対します。ファイルが以前のワークフローアクションのアーティファクトに存在する場合、パスはアーティファクトルートフォルダを基準としています。タスク定義ファイルの詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「タスク定義」 を参照してください。

対応する UI: [設定] タブ/[タスク定義]

force-new-deployment

(ECSDeployAction/Configuration/force-new-deployment)

(必須)

有効にすると、Amazon ECS サービスはサービス定義を変更せずに新しいデプロイを開始できます。デプロイを強制すると、サービスは現在実行中のすべてのタスクを停止し、新しいタスクを起動します。新しいデプロイの強制の詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「サービスの更新」を参照してください。

デフォルト: false

対応する UI: [設定] タブ/[サービスの新しいデプロイを強制する]

codedeploy-appspec

(ECSDeployAction/Configuration/codedeploy-appspec)

(ブルー/グリーンデプロイを使用するように Amazon ECS サービスを設定している場合は必須。それ以外の場合は省略)

既存の CodeDeploy アプリケーション仕様 (AppSpec) ファイルの名前とパスを指定します。このファイルは、CodeCatalyst ソースリポジトリのルートに存在する必要があります。AppSpec ファイルの詳細については、「AWS CodeDeploy ユーザーガイド」の「CodeDeploy アプリケーション指定 (AppSpec)」を参照してください。

注記

CodeDeploy 情報を指定するのは、Blue/Green デプロイを実行するように Amazon ECS サービスを設定している場合のみです。ローリング更新デプロイ (デフォルト) の場合、CodeDeploy 情報は省略します。Amazon ECS デプロイの詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECS のデプロイタイプ」を参照してください。

注記

[CodeDeploy] フィールドは、ビジュアルエディタで非表示になっている場合があります。表示するには、「ビジュアルエディタに CodeDeploy フィールドがないのはなぜですか?」を参照してください。

対応する UI: [設定] タブ/[CodeDeploy AppSpec]

codedeploy-application

(ECSDeployAction/Configuration/codedeploy-application)

(codedeploy-appspec が含まれている場合は必須)

既存の CodeDeploy アプリケーションの名前を指定します。詳細については、「AWS CodeDeploy ユーザーガイド」の「CodeDeploy でアプリケーションを使用する」を参照してください。

対応する UI: [設定] タブ/[CodeDeploy アプリケーション]

codedeploy-deployment-group

(ECSDeployAction/Configuration/codedeploy-deployment-group)

(codedeploy-appspec が含まれている場合は必須)

既存の CodeDeploy デプロイグループの名前を指定します。CodeDeploy デプロイグループの詳細については、「AWS CodeDeploy ユーザーガイド」の「CodeDeploy でのデプロイグループを使用する」を参照してください。

対応する UI: [設定] タブ/[CodeDeploy デプロイグループ]

codedeploy-deployment-description

(ECSDeployAction/Configuration/codedeploy-deployment-description)

(オプション)

このアクションが作成するデプロイの説明を指定します。詳細については、「AWS CodeDeploy ユーザーガイド」の「CodeDeploy でデプロイする」を参照してください。

対応する UI: [設定] タブ/[CodeDeploy デプロイの説明]