AWS Lambda - AWS CodePipeline

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

AWS Lambda

パイプラインのアクションとして Lambda 関数を実行できます。この関数への入力であるイベントオブジェクトを使用して、関数はアクション設定、入力アーティファクトの場所、出力アーティファクトの場所、およびアーティファクトへのアクセスに必要なその他の情報にアクセスできます。Lambda 呼び出し関数に渡されるイベントの例については、JSON イベントの例。Lambda 関数の実装の一部として、PutJobSuccessResult API または PutJobFailureResult API への呼び出しが必要です。それ以外の場合、このアクションの実行は、アクションがタイムアウトするまでハングします。アクションの出力アーティファクトを指定する場合、関数の実装の一部として S3 バケットにアップロードする必要があります。

重要

CodePipeline が Lambda に送信する JSON イベントをログに記録しないでください。これにより、ユーザー認証情報がCloudWatch Logs に記録される可能性があるためです。CodePipeline ロールは、JSON イベントを使用して、artifactCredentialsfield. イベント例については、「JSON イベントの例」を参照してください。

アクションの種類

  • カテゴリ: Invoke

  • 所有者: AWS

  • プロバイダー: Lambda

  • バージョン: 1

設定パラメータ

FunctionName

必須: はい

FunctionNameは Lambda で作成される関数の名前です。

UserParameters

必須: いいえ

Lambda 関数による入力として処理できる文字列。

入力アーティファクト

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

  • 説明: Lambda 関数で使用できるようにするアーティファクトのセット。

出力アーティファクト

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

  • 説明: Lambda 関数によって出力として生成されるアーティファクトのセット。

出力変数

このアクションは、変数として、すべてのキーと値のペアを生成します。outputVariablesの セクションPutJobSuccessResult APIリクエスト.

CodePipeline の変数の詳細については、」Variables

アクション設定の例

YAML
Name: Lambda Actions: - Name: Lambda ActionTypeId: Category: Invoke Owner: AWS Provider: Lambda Version: '1' RunOrder: 1 Configuration: FunctionName: myLambdaFunction UserParameters: 'http://192.0.2.4' OutputArtifacts: [] InputArtifacts: [] Region: us-west-2
JSON
{ "Name": "Lambda", "Actions": [ { "Name": "Lambda", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Provider": "Lambda", "Version": "1" }, "RunOrder": 1, "Configuration": { "FunctionName": "myLambdaFunction", "UserParameters": "http://192.0.2.4" }, "OutputArtifacts": [], "InputArtifacts": [], "Region": "us-west-2" } ] },

JSON イベントの例

Lambda アクションは、ジョブ ID、パイプラインアクション設定、入力および出力アーティファクトの場所、およびアーティファクトの暗号化情報を含む JSON イベントを送信します。ジョブワーカーは、これらの詳細にアクセスして Lambda アクションを完了します。詳細については、ジョブの詳細を参照してください。以下に示しているのは、イベントの例です。

{ "CodePipeline.job": { "id": "11111111-abcd-1111-abcd-111111abcdef", "accountId": "111111111111", "data": { "actionConfiguration": { "configuration": { "FunctionName": "MyLambdaFunction", "UserParameters": "input_parameter" } }, "inputArtifacts": [ { "location": { "s3Location": { "bucketName": "bucket_name", "objectKey": "filename" }, "type": "S3" }, "revision": null, "name": "ArtifactName" } ], "outputArtifacts": [], "artifactCredentials": { "secretAccessKey": "secret_key", "sessionToken": "session_token", "accessKeyId": "access_key_ID" }, "continuationToken": "token_ID", "encryptionKey": { "id": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "type": "KMS" } } } }

JSON イベントは、CodePipeline の Lambda アクションの次のジョブ詳細を提供します。

  • id: システムによって生成されたジョブの固有の ID。

  • accountId:AWSジョブに関連付けられたアカウント ID です。

  • data: ジョブワーカーがジョブを完了するために必要なその他の情報。

    • actionConfiguration: Lambda アクションのアクションパラメータ。定義については、設定パラメータ を参照してください。

    • inputArtifacts: アクションに指定されたアーティファクト。

      • location: アーティファクトストアの場所。

        • s3Location: アクションの入力アーティファクトの場所情報。

          • bucketName: アクションのパイプラインアーティファクトストアの名前(例:codepipeline-us-east-2-1234567890)。

          • objectKey: アプリケーションの名前(例: CodePipelineDemoApplication.zip)。

        • type: ロケーション内のアーティファクトのタイプ。現在、S3 は唯一の有効なアーティファクトタイプです。

      • revision: アーティファクトのリビジョン ID。オブジェクトのタイプに応じて、コミット ID (GitHub) またはリビジョン ID(Amazon Simple Storage Service)になります。詳細については、ArtifactRevision を参照してください。

      • name: MyApp などの作業するアーティファクトの名前。

    • outputArtifacts: アクションの出力。

      • location: アーティファクトストアの場所。

        • s3Location: アクションの出力アーティファクトの場所情報。

          • bucketName: アクションのパイプラインアーティファクトストアの名前(例:codepipeline-us-east-2-1234567890)。

          • objectKey: アプリケーションの名前(例: CodePipelineDemoApplication.zip)。

        • type: ロケーション内のアーティファクトのタイプ。現在、S3 は唯一の有効なアーティファクトタイプです。

      • revision: アーティファクトのリビジョン ID。オブジェクトのタイプに応じて、コミット ID (GitHub) またはリビジョン ID(Amazon Simple Storage Service)になります。詳細については、ArtifactRevision を参照してください。

      • name: MyApp などのアーティファクトの出力の名前。

    • artifactCredentials:AWSセッション認証情報。Amazon S3 バケットの入出力アーティファクトにアクセスするために使用される。これらの認証情報は、AWS Security Token Service(AWS STS)によって発行される一時的な認証情報です。

      • secretAccessKey: セッションのシークレットアクセスキー。

      • sessionToken: セッションのトークン。

      • accessKeyId: セッションのシークレットアクセスキー。

    • continuationToken: アクションによって生成されたトークン。今後のアクションでは、このトークンを使用して、アクションの実行中のインスタンスを識別します。アクションが完了すると、継続トークンは指定されません。

    • encryptionKey: AWS KMS キーなどのアーティファクトストア内のデータを暗号化するために使用する暗号化キー。これが未定義の場合は、Amazon Simple Storage サービスのデフォルトキーが使用されます。

      • id: キーを識別するために使用された ID。AWS KMS キーの場合、キー ID、キー ARN、またはエイリアス ARN を使用できます。

      • type: AWS KMS などの暗号化キーのタイプ。

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