如何解决由于SNS主题订阅导致的AWS Cloudformation模板部署失败已具有不同的属性
我有定义以下内容的AWS CloudFormation模板:
以下是serverless.yml的摘录:
provider:
stage: ${opt:stage,'staging'}
custom:
prefix: ${self:provider.stage}-email
resources:
deletionPolicy:
local: Delete
staging: Delete
prod: Retain
EmailSnsTopic:
DeletionPolicy: ${self:custom.resources.sns.deletionPolicy.${self:provider.stage}}
Type: AWS::SNS::Topic
Properties:
TopicName: ${self:custom.prefix}-EmailSnsTopic
displayName: "EmailSnsTopic Data ingestion pipeline"
EmailQueue:
Type: AWS::SQS::Queue
DeletionPolicy: ${self:custom.resources.sqs.deletionPolicy.${self:provider.stage}}
Properties:
QueueName: ${self:custom.sqs.EmailQueueName}
MessageRetentionPeriod: 1209600
VisibilityTimeout: ${self:custom.sqs.MESSAGE_VISIBILITY_TIMEOUT}
ReceiveMessageWaitTimeSeconds: ${self:custom.sqs.RECEIVE_MESSAGE_WAIT_TIME}
RedrivePolicy:
deadLetterTargetArn:
Fn::GetAtt:
- EmailDLQ
- Arn
maxReceiveCount: ${self:custom.sqs.MAX_RETRY}
EmailSnsSubscription:
UpdateReplacePolicy: Retain
DeletionPolicy: ${self:custom.resources.sns.deletionPolicy.${self:provider.stage}}
Type: AWS::SNS::Subscription
Properties:
Protocol: sqs
Endpoint:
Fn::GetAtt:
- EmailQueue
- Arn
FilterPolicy:
action: [{anything-but: sendSmsOnly}]
RawMessageDelivery: false
TopicArn: arn:aws:sns:${self:provider.region}:${self.account}:${self:provider.stage}-EmailSnsTopic
我有2个环境:生产和暂存。暂存环境中的部署运行良好,没有任何错误。但是生产环境中的部署会生成以下错误消息:
无服务器:正在检查堆栈更新进度... CloudFormation-UPDATE_IN_PROGRESS-AWS :: CloudFormation :: Stack-电子邮件产品 CloudFormation-CREATE_IN_PROGRESS-AWS :: SNS :: Subscription-EmailSnsSubscription
CloudFormation-CREATE_Failed-AWS :: SNS :: Subscription-EmailSnsSubscription ... ... CloudFormation-UPDATE_ROLLBACK_COMPLETE-AWS :: CloudFormation :: Stack-电子邮件产品 无服务器:操作失败!
无服务器错误---------------------------------------
发生错误:EmailSnsSubscription-无效参数:属性原因:订阅已存在且具有不同属性(服务:AmazonSNS;状态代码:400;错误代码:InvalidParameter;请求ID:xxx-xxxx-xxxxx;代理服务器:null)。
我很困惑,因为它只能在暂存环境中工作,而不能在生产环境中工作。
问题的可能根本原因是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。