Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 将自定义变量作为输入传递给AWS step函数_Amazon Web Services_Aws Lambda_Aws Step Functions_Serverless Framework Step Functions - Fatal编程技术网

Amazon web services 将自定义变量作为输入传递给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

我是否可以将自定义变量作为输入传递给AWS step函数


    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.$":"$"
         }
      }
   }
}