Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 错误:';主题不存在';使用SAM模板创建SNS主题?_Amazon Web Services_Amazon Sns_Aws Sam_Aws Sam Cli - Fatal编程技术网

Amazon web services 错误:';主题不存在';使用SAM模板创建SNS主题?

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

我一直在尝试创建SNS主题并向这些主题发布消息?但在dev上部署之后,我得到错误“Topic不存在”

SNS主题SAM代码:

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
再次部署