步骤 4:将配方分配给生命周期事件 - AWS OpsWorks

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

步骤 4:将配方分配给生命周期事件

重要

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

您可以手动运行自定义配方,但最佳方法通常是让 AWS OpsWorks Stacks 自动运行它们。每层都有一组内置配方,分配到 Setup、Configure、Deploy、Undeploy 和 Shutdown 这五个生命周期事件。实例上每次发生某个事件时,AWS OpsWorks Stacks 为实例的每一层运行关联的配方来处理对应的任务。例如,当实例完成启动时,AWS OpsWorks Stacks 会触发 Setup 事件。此事件运行关联层的 Setup 配方,这通常处理诸如安装和配置软件包之类的任务。

您可以通过将配方分配给相应的生命周期事件,让 AWS OpsWorks Stacks 在层的实例上运行自定义配方。在此示例中,您应将 generate.rb 配方分配给 Rails App Server 层的 Deploy 事件。AWS OpsWorks随后在 Setup 配方已完成以及您每次部署应用程序时, Stacks 便在启动期间在该层的实例上运行 generate.rb 配方。有关更多信息,请参阅自动运行配方

将配方分配给 Rails App Server 层的 Deploy 事件
  1. 在 AWS OpsWorks Stacks 页面上,对于 Rails App Server,单击 配方,然后单击 编辑

  2. Custom Chef Recipes 下,将完全限定的配方名称添加到 Deploy 事件,然后单击 +。完全限定的配方名称采用 cookbookname::recipename 格式,其中 recipename 不包含 .rb 扩展名。在本例中,完全限定的名称为 redis-config::generate。然后单击 Save 以更新层配置。