我們可以使用AWS::CloudFormation::Init在啓動實例後執行命令並上傳文件。但是有沒有人知道這個操作的內部(來自亞馬遜的方面)?AWS :: CloudFormation :: Init它是如何工作的?
當我們傳入一個模板時,文件或命令傳輸到VM的位置是什麼時候?這是Xen功能(通過特殊管道)還是通過網絡?
"Resources": {
"MyInstance": {
"Type": "AWS::EC2::Instance",
"Metadata" : {
"AWS::CloudFormation::Init" : {
"config" : {
"packages" : {
:
},
"sources" : {
:
},
"commands" : {
:
},
"files" : {
:
},
"services" : {
:
},
"users" : {
:
},
"groups" : {
:
}
}
}
},
"Properties": {
:
}
}
}
謝謝,這真的是非常有用的信息。但是我仍然想知道,它是如何工作在cfn-init後面的(這些命令和文件如何通過網絡或其他虛擬設備傳輸到虛擬機?) – SoYoung
cfn-init向Amazon地址發出HTTP請求以獲取資源中的數據。然後它執行模板中指定的操作。模板在哪裏?在亞馬遜控制的服務器上的某處。 –
那麼,所有這些行動都基於網絡?這聽起來很合理,但仍有一些不方便的情況。如果我不想打開SecurityGroup出於安全原因(只有22端口),自動部署我的應用程序將會是一個問題。說實話,我希望他們通過特殊的管道或設備(在xen)傳播。任何方式,感謝您的幫助! – SoYoung