4

运行我的 AWS Lambda 时出现此错误No response from invoke container for Function。我希望它返回我定义为输出的“hello world”字符串:

错误

我也尝试了这个更简单的 Lambda 函数,但我得到了同样的错误:

public class App implements RequestHandler<String, String> {

    public String handleRequest(final String input, final Context context) {
            return "H";
    }
    
}

我在本地启动 Docker 以使用 Docker 快速入门终端运行此 Lambda:

我的 docker 快速入门终端

我可能需要在 Docker 中做其他事情吗?

这就是我使用 IntelliJ Plugin AWS Toolkit 创建新 AWS Lambda 项目的方式:

  1. 文件 -> 新项目:

新项目

并选择以下设置:

设置

  1. 创建的项目有很多错误,(无法解析符号“字符串”等)。我能够通过删除 .idea 文件夹来解决错误,然后单击 File -> Invalidate Caches and Restart

错误

然后项目正确加载,但我的 App 类旁边没有那个 Lambda 符号:

缺少 Lambda 符号

  1. 所以我去 pom.xml,右键单击然后Import as Maven project. 这有效,我现在看到了 Lambda 符号:

带有 Lambda 符号

但是我在 AppTest 类中得到一个新的错误,当我尝试运行它时,它说找不到应用程序处理程序。5. 我通过更改为“对象”解决了这个APIGatewayProxyRequestEvent问题RequestHandler

已解决的错误

在此处输入图像描述

4

1 回答 1

2

我从未尝试过以您描述的方式构建和执行 Lambda 函数。就个人而言,我使用 IntelliJ 和 Java Lambda 运行时 API 来构建 Lambda 函数,然后使用 Maven 将其打包并使用 AWS 管理控制台在以下位置进行部署:

https://console.aws.amazon.com/lambda/home

您可以从控制台对其进行测试,并在 Cloudwatch 日志中查看输出。这没有问题。有关如何使用 Maven 打包 Lambda 函数并使用 AWS 管理控制台部署它的更多信息,请参阅此 AWS 教程:

https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javav2/usecases/creating_workflows_stepfunctions

如果您以本教程中指定的方式构建示例 Lambda 函数,则不会有任何问题:

public class App implements RequestHandler<String, String> {

    public String handleRequest(final String input, final Context context) {
            return "H";
    }
    
}
于 2021-01-05T21:49:15.137 回答