首页 > 解决方案 > 查找触发 Lambda 函数的 SQS 名称

问题描述

我正在寻找一种可以找到触发 Lambda 的 SQS 名称的方法。

用例:

我有 2 个 SQS 队列(SQS 名称 ABC 和 XYZ),我想将这两个队列订阅到单个 Lambda 函数并根据消息来自的队列执行不同的操作(例如,在 DDB 表中插入消息)。

例如。如果消息来自队列名称 - ABC 那么它应该插入到 DDB1 Dynamo 表中,否则如果消息来自队列名称 - XYZ 然后插入到 DDB2 表中。

目前我们已将 DDB1 值设置为 Lambda 的环境变量,如果消息来自 XYZ,则应将其覆盖为 DDB2 值。

提前感谢您的帮助,如果问题框架句子不正确,我们深表歉意:)

标签: amazon-web-servicesaws-lambdaamazon-sqs

解决方案


这是 Amazon SQS 将发送到 AWS Lambda 函数的示例消息。事实上,我是从Lambda的Test函数中提取出来的:

{
  "Records": [
    {
      "messageId": "19dd0b57-b21e-4ac1-bd88-01bbb068cb78",
      "receiptHandle": "MessageReceiptHandle",
      "body": "Hello from SQS!",
      "attributes": {
        "ApproximateReceiveCount": "1",
        "SentTimestamp": "1523232000000",
        "SenderId": "123456789012",
        "ApproximateFirstReceiveTimestamp": "1523232000001"
      },
      "messageAttributes": {},
      "md5OfBody": "7b270e59b47ff90a553787216d55d91d",
      "eventSource": "aws:sqs",
      "eventSourceARN": "arn:aws:sqs:ap-southeast-2:123456789012:MyQueue",
      "awsRegion": "ap-southeast-2"
    }
  ]
}

有一个名为的字段eventSourceARN将提供触发该函数的 SQS 队列的 ARN。


推荐阅读