【问题标题】:how to provide multiple SQS queue name in AWS Lambda trigger cloud formation template如何在 AWS Lambda 触发器云形成模板中提供多个 SQS 队列名称
【发布时间】:2022-08-11 09:58:12
【问题描述】:

我想从我的 lambda 触发两个不同的 SQS 队列,在我这样提供的云形成模板中 - 但我的堆栈没有被创建。我收到以下错误消息:

Events:
        SQSEvent:
          Type: SQS
          Properties:
            Queues:
              - !Sub arn:aws:sqs:${AWS::Region}:${AccountId}:${QueueName}
              - !Sub arn:aws:sqs:${AWS::Region}:${AccountId}:${DLQQueueName}
            BatchSize: 1
            Enabled: true   

转换 AWS::Serverless-2016-10-31 失败,原因是:无服务器应用程序规范文档无效。 发现的错误数: 1. id 为 [MyLambda] 的资源无效。 ID 为 [SQSEvent] 的事件无效。未提供队列(用于 SQS)或流(用于 Kinesis、DynamoDB 或 MSK)或代理(用于 Amazon MQ)。04/27/22 06:09:18 - UPDATE_ROLLBACK_IN_PROGRESS - AWS::CloudFormation::Stack) - 转换 AWS::Serverless-2016-10-31 失败,原因是:无服务器应用程序规范文档无效。 发现的错误数: 1. id 为 [MyLambda] 的资源无效。 ID 为 [SQSEvent] 的事件无效。未提供队列(用于 SQS)或流(用于 Kinesis、DynamoDB 或 MSK)或代理(用于 Amazon MQ)。

有人可以帮我解决这个问题。感谢您的帮助!

谢谢!

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


    【解决方案1】:

    您将需要使用 Queues(复数):

    Events:
            SQSEvent:
              Type: SQS
              Properties:
                Queues:
                  - !Sub arn:aws:sqs:${AWS::Region}:${AccountId}:${QueueName}
                  - !Sub arn:aws:sqs:${AWS::Region}:${AccountId}:${DLQQueueName}
                BatchSize: 1
                Enabled: true  
    

    【讨论】:

    • 这不起作用,我收到一条错误消息:我已更新原始帖子。
    【解决方案2】:

    您可以对照这些模板检查您的无服务器设置 https://carova.io/snippets/serverless-aws-create-sqs-queue-template

    这个显示了您的 SQS 队列被订阅和 SNS 主题然后触发 AWS Lambda 函数的整个设置。 https://carova.io/snippets/serverless-aws-sqs-queue-subscribed-to-sns-topic

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-17
      • 2020-04-27
      • 2020-07-28
      • 2021-01-22
      • 1970-01-01
      • 2019-04-03
      • 2015-02-15
      • 2021-03-28
      相关资源
      最近更新 更多