翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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、「」を参照してください変数リファレンス。
アクション設定の例
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 などの暗号化キーのタイプ。
-
-
以下も参照してください。
このアクションを利用する際に役立つ関連リソースは以下の通りです。
-
AWS CloudFormation ユーザーガイド – パイプラインの Lambda アクションと AWS CloudFormation アーティファクトの詳細については、 CodePipeline 「パイプライン でのパラメータオーバーライド関数の使用」、「Lambda ベースのアプリケーションのデプロイの自動化」、およびAWS CloudFormation 「アーティファクト」を参照してください。
-
のパイプラインで AWS Lambda 関数を呼び出す CodePipeline - この手順では、サンプルの Lambda 関数を示し、コンソールを使用して Lambda 呼び出しアクションでパイプラインを作成する方法を示します。