如何通过 AWS Codepipeline 传递变量?
How do I pass variables through AWS Codepipeline?
AWS CodePipeline 首先编排 lambda-A
,然后编排 lambda-B
,我想将一个变量从我的 lambda-A
传递到我的 lambda-B
。
在 lambda-A
中,我在将作业设置为成功时设置了 outputVariables:
boto3.client("codepipeline").put_job_success_result(
jobId=event["CodePipeline.job"]["id"],
outputVariables={"FOO":"BAR"}
)
From the documentation i know that outputVariables
are Key-value pairs that can be made available to a downstream action.
CodePipeline 然后触发 lambda-B
。我如何在 lambda-B
中检索我在 lambda-A
中的 outputVariables 中设置的变量?
在 Lambda-B 的操作配置中,在用户参数中,输入变量语法以使用此语法获取在早期操作中创建的变量:
#{outputVariables.FOO}
然后你可以在Lambda函数中解压'UserParameters':
{
"CodePipeline.job": {
"id": "EXAMPLE-e08a-4f06-b9ba-EXAMPLE",
"accountId": "EXAMPLE87397",
"data": {
"actionConfiguration": {
"configuration": {
"FunctionName": "LambdaForCP-Python",
"UserParameters": "5e2591fd79889dEXAMPLE5f33e2"
}
},
来自 'event':
def lambda_handler(event, context):
print(event)
此过程在此处的步骤 (f) 中有详细说明:
AWS CodePipeline 首先编排 lambda-A
,然后编排 lambda-B
,我想将一个变量从我的 lambda-A
传递到我的 lambda-B
。
在 lambda-A
中,我在将作业设置为成功时设置了 outputVariables:
boto3.client("codepipeline").put_job_success_result(
jobId=event["CodePipeline.job"]["id"],
outputVariables={"FOO":"BAR"}
)
From the documentation i know that
outputVariables
are Key-value pairs that can be made available to a downstream action.
CodePipeline 然后触发 lambda-B
。我如何在 lambda-B
中检索我在 lambda-A
中的 outputVariables 中设置的变量?
在 Lambda-B 的操作配置中,在用户参数中,输入变量语法以使用此语法获取在早期操作中创建的变量:
#{outputVariables.FOO}
然后你可以在Lambda函数中解压'UserParameters':
{
"CodePipeline.job": {
"id": "EXAMPLE-e08a-4f06-b9ba-EXAMPLE",
"accountId": "EXAMPLE87397",
"data": {
"actionConfiguration": {
"configuration": {
"FunctionName": "LambdaForCP-Python",
"UserParameters": "5e2591fd79889dEXAMPLE5f33e2"
}
},
来自 'event':
def lambda_handler(event, context):
print(event)
此过程在此处的步骤 (f) 中有详细说明: