CloudFormation 輔助腳本參考 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CloudFormation 輔助腳本參考

AWS 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 視窗(2008 或更高版本),您可以下載該軟件包。 aws-cfn-bootstrap

注意

版本 2.0–1 及更高版本的協助程式指令碼支援 Python 3.4 及更高版本。如果您需要支援舊版 Python 的協助程式指令碼,請參閱 CloudFormation 協助程式指令碼 1.4 的發行歷程記錄。

檔案格式 下載 URL

TAR.GZ

https://s3.amazonaws.com/cloudformation-examples/ aws-cfn-bootstrap-py 3-latest.tar.gz

使用 Python 的 Pip 來安裝 tar.gz。若要完成 Ubuntu 的安裝,您必須建立符號連結:

ln -s /<path-to-extracted-tar>/aws-cfn-bootstrap-2.0/init/ubuntu/cfn-hup /etc/init.d/cfn-hup

ZIP

https://s3.amazonaws.com/cloudformation-examples/ aws-cfn-bootstrap-py 3-latest.zip

EXE

32 位元視窗aws-cfn-bootstrap-py:https://s3.amazonaws.com/cloudformation-examples/ 3-latest.exe

64 位元視窗aws-cfn-bootstrap-py:https://s3.amazonaws.com/cloudformation-examples/ 3-win64-latest.exe

協助程式指令碼的許可

根據預設,協助程式指令碼不需要憑證,因此您不需要使用 --access-key--secret-key--role--credential-file 選項。不過,如果未指定認證,則會 CloudFormation 檢查堆疊成員資格,並將呼叫範圍限制為執行個體所屬的堆疊。

如果您選擇指定選項,我們建議您只指定下列其中一項:

  • --role

  • --credential-file

  • --access-key 搭配 --secret-key

如果您指定選項,請記住各種協助程式指令碼所需的許可:

如需在 IAM 政策中使用 CloudFormation特定動作和條件內容金鑰的詳細資訊,請參閱控制存取 AWS Identity and Access Management

使用最新版本

協助程式指令碼會定期更新。如果您使用協助程式指令碼,請確保您啟動的執行個體使用最新版的指令碼:

  • 請在您範本的 UserData 屬性中包含下列命令,再呼叫指令碼。此命令可確保您取得最新版本:

    yum install -y aws-cfn-bootstrap

  • 如果您未包含 yum install 命令並使用 cfn-initcfn-signalcfn-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 助手腳本的發行歷史記錄