Amazon web services 是否需要从UserData调用cfn init?

Amazon web services 是否需要从UserData调用cfn init?,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,似乎AWS::CloudFormation::Init有一个配置部分,其中包含文件和命令子部分。但是在Properties中还有Base64编码的UserData,它在我的示例脚本中调用cfn init: "Fn::Base64": { "Fn::Join": [ "", [ "<script>\n", "cfn-init.exe -v -s ", { "Ref":

似乎
AWS::CloudFormation::Init
有一个配置部分,其中包含
文件
命令
子部分。但是在
Properties
中还有Base64编码的
UserData
,它在我的示例脚本中调用
cfn init

"Fn::Base64": {
    "Fn::Join": [
        "",
        [
            "<script>\n",
            "cfn-init.exe -v -s ", {
                "Ref": "AWS::StackId"
            },
            " -r MyInstance",
            " --region ", {
                "Ref": "AWS::Region"
            },
            "\n",
..................
“Fn::Base64”:{
“Fn::Join”:[
"",
[
“\n”,
“cfn-init.exe-v-s”{
“Ref”:“AWS::StackId”
},
“-r MyInstance”,
“--区域”{
“Ref”:“AWS::Region”
},
“\n”,
..................

我的问题是-您是否需要从
UserData
手动调用
cfn init
,以执行
AWS::CloudFormation::init
中的指令?如果是,原因是什么?为什么不自动启动它,以便在存在配置部分时始终执行它?

cfn init.exe
是EC2上的本地组件与CloudFormation堆栈通信以执行
AWS::CloudFormation::Init
部分中的命令的实例

我不知道,但我相信它没有将实际脚本放在用户数据中的原因是,它不想修改用户数据,以防您有自己的脚本。此外,要执行的命令可以是动态的,通过传递到CloudFormation脚本中的参数。
cfn init.exe
工具可以读取这些值对如何运行
AWS::CloudFormation::Init
命令进行优化并做出明智的选择

有关
cfn init.exe
的更多信息,请参见: