importValue 功能在 cloudformation 中不起作用
Posted
技术标签:
【中文标题】importValue 功能在 cloudformation 中不起作用【英文标题】:importValue function does not work in cloudformation 【发布时间】:2018-02-28 13:01:31 【问题描述】:我看到 cloudformation 中的云形成导入值函数存在一个非常奇怪的问题。我正在尝试创建一个 cloudformation beanstalk 环境。在 configurationTemplate 部分我有:
configurationTemplateChannel:
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
ApplicationName:
- Fn::ImportValue:
Fn::Sub: "$StackNamePrefix-BeanstalkId-test"
Description: AWS ElasticBeanstalk Sample Configuration Template
OptionSettings:
.
.
.
- Namespace: aws:ec2:vpc
OptionName: VPCId
Value:
Fn::ImportValue:
Fn::Sub: "$StackNamePrefix-vpc-VpcId"
.
.
.
如您所见,我在 ApplicationName 中导入了导致:
An error occurred (ValidationError) when calling the CreateStack operation: [/Re sources/configurationTemplateChannel/Type/OptionSettings/6/Value/0/Fn::ImportVal ue] 'null' values are not allowed in templates
我做错了吗?这是否意味着我不能在这里使用导入选项?
任何帮助将不胜感激
【问题讨论】:
错误sources/configurationTemplateChannel/Type/OptionSettings/6/Value/0/...
中的路径似乎没有反映您问题中的模板。你能确定是吗?您是否还可以使用更多上下文更新您的代码 sn-p,因为错误可能隐藏在那里。
嘿thanx 回答,这是我在终端中使用我认为正确的文件运行的内容。现在我用 Fn::ImportValue: !Sub $StackNamePrefix-BeanstalkId-test 替换它时发现了问题,但问题是有什么区别?为什么它适用于第二个?
我真的无法解释,因为它们几乎是一回事。不过,我更喜欢简写的 !
版本,所以改用这种语法并不是一件坏事。
是的,感谢您的反馈
【参考方案1】:
对于更多读者:当我将其替换为 Fn::ImportValue: !Sub $StackNamePrefix-BeanstalkId-test it works 时,我发现了问题
【讨论】:
以上是关于importValue 功能在 cloudformation 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
AWS Cloudformation错误:由于递归导入而导致的递归锁定
需要功能:[CAPABILITY_IAM] Cloudformation AWS 控制台
Cloudformation 给出错误“需要功能:[CAPABILITY_AUTO_EXPAND]”