AWS Lambda アクションリファレンスを呼び出す - AWS CodePipeline

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

AWS Lambda アクションリファレンスを呼び出す

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

重要

Lambda CodePipeline に送信するJSONイベントはログに記録しないでください。ログにユーザー認証情報が記録される可能性があるため CloudWatch です。 CodePipeline ロールはJSONイベントを使用して、 artifactCredentialsフィールドの Lambda に一時的な認証情報を渡します。イベント例については、「JSON イベントの例」を参照してください。

アクションタイプ

  • カテゴリ:Invoke

  • 所有者: AWS

  • プロバイダー: Lambda

  • バージョン: 1

設定パラメータ

FunctionName

必須:はい

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

UserParameters

必須:いいえ

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

入力アーティファクト

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

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

出力アーティファクト

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

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

出力変数

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

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

アクション設定の例

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イベントでは、 の Lambda アクションについて、次のジョブの詳細が提供されます CodePipeline。

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

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

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

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

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

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

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

          • bucketName: アクションのパイプラインアーティファクトストアの名前 (例えば、 codepipeline-us-east-2-1234567890 という名前の Amazon S3 バケット)。

          • 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 という名前の Amazon S3 バケット)。

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

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

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

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

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

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

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

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

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

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

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

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

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