Amazon web services 将自定义变量作为输入传递给AWS step函数
我是否可以将自定义变量作为输入传递给AWS step函数Amazon web services 将自定义变量作为输入传递给AWS step函数,amazon-web-services,aws-lambda,aws-step-functions,serverless-framework-step-functions,Amazon Web Services,Aws Lambda,Aws Step Functions,Serverless Framework Step Functions,我是否可以将自定义变量作为输入传递给AWS step函数 processData: name: ingest-data StartAt: Execute States: Execute: Type: Task Resource: "arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:#{AWS::Stac
processData:
name: ingest-data
StartAt: Execute
States:
Execute:
Type: Task
Resource: "arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:#{AWS::StackName}-ingestIntnlData"
Next: Check
Check:
Type: Choice
Choices:
- Variable: "$.results['finished']"
BooleanEquals: false
Next: Wait
- Variable: "$.results['finished']"
BooleanEquals: true
Next: Notify
Wait:
Type: Wait
SecondsPath: "$.waitInSeconds"
Next: Execute
Notify:
Type: Task
Resource: "arn:aws:lambda:#{AWS::Region}:#{AWS::AccountId}:function:#{AWS::StackName}-sendEMail"
End: true
我有两个不同的stepFunction,它们调用相同的lambda。我希望向lambda传递一个自定义变量,以区分两步函数的调用
类似于一个标志变量,或者即使有办法找到调用lambda的函数的名称,也应该足够了
请帮帮我您可以使用并传递执行ID
如
{
"Comment": "A Catch example of the Amazon States Language using an AWS Lambda Function",
"StartAt": "nextstep",
"States": {
"nextstep": {
"Type": "Task",
"Resource": "arn:aws:lambda:eu-central-1:1234567890:function:catcherror",
"Parameters": {
"executionId.$": "$$.Execution.Id"
},
"End": true
}
}
}
这给你
arn:aws:states:us-east-1:123456789012:execution:stateMachineName:executionName
如您所见,它包含您的状态机名称
您可以对它们做出决定您可以创建Lambda函数,作为使用AWS步骤函数创建的工作流中的步骤使用。对于第一步(作为第一步使用的Lambda函数),可以将值传递给它以满足您的需要: 然后,您可以使用Lambda函数在步骤之间传递数据,如下所述:
您可以使用其他受支持的编程语言(如Java)创建Lambda函数,如下所述:
如您所见,使用Lambda和AWS Step函数时有很多开发选项。我们可以在Pass状态下构建对象,并将其作为输入传递给Lambda
“Payload.$”:“$”
只需通过所有输入
{
"StartAt":"Dummy Step 1 Output",
"States":{
"Dummy Step 1 Output":{
"Type":"Pass",
"Result":{
"name":"xyz",
"testNumber":1
},
"ResultPath":"$.inputForMap",
"Next":"invoke-lambda"
},
"invoke-lambda":{
"End":true,
"Retry":[
{
"ErrorEquals":[
"Lambda.ServiceException",
"Lambda.AWSLambdaException",
"Lambda.SdkClientException"
],
"IntervalSeconds":2,
"MaxAttempts":6,
"BackoffRate":2
}
],
"Type":"Task",
"Resource":"arn:aws:states:::lambda:invoke",
"Parameters":{
"FunctionName":"arn:aws:lambda:us-east-1:111122223333:function:my-lambda",
"Payload.$":"$"
}
}
}
}