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

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-interface.html