通过 Cloudformation 创建 SQS 队列及其访问策略时出错

问题描述

我正在尝试使用 cloudformation 创建 SQS 队列及其关联的访问策略。尝试了几次迭代,但它一直给我这个错误

属性队列的值必须是字符串列表类型

下面是我的模板。谁能帮我指出这个问题:

    SQSQueue:
        Type: "AWS::SQS::Queue"
        Properties:
            DelaySeconds: "0"
            MaximumMessageSize: "262144"
            MessageRetentionPeriod: "10800"
            ReceiveMessageWaitTimeSeconds: "0"
            VisibilityTimeout: "30"
            QueueName: "ScanQueueItems"

    DocSQSSNSPolicy:
        Type: AWS::SQS::QueuePolicy
        Properties:
            PolicyDocument:
                Id: MessagetoSQSPolicy
                Statement:
                    Effect: Allow
                    Principal: "*"
                    Action:
                        - SQS:SendMessage
                    Resource: !GetAtt SQSQueue.Arn  
            Queues: !Ref SQSQueue

解决方法

Queues 应该是 List of String。这意味着,而不是:

Queues: !Ref SQSQueue

你应该:

Queues: 
    - !Ref SQSQueue

或更短:

Queues: [!Ref SQSQueue]