【问题标题】:Trigger Lambda when new message arrives to SQS当新消息到达 SQS 时触发 Lambda
【发布时间】:2018-09-30 02:31:36
【问题描述】:

我是 AWS 新手,这是我要解决的任务。 SQS 队列已建立,并且不时有新消息发送到它。我想设置 Lambda 并检索这些消息并对这些消息的内容执行一些业务逻辑。

通常在 AWS 站点和 Internet 上进行搜索,我了解到 SQS 本身不能成为 Lambda 的触发器,因此我需要设置 Cloud Watch 以按计划(例如每分钟)触发 Lambda。这是来自 aws github 的 code example 如何使用消息。

到目前为止一切顺利。现在,在创建 Lambda 本身时,我需要指定输入类型来实现 RequestHandler 接口:

public interface RequestHandler<I, O> {
O handleRequest(I var1, Context var2);

}

但是,如果我的 Lambda 不期待任何输入,它会自行转到 SQS 并提取消息,输入是否有意义? 我可以让它无效甚至完全使用其他方法签名(当然在这种情况下不实现该接口)?

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-sqs


    【解决方案1】:

    您的 Lambda 将在此处获得对 cloudwatch 触发器的引用。

    您可能对此不感兴趣,但在某些情况下,即使触发器是 cloudwatch 警报,Lambda 也想知道触发器的详细信息

    以下是一个示例事件:

    { “版本”:“0”,“id”:“53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa”, “详细信息类型”:“预定事件”、“来源”:“aws.events”、“帐户”: “123456789012”,“时间”:“2015-10-08T16:53:06Z”,“地区”:“us-east-1”, “资源”: [ "arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule"], “细节”:{} }

    【讨论】:

    • 所以,我应该期待 ScheduledEvent 作为我的 Lambda 的输入?
    • 是的。如果它是通过 cloudwatch 触发的
    • 例如,将触发器详细信息作为输入非常有帮助; cron 定义.. 不幸的是,它似乎需要一个 api 调用。
    猜你喜欢
    • 2019-08-16
    • 2019-08-24
    • 2022-01-06
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2019-03-10
    相关资源
    最近更新 更多