AWS Lambda デプロイアクションリファレンス - AWS CodePipeline

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

AWS Lambda デプロイアクションリファレンス

AWS Lambda デプロイアクションを使用して、サーバーレスデプロイ用のアプリケーションコードのデプロイを管理します。次のように、関数をデプロイし、トラフィックデプロイのデプロイ戦略を使用できます。

  • トラフィックシフト用の Canary および線形デプロイ

  • 一度にすべてのデプロイ

注記

このアクションは V2 タイプのパイプラインでのみサポートされています。

アクションタイプ

  • カテゴリ:Deploy

  • 所有者: AWS

  • プロバイダー: Lambda

  • バージョン: 1

設定パラメータ

FunctionName

必須: はい

など、Lambda で作成した関数の名前MyLambdaFunction

バージョンを既に作成している必要があります。

FunctionAlias

必須: いいえ

Lambda で作成した 関数のエイリアス。 など、デプロイ先の 関数ですlive。エイリアスが存在し、アクション実行の開始時にその背後にあるバージョンが 1 つある必要があります。(ロールバックターゲットバージョンになります)。

指定しない場合、アクションはソースアーティファクトを にデプロイ$LATESTし、新しいバージョンを作成します。このユースケースでは、デプロイ戦略とターゲットバージョンオプションは使用できません。

PublishedTargetVersion

必須: いいえ

FunctionAlias にデプロイする Lambda 関数のバージョン。パイプラインまたは などのアクションレベルの変数を使用できます#{variables.lambdaTargetVersion}。バージョンは、アクション実行の開始時に公開する必要があります。

入力アーティファクトが指定されていない場合は必須です。

DeployStrategy

必須: いいえ (デフォルトは AllAtOnce

Lambda デプロイアクションが、Lambda 関数の元のバージョンから FunctionAlias の新しいバージョンにトラフィックを移行するために採用するレートを決定します。使用可能なデプロイ戦略は Canary または Linear です。使用できる形式:

  • AllAtOnce -

    すべてのトラフィックは、更新された Lambda 関数に一度に移行します。

    指定しない場合、デフォルトは ですAllAtOnce

  • Canary10Percent5Minutes - 最初の増分でトラフィックの 10% をシフトします。残りの 90 パーセントは 5 分後にデプロイされます。

    パーセンテージと分の両方の値を変更することができます。

  • Linear10PercentEvery1Minute - すべてのトラフィックが移行されるまで、1 分ごとにトラフィックの 10% を移行します。

    パーセンテージと分の両方の値を変更することができます。

このフィールドには、次の考慮事項が適用されます。

  • 最大合計待機時間は 2 日です。

  • FunctionAlias が指定されている場合にのみ使用できます。

アラーム

必須: いいえ

Lambda デプロイ用に設定されたアラーム名のカンマ区切りリスト。最大 10 のアラームを追加できます。モニタリングされたアラームが ALARM 状態になると、アクションは失敗します。

次の図は、 アクションの編集ページの例を示しています。

Lambda デプロイアクションを使用した新しいパイプラインの編集アクションページ

入力アーティファクト

  • アーティファクトの数: 1

  • 説明: デプロイ中にスクリプトアクションをサポートするために提供されたファイル。

出力アーティファクト

  • アーティファクトの数: 0

  • 説明: 出力アーティファクトは、このアクションタイプには適用されません。

出力変数

このアクションを設定すると、パイプライン内のダウンストリームアクションのアクション設定によって参照できる変数が生成されます。このアクションは、アクションに名前空間がない場合でも、出力変数として表示できる変数を生成します。名前空間を使用してアクションを設定し、これらの変数をダウンストリームアクションの設定で使用できるようにします。

詳細については、「変数リファレンス」を参照してください。

FunctionVersion

デプロイされた新しい Lambda 関数バージョン。

Lambda デプロイアクションのサービスロールポリシーのアクセス許可

CodePipeline がアクションを実行すると、CodePipeline サービスロールには以下のアクセス許可が必要になり、最小特権でアクセスできるように適切にスコープダウンされます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementForLambda", "Effect": "Allow", "Action": [ "lambda:GetAlias", "lambda:GetFunctionConfiguration", "lambda:GetProvisionedConcurrencyConfig", "lambda:PublishVersion", "lambda:UpdateAlias", "lambda:UpdateFunctionCode" ], "Resource": [ "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}", "arn:aws:lambda:aws:{{customerAccountId}}:function:{{FunctionName}}:*" ] }, { "Sid": "StatementForCloudWatch", "Effect": "Allow", "Action": [ "cloudwatch:DescribeAlarms" ], "Resource": [ "arn:aws:cloudwatch:aws:{{customerAccountId}}:alarm:{{AlarmNames}}" ] }, { "Sid": "StatementForLogs1", "Effect": "Allow", "Action": [ "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}", "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForLogs2", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:aws:{{customerAccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:log-stream:*" ] } ] }

アクションの宣言

YAML
name: Deploy actionTypeId: category: Deploy owner: AWS provider: Lambda version: '1' runOrder: 1 configuration: DeployStrategy: Canary10Percent5Minutes FunctionAlias: aliasV1 FunctionName: MyLambdaFunction outputArtifacts: [] inputArtifacts: - name: SourceArtifact region: us-east-1 namespace: DeployVariables
JSON
{ "name": "Deploy", "actionTypeId": { "category": "Deploy", "owner": "AWS", "provider": "Lambda", "version": "1" }, "runOrder": 1, "configuration": { "DeployStrategy": "Canary10Percent5Minutes", "FunctionAlias": "aliasV1", "FunctionName": "MyLambdaFunction" }, "outputArtifacts": [], "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-east-1", "namespace": "DeployVariables" },

このアクションを利用する際に役立つ関連リソースは以下の通りです。