Amazon web services CloudFormation:无法使用无服务框架为AWS上的SNS主题创建策略

Amazon web services CloudFormation:无法使用无服务框架为AWS上的SNS主题创建策略,amazon-web-services,amazon-cloudformation,serverless,Amazon Web Services,Amazon Cloudformation,Serverless,无法找出我做错了什么,如果我对SNSAddTopicPolicy发表评论,一切都正常,但是一旦我没有注释: SNSAddTopicPolicy - Invalid parameter: Policy Error: null (Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter; Request ID: 26870c3b-4829-5080-bd88-59e9524c08e4). 我试过每一种组合,但都没用,有什么

无法找出我做错了什么,如果我对SNSAddTopicPolicy发表评论,一切都正常,但是一旦我没有注释:

SNSAddTopicPolicy - Invalid parameter: Policy Error: null (Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter; Request ID: 26870c3b-4829-5080-bd88-59e9524c08e4).
我试过每一种组合,但都没用,有什么帮助吗

BucketAddEventInterfaceSNSTopic:
    Type: AWS::SNS::Topic
    Properties:
      TopicName: accounts-bucket-add-interface-dev

 SNSAddTopicPolicy:
    Type: AWS::SNS::TopicPolicy
    Properties:
        PolicyDocument:
          Id: 'accounts-sns-add-policy-dev'
          Version: 2012-10-17
          Statement:
            Sid: 'accounts-sns-add-statement-dev'
            Effect: Allow
            # this probably needs narrowed down
            Principal:
              AWS: '*'
            Action: sns:Publish
            Resource: { "Ref":"BucketAddEventInterfaceSNSTopic" }
        Topics:
          - { "Ref": "BucketAddEventInterfaceSNSTopic" }

看起来您混合了JSON和YAML语法作为参考。另外,为了安全起见,您应该在您的版本周围加引号,如下所示

你的政策应该更像这样

 SNSAddTopicPolicy:
    Type: AWS::SNS::TopicPolicy
    Properties:
        PolicyDocument:
          Id: 'accounts-sns-add-policy-dev'
          Version: '2012-10-17'
          Statement:
            Sid: 'accounts-sns-add-statement-dev'
            Effect: Allow
            # this probably needs narrowed down
            Principal:
              AWS: '*'
            Action: sns:Publish
            Resource: !Ref BucketAddEventInterfaceSNSTopic
        Topics:
          - !Ref BucketAddEventInterfaceSNSTopic

版本中缺少引号是原因。真是令人沮丧的问题。谢谢