`cfn-init` 是否在堆栈更新期间执行(configSet 的)新命令
Does `cfn-init` execute new commands (of a configSet) during a stack-update
具有如下 example 中的配置集:
"AWS::CloudFormation::Init" : {
"configSets" : {
"ascending" : [ "config1" , "config2" ],
"descending" : [ "config2" , "config1" ]
},
"config1" : {
"commands" : {
"test" : {
"command" : "echo \"$CFNTEST\" > test.txt",
"env" : { "CFNTEST" : "I come from config1." },
"cwd" : "~"
}
}
},
...
}
如果我添加 command/modify 现有的如下:
"config1" : {
"commands" : {
"test" : {
"command" : "echo \"$CFNTEST\" > test.txt",
"env" : { "CFNTEST" : "I come from config1." },
"cwd" : "~"
},
"test2" : {
"command" : "echo \"$CFNTEST\" > test2.txt",
"env" : { "CFNTEST" : "I come from config2." },
"cwd" : "~"
}
}
}
是否会创建文件test2.txt
?如果是的话,如果我修改 "env"
会发生什么?
如果这些命令仅在 cfn-init 期间被 运行 那么它们将不会在堆栈更新期间被 运行。只有新实例才会 运行 更新的命令。
如果您更新了堆栈,您需要使用 cfn-hup 重新运行 cfn-init。
具有如下 example 中的配置集:
"AWS::CloudFormation::Init" : {
"configSets" : {
"ascending" : [ "config1" , "config2" ],
"descending" : [ "config2" , "config1" ]
},
"config1" : {
"commands" : {
"test" : {
"command" : "echo \"$CFNTEST\" > test.txt",
"env" : { "CFNTEST" : "I come from config1." },
"cwd" : "~"
}
}
},
...
}
如果我添加 command/modify 现有的如下:
"config1" : {
"commands" : {
"test" : {
"command" : "echo \"$CFNTEST\" > test.txt",
"env" : { "CFNTEST" : "I come from config1." },
"cwd" : "~"
},
"test2" : {
"command" : "echo \"$CFNTEST\" > test2.txt",
"env" : { "CFNTEST" : "I come from config2." },
"cwd" : "~"
}
}
}
是否会创建文件test2.txt
?如果是的话,如果我修改 "env"
会发生什么?
如果这些命令仅在 cfn-init 期间被 运行 那么它们将不会在堆栈更新期间被 运行。只有新实例才会 运行 更新的命令。
如果您更新了堆栈,您需要使用 cfn-hup 重新运行 cfn-init。