当两者都是使用不同的 SAM 模板创建时如何在 lambda 中获取 SNS 主题参考
How to get SNS Topic reference in lambda when both are created with different SAM templates
我有一个创建 AWS SNS 主题“MyAppTopic”的 AWS SAM 应用程序 (my-sam-app1)。通过该 SNS 调用的 lambda 也在该应用程序中创建。
现在我有另一个 AWS SAM 应用程序 (my-sam-app2),它有一个 Lambda,应该发布关于这个主题的消息 ("MyAppTopic")。
我不知道如何在不同的应用程序 Lambda 中获取对此主题(在 my-sam-app1 中创建)的引用。
当 Lambda 和主题在同一个应用程序中创建时,我可以轻松获得参考。
提前致谢
在一个堆栈中,您必须 Export reference to the SNS topic, while in the second stack you use ImportValue 它引用导出的值。
模板如下所示:
导出 SNS 主题的第一个模板:
Resources:
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html
MyAppTopic:
Type: AWS::SNS::Topic
Outputs:
MyAppTopic:
Description: "My exoported SNS topic"
Value: !Ref MyAppTopic
Export:
Name: !Sub MyAppTopic
使用此 AWS 资源的模板:
TopicArn:
Fn::ImportValue: !Sub MyAppTopic
我有一个创建 AWS SNS 主题“MyAppTopic”的 AWS SAM 应用程序 (my-sam-app1)。通过该 SNS 调用的 lambda 也在该应用程序中创建。
现在我有另一个 AWS SAM 应用程序 (my-sam-app2),它有一个 Lambda,应该发布关于这个主题的消息 ("MyAppTopic")。
我不知道如何在不同的应用程序 Lambda 中获取对此主题(在 my-sam-app1 中创建)的引用。
当 Lambda 和主题在同一个应用程序中创建时,我可以轻松获得参考。
提前致谢
在一个堆栈中,您必须 Export reference to the SNS topic, while in the second stack you use ImportValue 它引用导出的值。
模板如下所示:
导出 SNS 主题的第一个模板:
Resources:
# https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html
MyAppTopic:
Type: AWS::SNS::Topic
Outputs:
MyAppTopic:
Description: "My exoported SNS topic"
Value: !Ref MyAppTopic
Export:
Name: !Sub MyAppTopic
使用此 AWS 资源的模板:
TopicArn:
Fn::ImportValue: !Sub MyAppTopic