

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 步驟 4：將配方指派給生命週期事件
<a name="using-s3-events"></a>

**重要**  
 AWS OpsWorks Stacks 此服務已於 2024 年 5 月 26 日終止，並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載遷移至其他解決方案。如果您對遷移有任何疑問，請透過 [AWS re：Post](https://repost.aws/) 或透過 [AWS Premium Support](https://aws.amazon.com/support) 聯絡 AWS 支援 團隊。

您可以[手動](workingcookbook-manual.md)執行自訂配方，但最佳方法是讓 Stacks OpsWorks 自動執行。每個 layer 都有一組內建配方，指派給五個[生命週期事件](workingcookbook-events.md)中的每一個：設定、設定、部署、取消部署和關機。每次在執行個體上發生事件時， OpsWorks Stacks 都會為每個執行個體的 layer 執行相關聯的配方，以處理所需的任務。例如，當執行個體完成開機時， OpsWorks Stacks 會觸發安裝事件來執行安裝配方，這通常會處理安裝和設定套件 等任務。

您可以將每個配方指派給適當的生命週期事件，讓 OpsWorks Stacks 在 layer 的執行個體上執行自訂配方。 OpsWorks Stacks 會在 layer 的內建配方完成後執行任何自訂配方。在此範例中，將 `appsetup.rb`指派給 PHP App Server layer 的部署事件`dbsetup.rb`和 MySQL layer 的部署事件。 OpsWorks 堆疊接著會在啟動期間、內建安裝配方完成後，以及每次您部署應用程式時，在內建部署配方完成後，在相關聯的 layer 執行個體上執行配方。如需詳細資訊，請參閱[自動執行配方](workingcookbook-assigningcustom.md)。

**將自訂配方指派給 layer 的部署事件**

1. 在 OpsWorks Stacks **Layers **頁面上，針對 PHP 應用程式伺服器選擇**配方**，然後選擇**編輯**。

1. 在 **Custom Chef Recipes (自訂 Chef 配方)** 下方，將配方名稱新增至部署事件，然後選擇 **\$1**。名稱必須為 Chef `cookbookname::recipename` 格式，其中 `recipename` 不含 `.rb` 副檔名。在此範例中，您可以輸入 `photoapp::appsetup`。然後選擇 **Save (儲存)**，以更新 layer 組態。  
![\[Custom Chef Recipes configuration with Repository URL and lifecycle events.\]](http://docs.aws.amazon.com/zh_tw/opsworks/latest/userguide/images/psb6a.png)

1. 在 **Layers** 頁面上，選擇 MySQL layer **動作**欄中的**編輯**。

1. 將 `photoapp::dbsetup` 新增至 layer 的部署事件，並儲存新的組態。