這是新的 CloudFormation 範本參考指南。請更新您的書籤和連結。如需開始使用 CloudFormation 的說明,請參閱 AWS CloudFormation 使用者指南。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
cfn-init
在 CloudFormation 範本中,您可以在 Amazon EC2 資源的 Metadata區段AWS::CloudFormation::Init中使用 來定義初始化任務。如需詳細資訊,請參閱AWS::CloudFormation::Init。
cfn-init 協助程式指令碼會從AWS::CloudFormation::Init金鑰讀取範本中繼資料,並相應地執行下列動作:
-
從 CloudFormation 擷取及剖析中繼資料
-
安裝套件
-
將檔案寫入磁碟
-
啟用/停用及啟動/停止服務
cfn-init 協助程式指令碼通常從 Amazon EC2 執行個體或啟動範本的使用者資料執行。
如果您是初次使用協助程式指令碼,建議您先完成AWS CloudFormation 《 使用者指南》中的在 Amazon EC2 上部署應用程式教學課程。
注意
如果您使用 cfn-init 更新現有檔案,它會在具有 .bak 副檔名的相同目錄中建立原始檔案的備份副本。例如,如果您更新 /,此動作會產生兩個檔案:path/to/file_name/ 包含原始檔案的內容,而 path/to/file_name.bak/ 包含更新的內容。path/to/file_name
語法
cfn-init --stack|-sstack.name.or.id\ --resource|-rlogical.resource.id\ --regionregion\ --access-keyaccess.key\ --secret-keysecret.key\ --rolerolename\ --credential-file|-fcredential.file\ --configsets|-cconfig.sets\ --url|-uservice.url\ --http-proxyHTTP.proxy\ --https-proxyHTTPS.proxy\ --verbose|-v
注意
cfn-init 不需要登入資料,因此您不需要使用 --access-key、--role、 --secret-key或 --credential-file選項。不過,如果未指定憑證,CloudFormation 會檢查是否有堆疊成員資格,並將呼叫範圍限制為執行個體所屬的堆疊。如需詳細資訊,請參閱協助程式指令碼的許可。
選項
| 名稱 | 描述 | 必要 |
|---|---|---|
|
|
堆疊名稱或堆疊 ID。 類型:字串 預設:無 範例: |
是 |
|
|
包含中繼資料之資源的邏輯資源 ID。 類型:字串 範例: |
是 |
|
|
要使用的 CloudFormation 區域端點。 類型:字串 預設: 範例: |
否 |
|
|
AWS 具有在 CloudFormation 類型:字串 |
否 |
|
|
AWS 對應至指定存取金鑰的私密 AWS 存取金鑰。 類型:字串 |
否 |
|
|
與執行個體相關聯的 IAM 角色名稱。 類型:字串 條件:憑證檔案參數會取代此參數。 |
否 |
|
|
包含私密存取金鑰和存取金鑰的檔案。憑證檔案參數會取代 --role、--access-key 和 --secret-key 參數。 類型:字串 |
否 |
|
|
要 (循序) 執行的組態集逗號分隔清單。 類型:字串 預設: |
否 |
|
|
要使用的 CloudFormation 端點。 類型:字串 |
否 |
|
|
HTTP 代理 (非 SSL)。使用下列格式: 類型:字串 |
否 |
|
|
HTTPS 代理。使用下列格式: 類型:字串 |
否 |
|
|
詳細資訊輸出。這適用於偵錯 無法初始化 注意若要偵錯初始化事件,您應該 |
否 |
|
顯示協助訊息並退出。 |
否 |
範例
Amazon Linux 範例
下列範例顯示 EC2 InstallAndRun 執行個體的 UserData 屬性,其會執行與WebServerInstance資源相關聯的組態集。
若要包含最新版本,請將 yum install -y aws-cfn-bootstrap 新增至 UserData。
JSON
UserData 屬性,使用 Fn::Join 內部函數。
{ "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "#!/bin/bash -xe\n", "", "yum install -y aws-cfn-bootstrap", "/opt/aws/bin/cfn-init -v ", " --stack ", { "Ref": "AWS::StackName" }, " --resource WebServerInstance ", " --configsets InstallAndRun ", " --region ", { "Ref": "AWS::Region" }, "\n" ] ] } } }
YAML
UserData 屬性,使用 Fn::Sub 內部函數。
UserData: !Base64 Fn::Sub: |- #!/bin/bash -xe yum update -y aws-cfn-bootstrap # Install the files and packages from the metadata /opt/aws/bin/cfn-init -v --stack ${AWS::StackName} --resource WebServerInstance --configsets InstallAndRun --region ${AWS::Region}
相關資源
如需範例範本的教學課程,請參閱AWS CloudFormation 《 使用者指南》中的在 Amazon EC2 上部署應用程式。
如需Windows範例,請參閱AWS CloudFormation 《 使用者指南》中的引導 Windows型 CloudFormation 堆疊。
您也可以造訪我們的 GitHub 儲存庫,下載使用 的範例範本cfn-init,包括下列範本。
如需使用 的 LAMP 堆疊範本範例cfn-init,請參閱 GitHub 網站上的 ec2-lamp-server