【发布时间】:2020-11-02 20:50:24
【问题描述】:
我一直在尝试创建 SNS 主题并将消息发布到这些主题?但是在 dev 上部署后,我收到错误“主题不存在”?
SNS 主题 SAM 代码:
ItemServiceTopic:
Type: AWS::SNS::Topic
Properties:
DisplayName: 'ItemServiceTopic'
FifoTopic: true
KmsMasterKeyId: !Ref KMSDecryptKey
TopicName: 'item-service-dev-topic.fifo'
将用于向 SNS 发布消息的 Lambda
PostItem:
Type: AWS::Serverless::Function
Properties:
Handler: handlers/item-handler.postItem
Layers:
- !Ref NodeDependenciesLayer
Events:
PostItemApi:
Type: Api
Properties:
RestApiId: !Ref ItemServiceApiG
Path: /v0/items
Method: POST
Policies:
- AWSSecretsManagerGetSecretValuePolicy:
SecretArn: !Sub 'arn:aws:secretsmanager:${AWS::Region}:${AWS::AccountId}:secret:ItemServiceSecrets-d768io'
- KMSDecryptPolicy:
KeyId: !Ref KMSDecryptKey
- SNSPublishMessagePolicy:
TopicName: !Sub 'arn:aws:sns:${AWS::Region}:${AWS::AccountId}:item-service-topic.fifo'
有没有办法解决上述错误?
注意:我已将 SNS 添加到现有的 SAM 模板文件中,但我觉得它没有创建 SNS,因此在运行“postItem”处理程序时失败,提示未找到 SNS 主题
【问题讨论】:
-
听起来您的
AWS::Serverless::Function以前就存在过,它是更新函数首先使用新策略之前新的SNS主题是创建的。您可以尝试先将SNSPublishMessagePolicy注释掉并部署,然后如果成功,请在SNSPublishMessagePolicy中再次部署
标签: amazon-web-services amazon-sns aws-sam aws-sam-cli