Amazon web services 错误:';主题不存在';使用SAM模板创建SNS主题?
我一直在尝试创建SNS主题并向这些主题发布消息?但在dev上部署之后,我得到错误“Topic不存在” SNS主题SAM代码:Amazon web services 错误:';主题不存在';使用SAM模板创建SNS主题?,amazon-web-services,amazon-sns,aws-sam,aws-sam-cli,Amazon Web Services,Amazon Sns,Aws Sam,Aws Sam Cli,我一直在尝试创建SNS主题并向这些主题发布消息?但在dev上部署之后,我得到错误“Topic不存在” SNS主题SAM代码: ItemServiceTopic: 类型:AWS::SNS::Topic 特性: DisplayName:“ItemServiceTopic” 第五种说法:对 KmsMasterKeyId:!Ref KMSDecryptKey TopicName:'项目服务开发主题.fifo' 将用于向SNS发布消息的Lambda positem: 类型:AWS::Serverless
ItemServiceTopic:
类型:AWS::SNS::Topic
特性:
DisplayName:“ItemServiceTopic”
第五种说法:对
KmsMasterKeyId:!Ref KMSDecryptKey
TopicName:'项目服务开发主题.fifo'
将用于向SNS发布消息的Lambda
positem:
类型:AWS::Serverless::Function
特性:
处理程序:处理程序/item-Handler.positem
层:
- !参考节点依赖层
活动:
PostItemApi:
类型:Api
特性:
RestApiId:!Ref ItemServiceApiG
路径:/v0/项
方法:邮寄
政策:
-AWSSCretsManagerGetSecretValuePolicy:
秘书长:!子'arn:aws:secretsmanager:${aws::Region}:${aws::AccountId}:secret:ItemServiceSecrets-d768io'
-KMSDecryptPolicy:
凯伊:!Ref KMSDecryptKey
-SNSPublishMessagePolicy:
主题名称:!子'arn:aws:sns:${aws::Region}:${aws::AccountId}:项目服务主题.fifo'
有没有办法解决上述错误
注意:我已将SNS添加到现有SAM模板文件中,但我觉得它没有创建SNS,因此在运行“positem”处理程序时,它无法表示未找到SNS主题请尝试使用
SNSPublishMessagePolicy
positem:
类型:AWS::Serverless::Function
特性:
处理程序:处理程序/item-Handler.positem
层:
- !参考节点依赖层
活动:
PostItemApi:
类型:Api
特性:
RestApiId:!Ref ItemServiceApiG
路径:/v0/项
方法:邮寄
政策:
-AWSSCretsManagerGetSecretValuePolicy:
秘书长:!Sub“arn:aws:secretsmanager:${aws::Region}:${aws::AccountId}:secret:ItemServiceSecrets-d768io”
-KMSDecryptPolicy:
凯伊:!Ref KMSDecryptKey
-SNSPublishMessagePolicy:
主题名称:!Ref ItemServiceTopic
通过这种方式,Cloudformation应该知道,更新函数需要在更新lambda函数之前首先存在SNS主题,这听起来像您的
AWS::Serverless::function
以前存在过,并且在创建新SNS主题之前,它首先使用新策略更新函数。您是否可以尝试首先使用注释掉的SNSPublishMessagePolicy
进行部署,然后如果成功,使用中的SNSPublishMessagePolicy
再次部署