`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。