【问题标题】:How to get SNS Topic reference in lambda when both are created with different SAM templates使用不同的 SAM 模板创建两者时如何在 lambda 中获取 SNS 主题引用
【发布时间】:2022-02-15 06:00:03
【问题描述】:

我有一个创建 AWS SNS 主题“MyAppTopic”的 AWS SAM 应用程序 (my-sam-app1)。通过此 SNS 调用的 lambda 也在此应用程序中创建。

现在我有另一个 AWS SAM 应用程序 (my-sam-app2),它有一个 Lambda,应该发布关于这个主题的消息(“MyAppTopic”)。

我不知道,如何在不同的应用程序 Lambda 中获取对这个主题的引用(在 my-sam-app1 中创建)。

当 Lambda 和主题在同一个应用程序中创建时,我可以轻松获得参考。

提前致谢

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-iam amazon-sns aws-sam


    【解决方案1】:

    在一个堆栈中,您必须 Export 引用 SNS 主题,而在第二个堆栈中,您使用 ImportValue 它引用导出的值。

    【讨论】:

    • 谢谢。我会尝试并在这里更新
    • @pkpk 这是一个新问题,与“如何在不同的应用程序 Lambda 中获取该主题的引用(在 my-sam-app1 中创建)”无关。因此,我建议为它提出新问题。
    • 好的,我会这样做的
    【解决方案2】:

    模板如下所示:

    导出 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-29
      • 2020-02-08
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-06-18
      • 2022-08-22
      相关资源
      最近更新 更多