Ошибка создания сервера без snspolicy с недопустимым параметром - PullRequest
0 голосов
/ 26 ноября 2018

Вот ошибка.

An error occurred: SNSTopicPolicy - Invalid parameter:
Policy Error: null (Service: AmazonSNS; 
Status Code: 400; Error Code: InvalidParameter; 
Request ID: 38a567df-2cff-50bf-8f0e-33a91775cc6e).

Я не могу найти место, чтобы посмотреть в журналах, чтобы сказать мне, какой параметр отсутствует.?.?Я уверен, что у меня есть все, что требуется.Я использую этот сайт и их страницы API.

SNSTopic:
  Type: AWS::SNS::Topic
  Properties:
    DisplayName: Aura main Topic
    TopicName: ${file(./env.yml):${opt:stage, self:provider.stage}.env.auraSnsTopicName}

SNSTopicPolicy:
  Type: AWS::SNS::TopicPolicy
  Properties:
    PolicyDocument:
      Id: auraAllowSQSsendrobelrobel
      Statement:
        -
          Effect: Allow
          Action:
            - sns: Publish
          Resource: { "Fn::GetAtt":["SQSQueue" ,"Arn"]}
          Principle:
            AWS: "*"
    Topics:
      - { "Ref": "SNSTopic" }


SQSQueue:
  Type: AWS::SQS::Queue
  Properties:
    QueueName: ${file(./env.yml):${opt:stage, self:provider.stage}.env.eeegPagesQueueName}
    RedrivePolicy:
      deadLetterTargetArn: {"Fn::GetAtt" : [ "SQSQueueDLQ", "Arn" ]}
      maxReceiveCount: 2


SQSQueuePolicy:
  Type: AWS::SQS::QueuePolicy
  Properties:
    PolicyDocument:
      Id: allowSNSSourceAndLambdaTrigger
      Statement:
        -
          Effect: Allow
          Action:
            - SQS:ReceiveMessage
            - SQS:SendMessage
            - SQS:ChangeMessageVisibility
            - SQS:ListDeadLetterSourceQueues
            - SQS:GetQueueUrl
            # - lambda:CreateEventSourceMapping
            # - lambda:ListEventSourceMappings
            # - lambda:ListFunction
          Resource: {"Ref": "SNSTopic"}
    Queues:
      - { "Ref": "SQSQueue" }

У меня есть заявление о политике SQS, которое работает просто отлично.

  Your Environment Information ----------------------------
     OS:                    Mac darwin
     Node Version:           8.12.0
     Serverless Version:     1.32.0

1 Ответ

0 голосов
/ 27 ноября 2018

Оказывается, что написание важно, а также подобъект AWS не нужен.Principal: "*"

Рабочая политика ниже:

SNSTopicPolicy:
  Type: AWS::SNS::TopicPolicy
  Properties:
    PolicyDocument:
      Statement:
        - Sid: auraAllowSQSPublish
          Effect: Allow
          Principal: "*"
          Action: "sns:Publish"
          Resource:  { "Ref": "SNSTopic" }
    Topics:
      - { "Ref": "SNSTopic" }
...