

這是新的 *CloudFormation 範本參考指南*。請更新您的書籤和連結。如需 CloudFormation 入門的說明，請參閱 [AWS CloudFormation 使用者指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)。

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

# CloudFormation 協助程式指令碼參考
<a name="cfn-helper-scripts-reference"></a>

CloudFormation 提供下列 Python 協助程式指令碼，您可以使用這些指令碼在當做堆疊一部分建立的 Amazon EC2 執行個體上安裝軟體及啟動服務：
+  [cfn-init](cfn-init.md) – 用來擷取及解釋資源中繼資料、安裝套件、建立檔案及啟動服務。
+  [cfn-signal](cfn-signal.md) – 用來透過 `CreationPolicy` 或 `WaitCondition` 發出訊號，讓您可以在先決條件資源或應用程式就緒時，同步堆疊中的其他資源。
+  [cfn-get-metadata](cfn-get-metadata.md) – 用來擷取資源的中繼資料或特定金鑰的路徑。
+  [cfn-hup](cfn-hup.md) – 用來檢查是否有中繼資料更新，並在偵測到變更時執行自訂勾點。

您可以直接從範本呼叫指令碼。指令碼會搭配同一個範本中定義的資源中繼資料使用。指令碼會在堆疊建立程序期間於 Amazon EC2 執行個體上執行。

**注意**  
預設不會執行指令碼。您必須在範本中包含呼叫，才能執行特定協助程式指令碼。

**Topics**
+ [Amazon Linux AMI 映像](#cfn-helper-scripts-reference-amazon-amis)
+ [下載適用於其他平台的套件](#cfn-helper-scripts-reference-downloads)
+ [協助程式指令碼的許可](#cfn-helper-scripts-reference-permissions)
+ [使用最新版本](#cfn-helper-scripts-reference-latest-version)
+ [cfn-init](cfn-init.md)
+ [cfn-signal](cfn-signal.md)
+ [cfn-get-metadata](cfn-get-metadata.md)
+ [cfn-hup](cfn-hup.md)

## Amazon Linux AMI 映像
<a name="cfn-helper-scripts-reference-amazon-amis"></a>

CloudFormation 協助程式指令碼預先安裝在已安裝啟動程序指令碼的 Amazon Linux AMI 映像上。
+ 在最新的 Amazon Linux AMI 版本上，指令碼會安裝在 `/opt/aws/bin` 中。
+ 在之前的 Amazon Linux AMI 版本中，包含指令碼的 `aws-cfn-bootstrap` 套件位於 Yum 儲存庫中。

**注意**  
協助程式指令碼預先安裝在最新版本的 Amazon Linux AMI 上，而不是最佳化的 AMI 上，例如使用 Amazon Linux 作為基礎的 ECS 最佳化映像。

## 下載適用於其他平台的套件
<a name="cfn-helper-scripts-reference-downloads"></a>

<a name="cfn-helper-scripts-reference-downloads"></a>針對 Amazon Linux AMI 映像以外的 Linux/Unix 發行版本及 Microsoft Windows (2008 或更新版本)，您可以下載 `aws-cfn-bootstrap` 套件。

**注意**  
版本 2.0–1 及更高版本的協助程式指令碼支援 Python 3.4 及更高版本。如果您需要支援舊版 Python 的協助程式指令碼，請參閱 [CloudFormation 協助程式指令碼 1.4 的版本歷史記錄](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/releasehistory-aws-cfn-bootstrap.html#releasehistory-aws-cfn-bootstrap-v1)。


| 檔案格式 | 下載 URL | 
| --- | --- | 
|  TAR.GZ  |  [ https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-latest.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](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](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](https://s3.amazonaws.com/cloudformation-examples/aws-cfn-bootstrap-py3-win64-latest.exe)  | 

## 協助程式指令碼的許可
<a name="cfn-helper-scripts-reference-permissions"></a>

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

如果您選擇指定選項，我們建議您只指定下列其中一項：
+ `--role`
+ `--credential-file`
+ `--access-key` 搭配 `--secret-key`

如果您指定選項，請記住各種協助程式指令碼所需的許可：
+ `cfn-signal` 需要 `cloudformation:SignalResource`
+ 所有其他協助程式指令碼需要 `cloudformation:DescribeStackResource`

如需使用 CloudFormation 特定動作及 IAM 政策中之條件內容索引鍵的詳細資訊，請參閱《AWS CloudFormation 使用者指南**》中的[使用 AWS Identity and Access Management控制 CloudFormation 存取](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/control-access-with-iam.html)。

## 使用最新版本
<a name="cfn-helper-scripts-reference-latest-version"></a>

協助程式指令碼會定期更新。如果您使用協助程式指令碼，請確保您啟動的執行個體使用最新版的指令碼：
+ 請在您範本的 `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` 套件的版本歷史記錄，請參閱 [CloudFormation 協助程式指令碼的發行歷史記錄](releasehistory-aws-cfn-bootstrap.md)。