Amazon cloudformation AWS将参数传递到EC2环境
我正在创建一个EC2实例模板,它将运行一个特定的应用程序。我希望能够将参数传递到我在模板UserData中执行的应用程序启动脚本 理想情况下,我可以将指定的参数转换为: A) 我将在启动脚本中访问的ec2实例上的环境变量 B) 我的UserData脚本中的可用变量 这是我想要完成的一个简化模板。。。没有发现任何aws文档表明可以完成:Amazon cloudformation AWS将参数传递到EC2环境,amazon-cloudformation,Amazon Cloudformation,我正在创建一个EC2实例模板,它将运行一个特定的应用程序。我希望能够将参数传递到我在模板UserData中执行的应用程序启动脚本 理想情况下,我可以将指定的参数转换为: A) 我将在启动脚本中访问的ec2实例上的环境变量 B) 我的UserData脚本中的可用变量 这是我想要完成的一个简化模板。。。没有发现任何aws文档表明可以完成: Resources: GitlabRunner: Type: "AWS::EC2::Instance" Description: "AWS s
Resources:
GitlabRunner:
Type: "AWS::EC2::Instance"
Description: "AWS stack for a serivce"
Properties:
UserData:
Fn::Base64: "#!/bin/bash\nmy-service $TAGS"
Parameters:
Tags:
Type: String
Default: asd
Description: Comma delimited list of tags
这个场景可以使用
实现!Sub
(注意替换语法${..}
)。例如:
Resources:
GitlabRunner:
Type: "AWS::EC2::Instance"
Description: "AWS stack for a serivce"
Properties:
UserData:
Fn::Base64: !Sub "#!/bin/bash\nmy-service ${Tags}"
Parameters:
Tags:
Type: String
Default: asd
Description: Comma delimited list of tags
...
UserData:
Fn::Base64: !Sub |
#!/bin/bash
my-service ${Tags}
echo hello world
您可以避免使用|
在一行中输入所有内容。例如:
Resources:
GitlabRunner:
Type: "AWS::EC2::Instance"
Description: "AWS stack for a serivce"
Properties:
UserData:
Fn::Base64: !Sub "#!/bin/bash\nmy-service ${Tags}"
Parameters:
Tags:
Type: String
Default: asd
Description: Comma delimited list of tags
...
UserData:
Fn::Base64: !Sub |
#!/bin/bash
my-service ${Tags}
echo hello world