【问题标题】:Step Functions: How to call a specific handler of lambda functionStep Functions:如何调用 lambda 函数的特定处理程序
【发布时间】:2021-02-10 16:52:01
【问题描述】:

我有一个简单的 java 代码,它对 DynamoDB 数据库执行一些查询。 在 lambda 函数中,我已经成功地单独测试了每个方法(处理程序)。

public class EmployeeDataHandler {
    
    
    public String addSingleEmployeeData(Object input, Context context) {
        
        // logic inside
        
    }

    
    public String addBulkEmployeeData(List<Object> inputObjectList, Context context) {
        
        // logic inside

    }
    
    
    public List<EmployeeItems> getAllItemsByDate(EmployeeItems input, Context context) { 
       
        // logic inside
    
    }


    public List<EmployeeItems> getAllItemsByDateAndId(EmployeeItems input, Context context) { 

        // logic inside

    }
    
    public List<EmployeeItems> getAllItemsByDateRange(EmployeeItems input, Context context) { 

        // logic inside

    }

}

下一步是在状态机的任务步骤函数部分中调用给定的处理程序(例如,addBulkEmployeeData)。

我的问题是如何做到这一点?

根据文档,我只能通过字段Resource 引用 lambda 函数“ARN”:

{
  "Comment": "Basic example of the Amazon States Language using an AWS Lambda function",
  "StartAt": "TestState",
  "States": {
    "TestState": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:eu-central-1:11111111111111:function:java-test-lambda",
      "End": true
    }
  }
}

因此,任何人都知道我如何调用特定的处理程序(例如addBulkEmployeeData)?

感谢您的善意和支持。

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-step-functions


    【解决方案1】:

    您无法在调用 Lambda 函数时指定处理程序。当您部署 Lambda 函数时,您必须指定在部署时该 Lambda 函数的所有调用将使用哪个处理程序。

    您的选择是多次部署 Lambda 函数,并为每个部署配置不同的处理程序,或者您可能有一个处理程序来检查请求,然后根据请求类型调用适当的方法。

    【讨论】:

    • 自从我开始探索这项技术以来,对于这种情况,AWS 的最佳实践是什么?
    • 这完全取决于您希望如何构建和部署代码。对此没有单一的最佳实践。
    猜你喜欢
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2020-09-05
    • 2021-11-14
    相关资源
    最近更新 更多