【问题标题】:How can I trigger an existing AWS lambda locally in Java?如何在 Java 中本地触发现有的 AWS lambda?
【发布时间】:2019-08-03 14:58:14
【问题描述】:

到目前为止,我有一个 API 和一个现有的 AWS Lambda,它们或多或少具有相同的功能。我试图做的不是在每个项目中执行相同的任务,而是试图让 API 本身暗示触发 lambda。目前,向它发送数据不是我主要关心的问题,但这将是我会尝试做的事情。也就是说,在 Java 中,如果您拥有所有凭证、lambda 名称等,是否可以在本地触发 AWS Lambda,并最终通过 API?

我现在经历了一些解决方案,但似乎其中许多都涉及重新部署 lambda,或者完全制作一个新的。目前,我一直在使用这些资源,A、B、C 和 D。

我的 API 中的当前函数看起来像这样。我的 lambda 中的那个,我们暂时称它为 foobar-lambda,几乎是一样的。

public Entity<Foos> Foos(@RequestHeader(value= "ApiKey", required = false) String apiKey,
                                                         @RequestParam String data) {
    Foos foos = FoosService.getFoos(data);
    Entity<Foos> response = null;

    if (foos != null) {
        response = Entity.ok().body(foos);
    } else {
        response = new Entity<>(HttpStatus.NOT_FOUND);
    }

    return response;
}

我想把它改成这样:

void Entity<Foos> Foos(@RequestHeader(value= "ApiKey", required = false) String apiKey,
                                                         @RequestParam String data) {
    triggerAndSend("foobar-lambda",data);
}

因此,在这种情况下,我试图弄清楚如何创建void triggerAndSend(String lambdaTarget, Integer... data) 函数。理想情况下,我会运行它,并且能够看到我的 lambda 被触发。我是否必须在我的 Lambda 中添加一个额外的触发器才能捕获这些?是否有可能,如果有,是否有人对我如何实现目标有任何建议?

【问题讨论】:

    标签: java node.js amazon-web-services aws-lambda


    【解决方案1】:

    AWS Blog post 描述了一种执行您所描述的操作的方法:Invoking AWS Lambda Functions from Java。它涉及为返回值定义一个普通的旧 Java 对象和为 lambda 函数定义一个接口。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-11
      • 2018-03-11
      • 2021-04-12
      • 1970-01-01
      • 2021-06-25
      • 2019-01-11
      • 1970-01-01
      相关资源
      最近更新 更多