【问题标题】:Is it possible to create SQS as event source for LAMBDA in AWS?是否可以在 AWS 中创建 SQS 作为 LAMBDA 的事件源?
【发布时间】:2020-08-14 05:36:12
【问题描述】:

我正在阅读 AWS 教程: Tutorial: Using AWS Lambda with Amazon Simple Queue Service - AWS Lambda

步骤:

  1. 创建执行角色。 – 好的

  2. 创建函数 - 确定

  3. 测试功能 - 确定

  4. 创建 Amazon SQS 队列 -OK

失败的步骤是“配置事件源”:

aws lambda create-event-source-mapping --function-name AlexProcessSQSRecord  --batch-size 10  --event-source arn:aws:sqs:us-east-1:12345678901:AlexTrainingQueu

我看到的错误如下:

aws: error: argument --starting-position is required

但是,起始位置不适合

另外,StackOverflow 中有一篇文章指出无法将 SQS 用作 Lambda 的事件源:

Why isn't SQS an event source for lambda?

那么,为什么亚马逊教程建议:

将 AWS Lambda 与 Amazon Simple Queue Service 结合使用

【问题讨论】:

  • 嗨,Alex,您所说的“没有适合起始位置的价值”是什么意思?传入的时候有没有报错,或者你不确定要传入什么值?我假设“最新”是您从文档中想要的:docs.aws.amazon.com/lambda/latest/dg/…
  • 你使用什么版本的aws cli?

标签: amazon-web-services aws-lambda


【解决方案1】:

即使使用--event-source-arn,我也会收到相同的错误消息

升级到最新的aws cli解决它。

例子:

让我们有一个 sqs 队列名称 ingest 和 lambda 函数 message-receiver

aws lambda \
    create-event-source-mapping \
    --batch-size 1 \
    --event-source-arn arn:aws:sqs:us-east-1:000000000000:ingest \
    --function-name message-receiver

【讨论】:

    【解决方案2】:

    您可以在控制台上使用界面。

    打开lambda function => 点击Add trigger,选择SQS

    另外,使用--event-source-arn 而不是--event-source(这是文档中的错误)。

    【讨论】:

    • @Alex:你能不能试试--event-source-arn 而不是--event-source
    • 是的,该文档页面上似乎有错误。我已提交更正反馈。
    • @tuanVa - 在你的建议之后也一样
    • @Alex 是的,文档页面现已更新为上述修复。
    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    相关资源
    最近更新 更多