CloudFormation 協助程式指令碼參考 - AWS CloudFormation

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

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

https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-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-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-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 協助程式指令碼的發行歷史記錄