运行 本地 IntelliJ 中带有 Java 的 AWS Lambda - 函数调用容器没有响应(Docker 有问题?)
Running AWS Lambda with Java in IntelliJ locally - No response from invoke container for Function (Problem with Docker?)
我在 运行 连接我的 AWS Lambda No response from invoke container for Function
时收到此错误。我希望它 return 我定义为输出的“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 中做任何其他事情吗?
这就是我使用 IntelliJ 插件 AWS 工具包创建新 AWS Lambda 项目的方式:
- 文件 -> 新项目:
并选择了以下设置:
- 创建的项目有很多错误,(无法解析符号 'String' 等)。我能够通过删除 .idea 文件夹解决错误,然后单击文件 ->
Invalidate Caches and Restart
:
然后项目正确加载,但我的应用程序旁边没有 Lambda 符号 class:
- 所以我转到pom.xml,右击然后
Import as Maven project
。这行得通,我现在看到了 Lambda 符号:
但是我在 AppTest class 中收到一个新错误,当我尝试 运行 它时,它说找不到应用程序处理程序。
5. 我通过将 RequestHandler
中的 APIGatewayProxyRequestEvent
更改为 'Object':
解决了这个问题
我从未尝试过按照您描述的方式构建和执行 Lambda 函数。就我个人而言,我使用 IntelliJ 和 Java Lambda 运行时 API 构建 Lambda 函数,然后使用 Maven 将其打包并使用 AWS 管理控制台部署它:
https://console.aws.amazon.com/lambda/home
您可以从控制台对其进行测试,并在 Cloudwatch 日志中查看输出。这没有问题。有关如何使用 Maven 打包 Lambda 函数并使用 AWS 管理控制台部署它的更多信息,请参阅此 AWS 教程:
如果您按照本教程中指定的方式构建示例 Lambda 函数,您将不会遇到任何问题:
public class App implements RequestHandler<String, String> {
public String handleRequest(final String input, final Context context) {
return "H";
}
}
我在 运行 连接我的 AWS Lambda No response from invoke container for Function
时收到此错误。我希望它 return 我定义为输出的“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 中做任何其他事情吗?
这就是我使用 IntelliJ 插件 AWS 工具包创建新 AWS Lambda 项目的方式:
- 文件 -> 新项目:
并选择了以下设置:
- 创建的项目有很多错误,(无法解析符号 'String' 等)。我能够通过删除 .idea 文件夹解决错误,然后单击文件 ->
Invalidate Caches and Restart
:
然后项目正确加载,但我的应用程序旁边没有 Lambda 符号 class:
- 所以我转到pom.xml,右击然后
Import as Maven project
。这行得通,我现在看到了 Lambda 符号:
但是我在 AppTest class 中收到一个新错误,当我尝试 运行 它时,它说找不到应用程序处理程序。
5. 我通过将 RequestHandler
中的 APIGatewayProxyRequestEvent
更改为 'Object':
我从未尝试过按照您描述的方式构建和执行 Lambda 函数。就我个人而言,我使用 IntelliJ 和 Java Lambda 运行时 API 构建 Lambda 函数,然后使用 Maven 将其打包并使用 AWS 管理控制台部署它:
https://console.aws.amazon.com/lambda/home
您可以从控制台对其进行测试,并在 Cloudwatch 日志中查看输出。这没有问题。有关如何使用 Maven 打包 Lambda 函数并使用 AWS 管理控制台部署它的更多信息,请参阅此 AWS 教程:
如果您按照本教程中指定的方式构建示例 Lambda 函数,您将不会遇到任何问题:
public class App implements RequestHandler<String, String> {
public String handleRequest(final String input, final Context context) {
return "H";
}
}