

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

# 第 4 步：为 LifeCycle 活动分配食谱
<a name="using-s3-events"></a>

**重要**  
该 AWS OpsWorks Stacks 服务于 2024 年 5 月 26 日终止，新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问，请通过 re [AWS : Post 或通过 Pre](https://repost.aws/) mium Su [AWS pp](https://aws.amazon.com/support) ort 与 AWS 支持 团队联系。

你可以[手动](workingcookbook-manual.md)运行自定义配方，但最好的方法通常是让 OpsWorks Stacks 自动运行它们。每层都有一组内置配方，分配到 Setup、Configure、Deploy、Undeploy 和 Shutdown 这五个[生命周期事件](workingcookbook-events.md)。每次实例上发生事件时， OpsWorks Stacks 都会为实例的每个层运行关联配方，这些配方处理所需的任务。例如，当实例完成启动时， OpsWorks Stacks 会触发安装事件来运行安装配方，该配方通常处理安装和配置软件包等任务。

通过将每个配方分配给相应的生命周期事件，可以让 OpsWorks Stacks 在图层的实例上运行自定义配方。 OpsWorks 图层的内置配方完成后，堆栈将运行任何自定义配方。在本示例中，分配`appsetup.rb`给 PHP 应用服务器层的 Deploy 事件和 `dbsetup.rb` MySQL 层的 Deploy 事件。 OpsWorks 然后，堆栈将在启动期间、内置安装配方完成后、每次部署应用程序时、构建的 Deploy 配方完成后，在关联层的实例上运行配方。有关更多信息，请参阅 [自动运行配方](workingcookbook-assigningcustom.md)。

**将自定义配方分配到层的部署事件**

1. 在 OpsWorks Stacks L **ay** ers 页面上，对于 PHP App Server，选择**食谱**，然后选择**编辑**。

1. 在 **Custom Chef Recipes (自定义 Chef 配方)** 下，将配方名称添加到 Deploy 事件，然后选择 **\$1**。该名称必须为 Chef `cookbookname::recipename` 格式，其中 `recipename` 不包括 `.rb` 扩展名。对于此示例，您输入 `photoapp::appsetup`。然后选择 **Save (保存)** 以更新层配置。  
![\[Custom Chef Recipes configuration with Repository URL and lifecycle events.\]](http://docs.aws.amazon.com/zh_cn/opsworks/latest/userguide/images/psb6a.png)

1. 在 **层** 页面上，选择 MySQL 层的 **操作** 列中的 **编辑**。

1. 将 `photoapp::dbsetup` 添加到层的部署事件，然后保存新配置。