本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Lambda 叫用動作參考
可讓您在管道中執行 Lambda 函數作為動作。使用事件物件作為此函數的輸入,函數具有存取動作組態、輸入成品位置、輸出成品位置,以及其他存取成品所需的資訊。如需傳遞至 Lambda 調用函數的範例事件,請參閱 範例JSON事件。Lambda 函數實作時,必須呼叫 PutJobSuccessResult
API
或 PutJobFailureResult API
。否則,執行此動作會停止回應,直到動作逾時為止。如果您指定動作的輸出成品,則必須將它們上傳到 S3 儲存貯體,做為函數實作的一部分。
重要
請勿記錄 CodePipeline 傳送至 Lambda JSON的事件,因為這可能會導致使用者登入 CloudWatch 日誌。 CodePipeline 角色使用 JSON事件將臨時憑證傳遞給 artifactCredentials
欄位中的 Lambda。如需範例事件,請參閱範例JSON事件。
動作類型
-
類別:
Invoke
-
擁有者:
AWS
-
提供者:
Lambda
-
版本:
1
組態參數
- FunctionName
-
必要:是
FunctionName
是 Lambda 中建立的函數名稱。 - UserParameters
-
必要:否
Lambda 函數可以作為輸入的字串。
Input artifacts (輸入成品)
-
成品數量:
0 to 5
-
描述:要提供給 Lambda 函數的成品集。
輸出成品
-
成品數量:
0 to 5
-
描述:Lambda 函數輸出時產生的成品集。
輸出變數
此動作將產生包含在PutJobSuccessResult API請求outputVariables
區段中的所有鍵值對的變數。
如需 中變數的詳細資訊 CodePipeline,請參閱 變數參考。
動作組態範例
範例JSON事件
Lambda 動作會傳送事件JSON,其中包含任務 ID、管道動作組態、輸入和輸出成品位置,以及成品的任何加密資訊。作業工作者會存取這些詳細資訊,以完成 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 調用動作的管道。