

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

# 步驟 12：更新技術指南以使用自訂 JSON
<a name="gettingstarted-cookbooks-custom-json"></a>

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

透過新增會參考存放於執行個體上之自訂 JSON 的配方，來更新您的技術指南。

您可以在您建立、更新、複製堆疊，或在您執行部署或堆疊命令時以自訂 JSON 格式指定資訊。舉例來說，這在您要讓一小部分不會變動的資料供您執行個體上的配方使用 (而非從資料庫取得資料) 時會非常有用。如需詳細資訊，請參閱[使用自訂 JSON](workingstacks-json.md)。

針對本演練，您會使用自訂 JSON 提供一些關於客戶發票的虛擬資訊。自訂 JSON 會在此步驟的稍後進行說明。

**更新執行個體上的技術指南及執行新的配方**

1. 在您的本機工作站上，在 `recipes` 目錄中的 `opsworks_cookbook_demo` 子目錄中，建立名為 `custom_json.rb` 的檔案，其中包含下列配方程式碼：

   ```
   Chef::Log.info("********** For customer '#{node['customer-id']}' invoice '#{node['invoice-number']}' **********")
   Chef::Log.info("********** Invoice line number 1 is a '#{node['line-items']['line-1']}' **********")
   Chef::Log.info("********** Invoice line number 2 is a '#{node['line-items']['line-2']}' **********")
   Chef::Log.info("********** Invoice line number 3 is a '#{node['line-items']['line-3']}' **********")
   ```

   此配方會在日誌中顯示關於自訂 JSON 內值的訊息。

1. 在終端機或命令提示中，使用 **tar** 命令建立 `opsworks_cookbook_demo.tar.gz` 檔案的新版本，其中包含 `opsworks_cookbook_demo` 目錄及其更新後的內容。

1. 將更新後的 `opsworks_cookbook_demo.tar.gz` 檔案上傳至 S3 儲存貯體。

1. 遵循[步驟 5：更新執行個體上的技術指南及執行配方](gettingstarted-cookbooks-copy-cookbook.md)中的程序，更新執行個體上的技術指南及執行配方。在「執行配方」程序中，針對 **Recipes to execute (要執行的配方)**，輸入 **opsworks\$1cookbook\$1demo::custom\$1json**。針對 **Advanced (進階)**、**Custom Chef JSON (自訂 Chef JSON)**，輸入下列自訂 JSON：

   ```
   {
     "customer-id": "0123",
     "invoice-number": "9876",
     "line-items": {
       "line-1": "tractor",
       "line-2": "passenger car",
       "line-3": "trailer"
     }
   }
   ```

**測試配方**

1. 在先前程序中的 **Running command execute\$1recipes (執行 execute\$1recipes 命令)** 頁面顯示時，針對 **cookbooks-demo1** 的 **Log (日誌)**，選擇 **show (顯示)**。即會顯示 **execute\$1recipes** 日誌頁面。

1. 向下捲動日誌，尋找看起來與下列內容相似的項目：

   ```
   [2015-11-14T14:18:30+00:00] INFO: ********** For customer '0123' invoice '9876' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 1 is a 'tractor' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 2 is a 'passenger car' **********
   [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 3 is a 'trailer' **********
   ```

   這些項目會顯示在 **Advanced (進階)**、**Custom Chef JSON (自訂 Chef JSON)** 方塊中輸入之自訂 JSON 的資訊。

在[下一個步驟](gettingstarted-cookbooks-data-bags.md)中，您將更新技術指南，從資料包取得資訊，這是 Stacks OpsWorks 在每個執行個體上存放的堆疊設定集合。