本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CloudFormation 協助程式指令碼參考
CloudFormation 提供下列 Python 協助程式指令碼,可用於在堆疊中建立的 Amazon EC2 執行個體上安裝軟體和啟動服務:
-
cfn-init – 使用 擷取和解譯資源中繼資料、安裝套件、建立檔案和啟動服務。
-
cfn-signal – 使用 來向
CreationPolicy
或 發出訊號WaitCondition
,以便在先決條件資源或應用程式準備就緒時同步堆疊中的其他資源。 -
cfn-get-metadata – 使用 擷取特定金鑰的資源或路徑中繼資料。
-
cfn-hup – 使用 檢查中繼資料的更新,並在偵測到變更時執行自訂掛鉤。
您可以直接從範本呼叫指令碼。指令碼會搭配同一個範本中定義的資源中繼資料使用。指令碼會在堆疊建立程序期間於 Amazon EC2 執行個體上執行。
注意
預設不會執行指令碼。您必須在範本中包含呼叫,才能執行特定協助程式指令碼。
Amazon Linux AMI 映像
CloudFormation 協助程式指令碼預先安裝在已安裝啟動程序指令碼的 Amazon Linux AMI 映像上。
-
在最新的 Amazon Linux AMI 版本上,指令碼會安裝在
/opt/aws/bin
中。 -
在先前的 Amazon Linux AMI 版本中,包含指令碼的
aws-cfn-bootstrap
套件位於 Yum 儲存庫中。
注意
協助程式指令碼預先安裝在最新版本的 Amazon Linux AMI 上,而不是最佳化的 AMI 上,例如使用 Amazon Linux 作為基礎的 ECS 最佳化映像。
下載適用於其他平台的套件
對於 Amazon Linux AMI 映像以外的 Linux/Unix 發行版本,以及 Microsoft Windows (2008 或更新版本),您可以下載aws-cfn-bootstrap
套件。
注意
版本 2.0–1 及更高版本的協助程式指令碼支援 Python 3.4 及更高版本。如果您需要支援舊版 Python 的協助程式指令碼,請參閱 CloudFormation 協助程式指令碼 1.4 的版本歷史記錄。
檔案格式 | 下載 URL |
---|---|
TAR.GZ |
使用 Python 的 pip 安裝
|
ZIP |
https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.zip |
EXE |
32 位元 Windows: https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.exe 64 位元 Windows: https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-win64-latest.exe |
協助程式指令碼的許可
根據預設,協助程式指令碼不需要憑證,因此您不需要使用 --access-key
、--secret-key
、--role
或 --credential-file
選項。不過,如果未指定憑證,CloudFormation 會檢查是否有堆疊成員資格,並將呼叫範圍限制為執行個體所屬的堆疊。
如果您選擇指定選項,我們建議您只指定下列其中一項:
-
--role
-
--credential-file
-
--access-key
搭配--secret-key
如果您指定選項,請記住各種協助程式指令碼所需的許可:
-
cfn-signal
需要cloudformation:SignalResource
-
所有其他協助程式指令碼需要
cloudformation:DescribeStackResource
如需在 IAM 政策中使用 CloudFormation 特定動作和條件內容金鑰的詳細資訊,請參閱AWS CloudFormation 《 使用者指南》中的使用 控制 CloudFormation 存取 AWS Identity and Access Management。
使用最新版本
協助程式指令碼會定期更新。如果您使用協助程式指令碼,請確保您啟動的執行個體使用最新版的指令碼:
-
請在您範本的
UserData
屬性中包含下列命令,再呼叫指令碼。此命令可確保您取得最新版本:yum install -y aws-cfn-bootstrap
-
如果您未包含
yum install
命令並使用cfn-init
、cfn-signal
或cfn-get-metadata
指令碼,則您需要使用此命令,在每個 Amazon EC2 Linux 執行個體上手動更新指令碼:sudo yum install -y aws-cfn-bootstrap
注意
執行
sudo yum install -y aws-cfn-bootstrap
會從yum
儲存庫安裝輔助程式指令碼。 -
如果您未包含
yum install
命令並使用cfn-hup
指令碼,則您需要使用這些命令,在每個 Amazon EC2 Linux 執行個體上手動更新指令碼:sudo yum install -y aws-cfn-bootstrap
sudo /sbin/service
cfn-hup
restart注意
執行
sudo yum install -y aws-cfn-bootstrap
會從yum
儲存庫安裝輔助程式指令碼。 -
如果您搭配其他版本的 Linux 或不同平台使用指令碼的來源碼,並已建立您自己的憑證信任存放區,則也需要確保更新信任存放區。
如需aws-cfn-bootstrap
套件的版本歷史記錄,請參閱 AWS CloudFormation 協助程式指令碼的發行歷史記錄。