SAM Local 的 AWS Cloudformation 模板参数
AWS Cloudformation Template Parameters for SAM Local
在 SAM Local 的 template.yaml
中,是否可以定义一组参数,使其成为 Cloudformation 参数?
我想要这个的原因是我想创建一个允许用户提供 Cloudformation 参数值的 Launch Stack Url。
经过一番摆弄后,这看起来是可行的。您需要像定义普通 cloudformation 模板一样定义根级别 Parameters
。因此这是我的样子:
AWSTemplateFormatVersion: '2010-09-09'
Globals:
Function:
Timeout: 300
...
Parameters:
MyUserParameter:
Type: String
Resources:
HelloWorldFunction:
Properties:
CodeUri: s3://blah/blah
Environment:
Variables:
FOO: bar
Events:
CatchAll:
Properties:
Method: GET
Path: /hello
Type: Api
Handler: hello-world
Runtime: go1.x
Tracing: Active
Type: AWS::Serverless::Function
Transform: AWS::Serverless-2016-10-31
正如 n00b 所说
You need to define a root level Parameters
但是这些参数在配置中按字母顺序排序。
如果您想按照 link 中的原样组织它们,您必须使用元数据:
Metadata:
'AWS::CloudFormation::Interface':
ParameterGroups:
- Label:
default: Name of your parameter group
Parameters:
- Parameter
ParameterLabels:
ParameterName:
default: Complete name of your parameter with spaces if you want
在 SAM Local 的 template.yaml
中,是否可以定义一组参数,使其成为 Cloudformation 参数?
我想要这个的原因是我想创建一个允许用户提供 Cloudformation 参数值的 Launch Stack Url。
经过一番摆弄后,这看起来是可行的。您需要像定义普通 cloudformation 模板一样定义根级别 Parameters
。因此这是我的样子:
AWSTemplateFormatVersion: '2010-09-09'
Globals:
Function:
Timeout: 300
...
Parameters:
MyUserParameter:
Type: String
Resources:
HelloWorldFunction:
Properties:
CodeUri: s3://blah/blah
Environment:
Variables:
FOO: bar
Events:
CatchAll:
Properties:
Method: GET
Path: /hello
Type: Api
Handler: hello-world
Runtime: go1.x
Tracing: Active
Type: AWS::Serverless::Function
Transform: AWS::Serverless-2016-10-31
正如 n00b 所说
You need to define a root level Parameters
但是这些参数在配置中按字母顺序排序。 如果您想按照 link 中的原样组织它们,您必须使用元数据:
Metadata:
'AWS::CloudFormation::Interface':
ParameterGroups:
- Label:
default: Name of your parameter group
Parameters:
- Parameter
ParameterLabels:
ParameterName:
default: Complete name of your parameter with spaces if you want