You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS CloudFormation模板中暴露SNS Topic的TopicArn输出值

问题根因

你之前的Outputs配置引用失败是两个错误导致的:

  • 资源逻辑ID不匹配:Resources块中定义的Service Catalog预配置产品逻辑ID是LabTrainingSnsTopic,但Outputs里写的是LabTrainingHigSnsTopic,ID拼写错误自然无法定位资源
  • GetAtt属性路径错误:AWS::ServiceCatalog::CloudFormationProvisionedProduct资源不支持直接通过.Resources.xxx的路径取底层创建的资源属性,正确的取值路径是先取该资源的Outputs属性,再匹配底层SNS产品模板暴露的输出键名。
正确配置方案

你使用的SNS预配置产品(prod-4iafsjovqrsrm)默认已经在自身模板的Outputs中暴露了TopicArn,直接按如下写法修改Outputs块即可:

Outputs:
  AccountID:
    Description: 堆栈部署所在的账号ID
    Value: !Ref 'AWS::AccountId'
  TopicArn:
    Description: 自动创建的SNS主题ARN
    Value: !GetAtt LabTrainingSnsTopic.Outputs.TopicArn

如果你部署时提示Outputs中不存在TopicArn键,可以先随意填一个不存在的键名触发部署报错,报错事件中会列出该预配置产品所有可用的输出键名,替换成实际对应的SNS ARN键名即可。

配置完成后重新更新堆栈,就能直接在CloudFormation控制台的Outputs选项卡看到完整的SNS Topic ARN,不需要跳转至Service Catalog或SNS控制台查找,复制后即可直接用于订阅配置。

内容的提问来源于stack exchange,提问作者johnnybgood97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 10:54:19