AWS OpsWorks 堆栈生命周期事件 - AWS OpsWorks

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS OpsWorks 堆栈生命周期事件

重要

AWS OpsWorks Stacks 不再接受新客户。在 2024 年 5 月 26 日之前,现有客户将能够正常使用 OpsWorks 控制台、API、CLI 和 CloudFormation 资源,届时它们将停产。为准备此过渡,我们建议您 AWS Systems Manager 尽快将堆栈过渡到。有关更多信息,请参阅 AWS OpsWorks Stacks 生命周期终结常见问题解答将 AWS OpsWorks Stacks 应用程序迁移到 AWS Systems Manager 应用程序管理器

每个层有一组五个生命周期事件,每个事件有一组特定于层的关联配方。当某个层的实例上发生事件时, AWS OpsWorks Stacks 将自动运行一组相应的配方。要对这些事件提供自定义响应,请实现自定义配方并将其分配给每个图层的相应事件。 AWS OpsWorks Stacks 在活动内置食谱之后运行这些食谱。

Setup

此事件在已启动的实例完成引导后发生。也可以使用安装堆栈命令手动触发Setup事件。 AWS OpsWorks Stacks 运行的配方可以根据实例的层设置实例。例如,如果实例是 Rails App Server 层的成员,则 Setup 配方将安装 Apache、Ruby Enterprise Edition、Passenger 和 Ruby on Rails。

注意

Setup 事件将导致实例中断服务。由于实例在 Setup 生命周期事件运行时未处于 Online 状态,因此将从负载均衡器中删除运行 Setup 事件的实例。

Configure

如果出现以下情况之一,此事件将在堆栈的所有实例上发生:

例如,假设您的堆栈有实例 A、B 和 C,您启动了一个新实例 D。D 运行完设置配方后, AWS OpsWorks 堆栈会在 A、B、C 和 D 上触发Configure事件。如果您随后停止 A, AWS OpsWorks 堆栈会在 B、C 和 D 上触发Configure事件。 AWS OpsWorks 堆栈通过运行每个层的配方来响应Configure事件,这些Configure配方会更新实例的配置以反映当前的在线实例集。因此,Configure 事件是重新生成配置文件的好时机。例如,HAProxy Configure 配方将重新配置负载均衡器以适应联机应用程序服务器实例组中的任何更改。

您还可使用“配置”堆栈命令手动触发配置事件。

Deploy

此事件在您运行 Deploy 命令时发生,通常用于将应用程序部署到一组应用程序服务器实例。这些实例将运行这样的配方:将应用程序和任何相关文件从其存储库部署到层的实例。例如,对于 Rails 应用程序服务器实例,Deploy 配方将签出指定 Ruby 应用程序并要求 Phusion Passenger 重新加载它。您还可在其他实例上运行 Deploy,使这些实例能够更新其配置以适应新部署的应用程序 (举例)。

注意

“设置”包含“部署”;它在设置完成后运行“部署”配方。

Undeploy

该事件在您删除应用程序或运行 Undeploy 命令以从一组应用程序服务器实例中删除应用程序时发生。指定的实例将运行配方来删除所有应用程序版本并执行所有必需的清理。

Shutdown

此事件发生在您指示 AWS OpsWorks Stacks 关闭实例之后,但在关联的 Amazon EC2 实例实际终止之前。 AWS OpsWorks Stacks 将运行配方来执行清理任务,如关闭服务。

如果您已将 Elastic Load Balancing 负载均衡器连接到该层并启用了对连接耗尽的支持,则 AWS OpsWorks Stacks 会等到连接耗尽完成后再触发事件。Shutdown

触发Shutdown事件后, AWS OpsWorks Stacks 允许Shutdown配方在指定的时间内执行任务,然后停止或终止 Amazon EC2 实例。默认 Shutdown 超时值为 120 秒。如果您的 Shutdown 配方需要更长时间,您可以编辑层配置以更改超时值。有关实例 Shutdown 的更多信息,请参阅停止实例

注意

重新启动实例不会触发任何生命周期事件。

有关 Deploy 和 Undeploy 应用程序命令的更多讨论,请参阅部署应用程序

在已启动的实例完成引导后,剩余的启动序列如下所示:

  1. AWS OpsWorks Stacks 运行实例的内置Setup配方,然后运行任何自定义Setup配方。

  2. AWS OpsWorks Stacks 运行实例的内置Deploy配方,然后运行任何自定义Deploy配方。

    实例现在处于联机状态。

  3. AWS OpsWorks Stacks 会触发堆栈中所有实例Configure的事件,包括新启动的实例。

    AWS OpsWorks Stacks 运行实例的内置Configure配方,然后运行任何自定义配方。Configure

注意

要查看特定实例上发生的生命周期事件,请转到 Instances 页并单击实例名称,打开其详细信息页面。事件列表位于该页面底部的 Logs 部分。您可单击日志列中的显示以检查 Chef 日志中是否有事件。它提供了有关如何处理事件的详细信息,包括运行了哪些配方。有关如何解释 Chef 日志的更多信息,请参阅 Chef 日志

对于每个生命周期事件, AWS OpsWorks Stacks 会在每个实例上安装一组堆栈配置和部署属性,其中包含当前堆栈状态以及有关部署的信息(对于Deploy事件)。这些属性包含有关可用的实例、此类实例的 IP 地址等信息。有关更多信息,请参阅 堆栈配置和部署属性

注意

同时启动或停止大量实例可能迅速生成大量的 Configure 事件。为避免不必要的处理, AWS OpsWorks Stacks 仅响应最后一个事件。该事件的堆栈配置和部署属性包含针对一整套更改更新堆栈实例所需的一切信息。这样就不必同时处理早期Configure的事件。 AWS OpsWorks Stacks 将未处理Configure的事件标记为已取代。