在一个Cloudformation模板中,我创建了一个SNS主题并将其导出。请注意,您无法导出SNS主题的Arn
,因为该属性对于docs上的GetAtt
不可用。
BaseStack
Outputs:
AlarmSNSTopic:
Description: Arn for SNS topic related to alarms
Export:
Name: AlarmSNSTopic
Value: { "Fn::GetAtt": ["MyAlarmSNSTopic", "TopicName"] }
然后在另一个模板中,我尝试使用以下内容引用该导出:
功能堆栈1
InputQueueNoMessages:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmDescription: Some Alarm
...
AlarmActions:
Fn::ImportValue: AlarmSNSTopic
当我这样做时,Cloudformation告诉我它需要一个ARN,而不是主题名称。
Invalid arn syntax: Blah-AlarmSNSTopic-random
这可能吗?我想念什么吗?
最佳答案
AWS::CloudWatch::Alarm
需要AlarmActions
的ARN,但是您导出了主题名称。您的输出值应为ARN。
Outputs:
AlarmSNSTopic:
Description: Arn for SNS topic related to alarms
Export:
Name: AlarmSNSTopic
Value: !Ref MyAlarmSNSTopic