问题描述
我有定义以下内容的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 (将#修改为@)