AWS CodeDeploy
ユーザーガイド (API バージョン 2014-10-06)

AppSpec の「resources」セクション (Amazon ECS および AWS Lambda のデプロイのみ)

AppSpec file の 'resources' セクションの内容は、デプロイのコンピューティングプラットフォームによって異なります。Amazon ECS デプロイの 'resources' セクションには、Amazon ECS タスク定義、最新の Amazon ECS タスクセットにトラフィックをルーティングするためのコンテナとポート、およびその他のオプション情報が含まれています。AWS Lambda デプロイの 'resources' セクションには、Lambda 関数の名前、エイリアス、現在のバージョン、およびターゲットのバージョンが含まれています。

AWS Lambda デプロイ用の AppSpec の「resources」セクション

'resources' セクションでは、デプロイする Lambda 関数を指定します。その構造は次のとおりです。

YAML:

resources: - name-of-function-to-deploy: type: "AWS::Lambda::Function" properties: name: name-of-lambda-function-to-deploy alias: alias-of-lambda-function-to-deploy currentversion: version-of-the-lambda-function-traffic-currently-points-to targetversion: version-of-the-lambda-function-to-shift-traffic-to

JSON:

"resources": [{ "name-of-function-to-deploy" { "type": "AWS::Lambda::Function", "properties": { "name": "name-of-lambda-function-to-deploy", "alias": "alias-of-lambda-function-to-deploy", "currentversion": "version-of-the-lambda-function-traffic-currently-points-to", "targetversion": "version-of-the-lambda-function-to-shift-traffic-to" } } }]

各プロパティは文字列で指定します。

  • name – 必須。これはデプロイする Lambda 関数の名前です。

  • alias – 必須。これは Lambda 関数のエイリアスの名前です。

  • currentversion – 必須。これは、トラフィックが現在指している Lambda 関数のバージョンです。

  • targetversion – 必須。これは、トラフィックの移行先の Lambda 関数のバージョンです。

Amazon ECS デプロイ用の AppSpec の「resources」セクション

'resources' セクションでは、デプロイする Amazon ECS サービスを指定します。その構造は次のとおりです。

YAML:

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-ARN" LoadBalancerInfo: ContainerName: "ECS-container-name-for-your-ECS-application" ContainerPort: port-used-by-your-ECS-application # Optional properties PlatformVersion: "ecs-service-platform-version" NetworkConfiguration: AwsvpcConfiguration: Subnets: ["ecs-subnet-1","ecs-subnet-n"] SecurityGroups: ["ecs-security-group-1","ecs-security-group-n"] AssignPublicIp: "ENABLED-or-DISABLED"

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "", "LoadBalancerInfo": { "ContainerName": "", "ContainerPort": }, "PlatformVersion": "", "NetworkConfiguration": { "AwsvpcConfiguration": { "Subnets": [ "", "" ], "SecurityGroups": [ "", "" ], "AssignPublicIp": "" } } } } } ]

各プロパティは文字列で指定します。

  • TaskDefinition – 必須。これはデプロイする Amazon ECS サービスのタスク定義です。タスク定義の ARN で指定します。ARN 形式は arn:aws:ecs:aws-region:account-id:task-definition/task-definition-family:task-definition-revision です。詳細については、「Amazon リソースネーム (ARN) と AWS サービスの名前空間」を参照してください。

  • ContainerName – 必須。これは、Amazon ECS アプリケーションを含む Amazon ECS コンテナの名前です。Amazon ECS タスク定義で指定されたコンテナにする必要があります。

  • Port – 必須。これは、ロードバランサーがデプロイ中にトラフィックを再ルーティングするポートです。

  • PlatformVersion: オプション.デプロイされた Amazon ECS サービス内の、Fargate タスクのプラットフォームのバージョン。詳細については、「AWS Fargate プラットフォームバージョン」を参照してください。

  • NetworkConfiguration: オプション.AwsvpcConfiguration で、以下を指定することができます。詳細については、Amazon ECS Container Service API リファレンスの「AwsVpcConfiguration」を参照してください。

    • Subnets: オプション.Amazon ECS サービス内の、1 つ以上のサブネットのカンマ区切りリスト。

    • SecurityGroups: オプション.Amazon Elastic Container Service にある、1 つ以上のセキュリティグループのカンマ区切りリスト。

    • AssignPublicIp: オプション.Amazon ECS サービスの Elastic Network Interface がパブリック IP アドレスを受け取るかどうかを指定する文字列。有効な値は ENABLEDDISABLED です。

    注記

    NetworkConfiguration の下にあるすべての設定を指定するか、何も指定しない必要があります。たとえば、Subnets を指定する場合は、 SecurityGroupsAssignPublicIp も指定する必要があります。何も指定しない場合、CodeDeploy は現在のネットワーク Amazon ECS 設定を使用します。