AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

CloudFormation 帮助程序脚本参考

AWS CloudFormation 具备一组 Python 帮助程序脚本,以便您在已作为部分堆栈创建的 Amazon EC2 实例上安装软件并启动服务。您可以从您的模板中直接调用帮助程序脚本。该脚本可与您在同一模板中定义的资源元数据共同运行。该帮助程序脚本可在部分堆栈创建进程的 Amazon EC2 实例上运行。

可在 Amazon Linux AMI 最新版本上预先安装该帮助程序脚本。可从 Amazon Linux yum 存储库中获取帮助程序脚本,与其他 UNIX/Linux AMI 一起使用。

当前,AWS CloudFormation 具备以下帮助程序:

  • cfn-init:用于检索和解释资源元数据、安装软件包、创建文件和启动服务。

  • cfn-signal:用于发送 AWS CloudFormation CreationPolicy 或 WaitCondition 信号的简单包装程序,该程序使您能够将堆栈中的其他资源与准备就绪的应用程序进行同步。

  • cfn-get-metadata:包装程序脚本,旨在便于您轻松检索为资源定义的所有元数据或特定密钥路径和资源元数据子树。

  • cfn-hup:它是一项后台程序,用于检查元数据更新,并在检测出变更时,执行自定义钩子。

这些脚本按照默认方式安装在 /opt/aws/bin 中的最新版本 Amazon Linux AMI 上。针对 Amazon Linux AMI 的先前版本,可从 Amazon Linux AMI yum 存储库中获取这些脚本在,其亦可通过针对 Linux/Unix 分配的 RPM 获取。您还可以通过使用 Python for Windows 将这些脚本安装在 Microsoft Windows(2008 或更高版本)上。

脚本并非以默认方式执行的。您必须纳入对执行特定帮助程序脚本的调用操作。

AWS CloudFormation 帮助程序脚本通过以下位置可用:

帮助程序脚本将定期进行更新。如果您使用帮助程序脚本,请确保您的已启动实例使用的是脚本的最新版本:

  • 在调用脚本之前,将以下命令包含在模板的 UserData 属性中。此命令可确保您获得最新版本:

    yum install -y aws-cfn-bootstrap

  • 如果您未包含 yum install 命令,并且使用 cfn-initcfn-signalcfn-get-metadata 脚本,则您需要使用此命令手动更新每个 Amazon EC2 Linux 实例中的脚本。

    sudo yum install -y aws-cfn-bootstrap

  • 如果您未包含 yum install 命令,并且使用 cfn-hup 脚本,则您需要使用以下这些命令手动更新每个 Amazon EC2 Linux 实例中的脚本:

    sudo yum install -y aws-cfn-bootstrap

    sudo /sbin/service cfn-hup restart

  • 如果您将脚本的源代码与其他版本的 Linux 或其他平台一起使用,并且已创建您自己的证书信任存储,则您还需要使此信任存储保持最新。