Этот файл шаблона создает корзину, очередь SQS и политику для их соединения:
AWSTemplateFormatVersion: 2010-09-09
Parameters:
IncomingBucketName:
Type: 'String'
Description: 'Incoming Bucket Name'
Default: 'some-bucket-name-here'
Resources:
IncomingFileQueue:
Type: 'AWS::SQS::Queue'
Properties: {}
SQSQueuePolicy:
Type: 'AWS::SQS::QueuePolicy'
Properties:
PolicyDocument:
Id: 'MyQueuePolicy'
Version: '2012-10-17'
Statement:
- Sid: 'Statement-id'
Effect: 'Allow'
Principal:
AWS: "*"
Action: 'sqs:SendMessage'
Resource:
Fn::GetAtt: [ IncomingFileQueue, Arn ]
Queues:
- Ref: IncomingFileQueue
IncomingFileBucket:
Type: 'AWS::S3::Bucket'
DependsOn:
- SQSQueuePolicy
- IncomingFileQueue
Properties:
AccessControl: BucketOwnerFullControl
BucketName:
Ref: IncomingBucketName
NotificationConfiguration:
QueueConfigurations:
- Event:
s3:ObjectCreated:Put
Queue:
Fn::GetAtt: [ IncomingFileQueue, Arn ]
У меня возникла та же проблема, но я использовал эту страницу, чтобы выяснить, как соединить три ресурса по порядку.для успешного развертывания стека: https://aws.amazon.com/premiumsupport/knowledge-center/unable-validate-destination-s3/
Я все еще работаю над условием политики, поскольку форма, рекомендованная в приведенной выше ссылке, не работает для SQS.В этом случае приведенный выше шаблон небезопасен и не должен использоваться в рабочей среде, поскольку он позволяет любому добавлять сообщения в очередь.
Я обновлю этот ответ, как только выясню, что получилось...