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

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

AWS OpsWorks 堆栈生命周期事件

重要

这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过 AWS 高级支持

每个层有一组五个生命周期事件,每个事件有一组特定于层的关联配方。当图层的实例上发生事件时, 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 堆栈会触发 Configure A、B、C 和 D 上的事件如果你随后停止 A, AWS OpsWorks 堆栈会触发 Configure B、C 和 D 上的活动 AWS OpsWorks 堆栈会响应 Configure 事件,方式是运行每个层的 Configure 配方,它会更新实例的配置以反映当前的在线实例集。这些区域有:Configure 因此,事件是重新生成配置文件的好时机。例如,HAProxyConfigure 配方将重新配置负载均衡器,以适应一组联机应用程序服务器实例的任何更改。

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

Deploy

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

注意

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

Undeploy

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

Shutdown

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

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

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

注意

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

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

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

  1. AWS OpsWorks Stacks 运行实例的内置 Setup 配方,然后运行任何自定义 Setup 配方之前安装来自存储库的当前版本。

  2. AWS OpsWorks Stacks 运行实例的内置 Deploy 配方,然后运行任何自定义 Deploy 配方之前安装来自存储库的当前版本。

    实例现在处于联机状态。

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

    AWS OpsWorks 堆栈运行实例的内置 Configure 配方,然后运行任何自定义 Configure 配方之前安装来自存储库的当前版本。

注意

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

Log entries showing commands, timestamps, and durations for system operations.

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

注意

同时启动或停止大量实例可能迅速生成大量的 Configure 事件。为避免不必要的处理, AWS OpsWorks Stacks 仅对最后一个事件做出响应。该事件的堆栈配置和部署属性包含针对一整套更改更新堆栈实例所需的一切信息。这样,您就不必再处理以前的 Configure 事件。 AWS OpsWorks 堆栈会给未处理的贴上标签 Configure 事件标记为 superseded