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

标签 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]   

我想在测试后添加另一个 FindInMap 变量,但我做不到。

最佳答案

你可以这样做:

UserData:
  Fn::Base64: !Sub
    - |
      #!/bin/bash -xe
      foo=${foo}
      baz=${baz}
    - foo: !FindInMap [FooMap, Foo, Value]
      baz: !FindInMap [FooMap, Baz, Value]

它也可以被格式化为:

UserData:
  Fn::Base64: !Sub
    - |
      #!/bin/bash -xe
      foo=${foo}
      baz=${baz}
    - {
        foo: !FindInMap [FooMap, Foo, Value],
        baz: !FindInMap [FooMap, Baz, Value]
      }

另请参阅 Fn::FindInMap 的文档功能。

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

关于amazon-web-services - 如何在UserData中的Cloudformation Fn::Sub中添加两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54564787/

相关文章:

amazon-web-services - 从AWS CDK中,我们如何获取当前的IAM用户?

amazon-web-services - 如何使用 CloudFormation 创建 AWS API Gateway 自定义域?

json - 是否可以使用 AWS Cloudformation 模板将 Loadbalancers DNSname 连接到 Route53?

amazon-web-services - 如何将 DynamoDB 表地址以及 Redis 端口和地址传递到 CloudFormation 中的 EC2 实例?

django - 您如何使用 AWS Elastic Beanstalk 运行工作程序?

amazon-web-services - AWS CloudFormation 脚本失败 - Cognito 不允许使用您的电子邮件身份

node.js - 使用特定选项或环境变量在 AWS lambda 中启动 NodeJS 运行时

javascript - 将 s3 存储桶策略从 node.js 中的 JSON 转换为 base64

java - 如何从 AWS 云开发套件中的代码引用我的 lambda?

aws-cloudformation - 执行模板后将值存储到变量