gpt4 book ai didi

amazon-web-services - 使用 Cloudformation AWS SNS 到 SQS 发布失败

转载 作者:行者123 更新时间:2023-12-03 07:23:29 24 4
gpt4 key购买 nike

我最近开始使用 AWS 服务学习和实现服务。所以,我想我错过了一些我无法理解的小步骤。

我正在尝试使用 Cloudformation 模板实现下图。一切都工作正常除非。 Lambda 和 SQS 队列已成功订阅 SNS 主题。每当文件存储在存储桶中时,甚至当我手动向 SNS 主题发布消息时,lambda 函数都会成功触发,但消息不会发布到 SQS 队列。我还添加了 AWS::SQS::QueuePolicy 以允许 SNS 向 SQS 发送消息,但它仍然不起作用。

AWS Architecture

模板.yml:

...

Resources:
S3ObjectPutTopic:
Type: AWS::SNS::Topic
Properties:
TopicName: !Sub ${AppName}-vrp-creation-${Environment}-topic

BucketToSNSPermission:
Type: AWS::SNS::TopicPolicy
...

Bucket:
Type: AWS::S3::Bucket
...

Lambda:
Type: AWS::Serverless::Function
...

Queue:
Type: AWS::SQS::Queue
Properties:
DelaySeconds: 0
MaximumMessageSize: 262144
MessageRetentionPeriod: 864000
QueueName: !Sub ${AppName}-${Environment}-queue
ReceiveMessageWaitTimeSeconds: 0
VisibilityTimeout: 90

TopicToQueuePermission:
Type: AWS::SQS::QueuePolicy
Properties:
Queues:
- !Ref Queue
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service: s3.amazonaws.com
Action: sqs:SendMessage
Resource: !GetAtt Queue.Arn
Condition:
ArnEquals:
aws:SourceArn: !Ref S3ObjectPutTopic

TopicToQueueSubscription:
Type: AWS::SNS::Subscription
Properties:
Protocol: sqs
TopicArn: !Ref S3ObjectPutTopic
Endpoint: !GetAtt Queue.Arn
RawMessageDelivery: true

完整的 Cloudformation template.yaml 文件:template.yaml

最佳答案

您在 SQS 政策中提到了 Service: s3.amazonaws.com 而不是 Service: sns.amazonaws.com。更新模板并尝试。

TopicToQueuePermission:
Type: AWS::SQS::QueuePolicy
Properties:
Queues:
- !Ref Queue
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal:
Service: s3.amazonaws.com
Action: sqs:SendMessage
Resource: !GetAtt Queue.Arn
Condition:
ArnEquals:
aws:SourceArn: !Ref S3ObjectPutTopic

关于amazon-web-services - 使用 Cloudformation AWS SNS 到 SQS 发布失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67669052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com