AWS::CloudFormation::Init文档允许在 ec2 实例上创建用户规范,因此:
"users" : {
"myUser" : {
"groups" : ["groupOne", "groupTwo"],
"uid" : "50",
"homeDir" : "/tmp"
}
}
我想要做的是以编程方式替换“myUser”。使用 Ref: 不起作用:
"users": {
"{ "Ref": "UserName" }": {
"groups": [ "groupOne", "groupTwo" ]
}
}
它说“模板格式错误:JSON 格式不正确。” 与参考线一致。我已经尝试了大约 800 种不同的方式来键入它,带引号和不带引号,使用不同的函数而不是 Ref,但我一无所获。不幸的是,我不知道如何诊断这是否真的只是“您缺少逗号”类型的问题,或者尝试以编程方式替换“myUser”是否存在更大的问题。如果是后者,解决方案是什么。
有任何想法吗?
谢谢!
这不能
CloudFormation
直接通过服务实现。内在函数Ref
返回指定参数或资源的值。然后可以将该值与 JSON/YAML 键相关联。但它不能直接作为键,因为 JSON/YAML 对象是用键/值对编写的。我有两个想法可以解决它:
CloudFormation
项目编写的增压模板可以轻松做到这一点YAML
Jinja2
EC2 user data
,你可以试试这样的: