AppSpec 「リソース」セクション (Amazon ECSと AWS Lambda デプロイのみ) - AWS CodeDeploy

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

AppSpec 「リソース」セクション (Amazon ECSと AWS Lambda デプロイのみ)

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

AppSpec AWS Lambda デプロイの「リソース」セクション

'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 関数のバージョンです。値は有効な正の整数である必要があります。

AppSpec Amazon ECSデプロイの「リソース」セクション

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

YAML:

Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "task-definition-arn" LoadBalancerInfo: ContainerName: "ecs-container-name" ContainerPort: "ecs-application-port" # 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 | DISABLED" CapacityProviderStrategy: - Base: integer CapacityProvider: "capacityProviderA" Weight: integer - Base: integer CapacityProvider: "capacityProviderB" Weight: integer

JSON:

"Resources": [ { "TargetService": { "Type": "AWS::ECS::Service", "Properties": { "TaskDefinition": "task-definition-arn", "LoadBalancerInfo": { "ContainerName": "ecs-container-name", "ContainerPort": "ecs-application-port" }, "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 | DISABLED" } }, "CapacityProviderStrategy": [ { "Base": integer, "CapacityProvider": "capacityProviderA", "Weight": integer }, { "Base": integer, "CapacityProvider": "capacityProviderB", "Weight": integer } ] } } } ]

各プロパティは、ContainerPort 以外の文字列で指定され、数字である。

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

    注記

    :task-definition-revision部分はオプションARNです。省略すると、Amazon はタスク定義の最新ACTIVEリビジョンECSを使用します。

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

  • ContainerPort – 必須。これは、トラフィックのルーティング先となるコンテナ上のポートです。

  • PlatformVersion: オプション。デプロイされた Amazon ECSサービス内の Fargate タスクのプラットフォームバージョン。詳細については、の「AWS Fargate プラットフォームバージョン」を参照してください。指定されない場合、デフォルトで LATEST が使用されます。

  • 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 アドレスを受信するかどうかを指定する文字列。有効な値は ENABLED および DISABLED です。

    注記

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

  • CapacityProviderStrategy: オプション。デプロイに使用する Amazon ECSキャパシティープロバイダーのリスト。詳細については、「Amazon Elastic Container Service デベロッパーガイド」の「Amazon ECSキャパシティプロバイダー」を参照してください。 キャパシティプロバイダーごとに、次の設定を指定できます。これらの設定の詳細については、 AWS CloudFormation ユーザーガイドAWS「::ECS::ServiceCapacityProviderStrategyItem」を参照してください。

    • Base: オプション。ベース値は、指定されたキャパシティープロバイダーで実行するタスクの最小限の数を指定します。キャパシティープロバイダー戦略では、ベースを定義できるキャパシティープロバイダーは 1 つだけです。値が指定されていない場合は、デフォルト値の 0 が使用されます。

    • CapacityProvider: オプション。容量プロバイダーの短い名前。例: capacityProviderA

    • Weight: オプション。

      ウエイト値は、指定したキャパシティープロバイダーを使用する起動済みタスクの総数に対する相対的な割合を示します。weight 値は、base 値が、もし定義されている場合、満たされた後に、考慮されます。

      weight 値が指定されていない場合は、デフォルト値の 0 が使用されます。キャパシティープロバイダー戦略内で複数のキャパシティープロバイダーを指定する場合、少なくとも 1 つのキャパシティープロバイダーのウェイト値が 0 より大きい必要があり、ウェイトが 0 のキャパシティープロバイダーはタスクを配置するのに使用しません。すべてのキャパシティープロバイダーが 0 のウェイトを持つ戦略で複数のキャパシティープロバイダーを指定すると、キャパシティープロバイダー戦略を使用する RunTask または CreateService アクションは失敗します。

      例えば、加重を使用するシナリオが 2 つのキャパシティープロバイダーを含む戦略を定義し、両方の加重が 1 である場合、base が満たされたとき、タスクは 2 つのキャパシティープロバイダー間で均等に分割されます。同じロジックを使用して、capacityProviderA 1に の重み、capacityProviderB4の重みを指定すると、capacityProviderA を使用して実行される 1 つのタスクごとに、4 つのタスクで capacityProviderB が使用されます。