Cloudformation init - 安装多个包

Cloudformation init - install multiple packages

我有以下参数询问用户要安装哪些包:

  Packages:
    Description: A SPACE seperated list of packages that you want installed on this instance.
    Type: String
    Default: None

然后在我的 EC2 实例资源定义中,我有:

  WebServerHost:
    Type: AWS::EC2::Instance
    Metadata:
      Comment: Install HTTP server
      AWS::CloudFormation::Init:
        config:
          packages:
            yum:
              Fn::Join: [ ' ', [ !Ref Packages ] ]
      

但这不起作用!请有人告诉我我做错了什么,或者我是否采取了错误的方法? 谢谢

Packages 采用 对象,而不是列表 。所以你不能按照你想要的方式动态地做到这一点。您必须 明确指定 yum 的正确值,因为在这种情况下,它们不能作为参数传递给。

解决这个问题的唯一方法是通过 CloudFormation macro,您必须开发它并且正确地将 yum 属性 设置为对象,而不是列表。