AWS 无服务器 Java Lambda 调试

Posted

技术标签:

【中文标题】AWS 无服务器 Java Lambda 调试【英文标题】:AWS Serverless Java Lambda Debug 【发布时间】:2019-01-21 17:07:22 【问题描述】:

请告诉我是否可以在 Eclipse 中调试 Java AWS Lambda(无服务器框架)。任何指针都会很有帮助

【问题讨论】:

【参考方案1】:

如果您准备离开 Eclipse,我知道有一些有趣的定制解决方案正在开发用于实时无服务器调试。 Rookout 就是一个例子

【讨论】:

【参考方案2】:

你会想看看AWS Sam。基本上,您创建一个运行应用程序的 yaml 文件,附加到进程,并使用 Sam CLI 在您的代码中发送事件。

从this github可以看出,一个很简单的yaml文件是:

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31

Description: A simple hello world Java 8 function
Resources:
  HelloWorld:
    Type: AWS::Serverless::Function
    Properties:
      Runtime: java8
      Handler: your.package.here.YourLambdaHandler
      CodeUri: ./target/your.jar

【讨论】:

AWS 产品文档的贫乏/缺乏总是让我感到惊讶。我一直在寻找一个小时,我发现的只是使用 CodeStar 中的应用程序的教程,但没有关于一切实际如何工作以及如何设置它。【参考方案3】:

我假设你打算在本地调试它。

您需要aws-sam-cli 工具,可以使用sam local 命令在本地运行 lambda。

sam local start-api -d 5858 和端口 5858 将用于调试目的。 https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-using-debugging.html

这里有一个示例如何使用 Eclipse 执行此操作。 https://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/tke-sam-local.html#debug-lam-function-locally

【讨论】:

以上是关于AWS 无服务器 Java Lambda 调试的主要内容,如果未能解决你的问题,请参考以下文章

使用无服务器和 chrome-aws-lambda 节点包在 AWS Lambda 上找不到 Chrome 二进制文件

无服务器/AWS-Lambda 设置的 graphiql UI 损坏

AWS Lambda&Fargate 无服务底层技术是如何实现的

为 AWS Lambda 和无服务器推荐啥本地节点版本

AWS 无服务器自定义 jwt 授权方 lambda 设置 cors 响应

通过 AWS Lambda 和 Cognito 注册用户(无服务器架构)