如何在 UserData 中的 Cloudformation Fn::Sub 中添加两个变量

dav*_*bob 0 amazon-web-services aws-cloudformation

我可以添加 1 个变量但无法添加第二个,我是系统管理员,对 YAML 了解不多

UserData:  
    Fn::Base64: !Sub  
       - |+  
        #!/bin/bash -xe  
        NEW_HOSTNAME=${test}  
       - test:   
             Fn::FindInMap: [Regions, !Ref "AWS::Region", Name]   
Run Code Online (Sandbox Code Playgroud)

我想在测试后添加另一个 FindInMap 变量,但我无法添加。

Ale*_*vey 5

你可以这样做:

UserData:
  Fn::Base64: !Sub
    - |
      #!/bin/bash -xe
      foo=${foo}
      baz=${baz}
    - foo: !FindInMap [FooMap, Foo, Value]
      baz: !FindInMap [FooMap, Baz, Value]
Run Code Online (Sandbox Code Playgroud)

也可以格式化为:

UserData:
  Fn::Base64: !Sub
    - |
      #!/bin/bash -xe
      foo=${foo}
      baz=${baz}
    - {
        foo: !FindInMap [FooMap, Foo, Value],
        baz: !FindInMap [FooMap, Baz, Value]
      }
Run Code Online (Sandbox Code Playgroud)

另请参阅该Fn::FindInMap函数的文档。

请注意,我删除了|+- 这是一个 YAML 功能,并说要保留尾随的换行符。这里真的不需要。