Serverless调度java函数应该实现什么接口?

2024-01-09

我正在尝试使用无服务器编写 Java AWS Lambda。虽然我的由 HTTP 端点触发的 Lambda 部署并正常工作,但我在预定的尝试失败了:

配置看起来像:

来自无服务器.yml

functions:
  timedHandler:
    handler: com.serverless.TimedHandler
    events:
     - schedule:
        rate(1 minute)

如果我尝试实现 RequestHandler 像:

public class TimedHandler implements RequestHandler<Request, Response> {
private static final Logger LOG = LogManager.getLogger(Handler.class);

@Override
public Response handleRequest(Request request, Context context) {
    LOG.info("Started up");
    return null;
}

日志抱怨说:

JSON 解析期间发生错误:java.lang.RuntimeException java.lang.RuntimeException: JSON 解析期间发生错误
引起原因:java.io.UncheckedIOException:com.fasterxml.jackson.databind.JsonMappingException:无法构造com.amazonaws.Request的实例

我认为因为预定的事件没有传入Request对象,但特定于计划触发器的东西。但是如果我没有实现接口(AWS 文档建议这是可以的),AWS 日志就会抱怨

类未实现适当的处理程序接口:com.serverless.TimedHandler

我是否需要为传入适当参数的预定 lambda 实现特定的 AWS 接口?


所以事实证明他们应该实现RequestStreamHandler接口,例如:

public class TimedHandler implements RequestStreamHandler {
    private static final Logger LOG = LogManager.getLogger(TimedHandler.class);

    @Override
    public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
        LOG.info("Started up");
        return;
    }

}

现在可以成功运行并且不会引发任何异常

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Serverless调度java函数应该实现什么接口? 的相关文章

随机推荐

  • npm 不支持 Node.js

    npm 不支持 Node js v15 5 0 和 v14 15 3 npm 版本 5 6 0 我是通过命令升级的 npm i g npm upgrade但我没有得到版本 6 我总是得到版本 5 6 0 我还根据以下内容尝试了不同的 Nod
  • R data.table 奇怪的值/引用语义

    这是一个后续问题this https stackoverflow com questions 62740267 is r data table documented to pass by reference as argument 检查这个
  • 我的应用因无效原因被 Instagram Basic Display API 审核拒绝

    我正在开发一个应用程序 允许用户在我的应用程序中连接他们的 Instagram 个人资料 因此 我的应用程序中的其他连接用户可以访问他们的 Instagram 个人资料 这类似于Tinder已经在他们的应用程序中实现了 参考这个链接 htt
  • 如何通过GLSL在THREE.js中实现MeshNormalMaterial?

    我想实现一个像这样的着色器网格法线材质 https threejs org docs api materials MeshNormalMaterial 但我不知道如何将法线转换为颜色 在 THREE js 中 我的测试1 varying v
  • 隐式转换,是否需要导入?

    I write object MyString implicit def stringToMyString s String new MyString s class MyString str String def camelize str
  • 如何在 C# 3.0 中比较两个通用列表? [复制]

    这个问题在这里已经有答案了 可能的重复 C 中有比较集合的内置方法吗 https stackoverflow com questions 43500 is there a built in method to compare collect
  • ExecJS::ProgramError:意外的标记:名称(选项)

    我的应用程序在本地环境中运行良好 我试图git pushHeroku 的构建 我的命令是 bundle install git add git commit am abcdef git push heroku master 然后我遇到了资产
  • 将 pandas DataFrame 写入 sql 时出现无效列名错误

    当我尝试将数据帧写入 ms sql server 时 如下所示 cnxn sqlalchemy create engine mssql pyodbc HOST PORT DATABASE driver SQL Server df to sq
  • 尽管未兑现的承诺,脚本还是结束了

    考虑一下 async function const arr await new Promise r gt arr push r console log done 脚本终止于await并且日志从未打印到标准输出 我不明白为什么 你的代码没有任
  • 从 F# 中特定位置的二进制文件读取整数的性能问题

    今天早上我问here https stackoverflow com questions 24381090 performance issue with reading integers from a binary file at spec
  • 运行“gem install Rails”时出错

    我的配置 操作系统 Ubuntu 12 04 rvm版本 14 25 红宝石版本 2 1 0p0 宝石版本 2 2 1 哪个红宝石 home tauhidul35 rvm rubies ruby 2 1 0 bin ruby 哪个 RVM
  • 如何使用 DocX 控制 Word 文档中的表格列宽?

    我正在尝试重新创建一个这样的表 我正在使用 DocX 库来操作 Word 文件 但在获取正确的宽度时遇到问题 尝试设置单元格的宽度似乎仅在未设置为窗口自动调整模式时才起作用 并且仅当指定宽度大于表格宽度的一半时才似乎调整大小 或者更确切地说
  • 如何保存音调改变后录制的音频?

    我正在努力录制声音 然后更改音频的音调并保存 我在录制语音后调用此方法 然后单击按钮更改音调 然后也会创建新文件 但无法收听音频 生成的音频没有语音 可能是什么错误 void saveEffectedAudioToFolder NSErro
  • setImageBitmap没有可见效果

    我有一个字节数组 其中包含从网络获取的图像 我使用 Bitmapfactory BitmapDrawable 和 setImageDrawable 将它们懒惰地加载到我的 UI 活动中 或者我至少尝试这样做 D 这是我的代码 Relativ
  • 将 2D 数组转换为 std::map?

    数组可以转换为std vector轻松高效 template
  • Linq 按布尔值排序

    我有一个 linq 查询 我想通过 f bar 它是一个字符串 排序 但我也想首先通过 f foo 它是一个布尔字段 排序 就像下面的查询一样 from f in foo orderby f foo f bar select f 虽然可以编
  • GTK:如何在开始时从元素上移除焦点

    我向应用程序添加了两个 GtkEntry 现在当我启动应用程序时 其中一个具有焦点 并且看起来已准备好进行编辑 不希望在开始时将焦点放在任何元素上 也不希望任何文本输入元素具有焦点或正在编辑 我只是想让他们显示他们的文本 然后如果用户想要更
  • Nginx 502 提供错误页面内容时?

    我一直在将 Nginx 设置为服务器上应用程序的反向代理 其中一部分包括具有外部内容 如图像 的维护页面 我找到了一种设置图像返回 200 的错误页面的方法 但看起来反向代理会改变整个环境 这是来自的原始解决方案nginx 维护页面有内容问
  • 允许的内存大小 262144 字节已耗尽(尝试分配 24576 字节)[重复]

    这个问题在这里已经有答案了 我对此快要发疯了 我收到下一条消息 Allowed memory size of 262144 bytes exhausted tried to allocate 24576 bytes 待办事项清单 检查 ph
  • Serverless调度java函数应该实现什么接口?

    我正在尝试使用无服务器编写 Java AWS Lambda 虽然我的由 HTTP 端点触发的 Lambda 部署并正常工作 但我在预定的尝试失败了 配置看起来像 来自无服务器 yml functions timedHandler handl