

这是新的《CloudFormation 模板参考指南》**。请更新您的书签和链接。有关开始使用 CloudFormation 的帮助，请参阅《AWS CloudFormation 用户指南》[https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html](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>

可在已安装引导脚本的 Amazon Linux AMI 映像上预先安装 CloudFormation 帮助程序脚本。
+ 在最新的 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 映像和 Microsoft Windows（2008 或更高版本）以外的 Linux/Unix 发行版，您可以下载 `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`

有关在 IAM policy 中使用 CloudFormation 特定的操作和条件上下文键的更多信息，请参阅《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)。