amazon-cloudformation - 是否可以在 CloudFormation 中重用预先构建的文本?
问题描述
我有一些参数传递给我的 CloudFormation conf 文件之一,如下所示(YAML):
AWSTemplateFormatVersion: '2010-09-09'
Description: AWS CloudFormation Template for creating pipeline workflow.
Parameters:
Opt1:
Description: my opt1
Type: String
Default: opt1_default
Opt2:
Description: my opt2
Type: String
Default: opt2_default
Opt3:
Description: my opt3
Type: String
Default: opt3_default
...
在我的 conf 的许多其他部分,我一直在使用:
...
Name: !Sub '${Opt1}-${Opt2}-${Opt3}'
...
Name: !Sub '${Opt1}-${Opt2}-${Opt3}'
...
Name: !Sub '${Opt1}-${Opt2}-${Opt3}'
...
是否可以创建一些参考,例如:
SomeRef: !Sub '${Opt1}-${Opt2}-${Opt3}'
以我可以做到的方式:
...
Name: !Ref SomeRef
...
Name: !Ref SomeRef
...
Name: !Ref SomeRef
...
?
解决方案
没有资源和单一输出的嵌套模板可以做到:
NameCreator.yaml
---
AWSTemplateFormatVersion: 2010-09-09
Description: 'Empty nested template'
Parameters:
Opt1:
Type: String
Opt2:
Type: String
Conditions:
Never: !Equals [ a, b ]
Resources:
NullResource:
Type: Custom::Null
Condition: Never
Outputs:
Name:
Value: !Sub '${Opt1}-${Opt2}'
然后在主模板中调用它:
NameCreator:
Type: AWS::CloudFormation::Stack
Properties:
Parameters:
Opt1: !Ref Opt1
Opt2: !Ref Opt2
TemplateURL: https://mybucket.s3.amazonaws.com/NameCreator.yaml
并使用它:
Name: !GetAtt 'NameCreator.Outputs.Name'
推荐阅读
- r - 汇总时处理可能丢失的列的最佳方法是什么?
- sorting - Is it possible to sort Vuetify multiple selection on change?
- go - Go - 有条件地处理错误
- linux - vscode服务器启动SSH失败
- reactjs - vscode reformatting react js
- javascript - Wordpress 在“自定义帖子类型”的内容部分中的所有图像周围添加一个 div
- reactjs - Anyway to scroll through Carbon Design System content switchers?
- list - Rstudio 中是否有一个函数可以在列中以及从具有该名称的所有信息的列表中查找具有相同名称的数据?
- excel - 是否有将屏幕剪辑分配给命令按钮的 vba 代码?
- haskell - 如何将一个函数中收到的列表传递给另一个函数 - 在 Haskell 中?