Я пытаюсь настроить рабочий процесс без сервера, который создает новую корзину S3, новую очередь SQS, а когда объект создается в корзине S3, помещает сообщения в очередь и раскручивает лямбду, как только их становится достаточно сообщения в очереди. В моем блоке ресурсов есть следующее:
resources:
Resources:
AnalyticsQueue:
Type: "AWS::SQS::Queue"
Properties:
QueueName: "my-queue"
S3EventQueuePolicy:
Type: AWS::SQS::QueuePolicy
DependsOn: AnalyticsQueue
Properties:
PolicyDocument:
Id: SQSPolicy
Statement:
- Effect: Allow
Action: sqs:SendMessage:*
Resource: !Ref AnalyticsQueue
Queues:
- !GetAtt AnalyticsQueue.Arn
AnalyticsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: "my-bucket"
NotificationConfiguration:
QueueConfigurations:
- Event: s3:ObjectCreated:*
Queue: !GetAtt AnalyticsQueue.Arn
Когда я пытаюсь развернуть это, я получаю следующую ошибку:
Произошла ошибка: AnalyticsBucket - Невозможно проверить следующее Конфигурации назначения (Сервис: Amazon S3; Код состояния: 400; Код ошибки: InvalidArgument; Идентификатор запроса: E2A1F8BD6BEE6EF4;).
Некоторое поиск в Google, и я обнаружил, что проблема в блоке NotificationConfiguration
в AnalyticsBucket
. Если я удаляю весь этот субблок, он развертывается очень хорошо, но, очевидно, не будет генерировать сообщения в очереди при создании объектов.
В поисках способа решения этой проблемы.