【发布时间】:2019-12-27 10:05:10
【问题描述】:
我有两个嵌套的 Cloudformation 堆栈 - 第一个模板需要定义 Kinesis 流,第二个模板需要使用对该流的 ARN 的引用,作为进一步嵌套堆栈的参数。
所以看来我需要从第一个模板中“导出”流,然后将其“导入”到第二个模板中(遵循 AWS 文档中关于跨堆栈导入/导出值的说明)-
我的导出代码 [截断] 看起来像这样 -
Outputs:
MyKinesisStreamOutput:
Value:
Ref: MyKinesisStream
Export:
Name: my-kinesis-stream
Resources:
MyKinesisStream:
Properties:
Name:
Ref: AppName
ShardCount: 1
Type: AWS::Kinesis::Stream
虽然我的导入代码 [截断] 看起来像这样 -
MyNestedStack:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: !Sub "https://s3.${AWS::Region}.amazonaws.com/my-nested-stack.yaml"
Parameters:
AppName: my-nested-stack
KinesisStream:
Fn::GetAtt:
- Fn::ImportValue:
my-kinesis-stream
- Arn
然后我收到以下 Cloudformation 错误 -
Template error: every Fn::GetAtt object requires two non-empty parameters, the resource name and the resource attribute
怀疑我犯了这个错误-
For the Fn::GetAtt logical resource name, you cannot use functions. You must specify a string that is a resource's logical ID.
假设我正确导出和导入 Kinesis 流,那么我应该如何获取其 Arn 值?
【问题讨论】:
标签: amazon-web-services amazon-cloudformation amazon-kinesis