【发布时间】:2020-06-06 05:39:20
【问题描述】:
我正在尝试使用无服务器设置一个工作流,该工作流创建一个新的 S3 存储桶、一个新的 SQS 队列,当在 S3 存储桶中创建一个对象时,将一条消息放入队列并在足够多的情况下启动一个 lambda队列中的消息。我的资源块中有以下内容:
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;请求 ID:E2A1F8BD6BEE6EF4;)。
通过谷歌搜索,我发现问题出在 AnalyticsBucket 的 NotificationConfiguration 块中。如果我删除了整个子块,它会部署得很好,但显然不会在创建对象时在队列上生成消息。
正在寻找解决此问题的方法。
【问题讨论】:
标签: amazon-s3 amazon-cloudformation amazon-sqs serverless-framework