消息发布到SQS时如何触发lambda?
How to trigger lambda when messages published to SQS?
我正在尝试实现 lambda1,它会在消息发布到 SQS 时触发。我能够将消息发送到 SQS 队列并接收消息。
我按如下方式创建了 SQS lambda 模板:
GetPatientStatusSQS:
Type: AWS::SQS::Queue
Properties:
MaximumMessageSize: 1024
QueueName: !Sub "${EnvironmentName}-GetPatientStatusSQS"
VisibilityTimeout: 30
我查看了 aws 文档,但找不到任何示例说明在消息发布到 SQS 队列时如何触发 lambda。
我找到了这个 link 但不确定是否有用。
如何更新上面的 SQS 模板以触发 lambda1?
截至 2018 年 6 月 28 日,Lambda functions can be triggered by SQS events。
您需要做的就是将您的 Lambda 函数订阅到所需的 SQS 队列。
转到 SQS 的控制台,单击您的队列 -> 队列操作 -> 为 Lambda 函数配置触发器
设置您要向其发送消息的 Lambda ARN,仅此而已,您的函数现在将由 SQS 触发。
请记住,您的函数最多一次处理最多 10 条消息。
如果您认为自己可能 运行 遇到并发问题,则可以将函数的并发数限制为 1。
这是一个示例模板,您可以使用它来将 SQS 和 Lambda 连接在一起。
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Example of processing messages on an SQS queue with Lambda
Resources:
MySQSQueueFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: node8.10
Events:
MySQSEvent:
Type: SQS
Properties:
Queue: !GetAtt MySqsQueue.Arn
BatchSize: 10
MySqsQueue:
Type: AWS::SQS::Queue
来自docs
我正在尝试实现 lambda1,它会在消息发布到 SQS 时触发。我能够将消息发送到 SQS 队列并接收消息。 我按如下方式创建了 SQS lambda 模板:
GetPatientStatusSQS:
Type: AWS::SQS::Queue
Properties:
MaximumMessageSize: 1024
QueueName: !Sub "${EnvironmentName}-GetPatientStatusSQS"
VisibilityTimeout: 30
我查看了 aws 文档,但找不到任何示例说明在消息发布到 SQS 队列时如何触发 lambda。
我找到了这个 link
如何更新上面的 SQS 模板以触发 lambda1?
截至 2018 年 6 月 28 日,Lambda functions can be triggered by SQS events。
您需要做的就是将您的 Lambda 函数订阅到所需的 SQS 队列。
转到 SQS 的控制台,单击您的队列 -> 队列操作 -> 为 Lambda 函数配置触发器
设置您要向其发送消息的 Lambda ARN,仅此而已,您的函数现在将由 SQS 触发。
请记住,您的函数最多一次处理最多 10 条消息。
如果您认为自己可能 运行 遇到并发问题,则可以将函数的并发数限制为 1。
这是一个示例模板,您可以使用它来将 SQS 和 Lambda 连接在一起。
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Example of processing messages on an SQS queue with Lambda
Resources:
MySQSQueueFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: node8.10
Events:
MySQSEvent:
Type: SQS
Properties:
Queue: !GetAtt MySqsQueue.Arn
BatchSize: 10
MySqsQueue:
Type: AWS::SQS::Queue
来自docs