

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

# 步驟 16：更新技術指南以使用社群技術指南
<a name="gettingstarted-cookbooks-community-cookbooks"></a>

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

最後，更新技術指南以使用 Chef 社群提供之外部技術指南中的功能。您在本演練中會使用的外部技術指南可從 [Chef Supermarket](https://supermarket.chef.io/) 取得。該網站為存取外部 Chef 技術指南的熱門位置。此外部技術指南提供自訂資源，可讓您下載及安裝應用程式，與您在[步驟 4：更新技術指南以安裝套件](gettingstarted-cookbooks-install-package.md)中執行的作業相似。而除了套件外，此資源還可安裝 Web 應用程式和其他應用程式類型。

當技術指南依存於另一個技術指南時，您必須指定其對其他技術指南的依存性。若要宣告及管理技術指南依存性，我們建議您使用名為 Berkshelf 的工具。如需如何在本機工作站上安裝 Berkshelf 的詳細資訊，請參閱 Chef 網站上的[關於 Berkshelf](https://docs.chef.io/berkshelf.html)。

在您安裝 Berkshelf 之後，遵循這些程序以宣告技術指南的依存性，然後建立呼叫外部技術指南中資源的配方。

**宣告技術指南依存性**

1. 在您的本機工作站上，於 `opsworks_cookbook_demo` 目錄中，在 `metadata.rb` 檔案的結尾新增此行：

   ```
   depends "application", "5.0.0"
   ```

   這會宣告其依存於名為 `application`，版本 5.0.0 的技術指南。

1. 從 `opsworks_cookbook_demo` 目錄的根，執行下列命令。命令結尾的句號是有意的。

   ```
   berks init .
   ```

   Berkshelf 會建立您在稍後針對更進階的案例可使用的資料夾及檔案。我們在本演練中所需要的檔案為名為 `Berksfile` 的檔案。

1. 在 `Berksfile` 檔案的結尾新增此行：

   ```
   cookbook "application", "5.0.0"
   ```

   這會通知 Berkshelf 您希望使用 [應用程式技術指南，版本 5.0.0](https://supermarket.chef.io/cookbooks/application/versions/5.0.0)。Berkshelf 可從 Chef Supermarket 下載。

1. 在終端機或命令提示中，從 `opsworks_cookbook_demo` 目錄的根執行下列命令：

   ```
   berks install
   ```

   Berkshelf 會為您的技術指南和應用程式技術指南建立依存性清單。Berkshelf 會在下一個程序中使用此依存性清單。

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

1. 在 `recipes` 目錄中的 `opsworks_cookbook_demo` 子目錄內，建立名為 `dependencies_demo.rb` 的檔案，其中包含下列程式碼：

   ```
   application "Install NetHack" do
     package "nethack.x86_64"
   end
   ```

   此配方會依存應用程式技術指南的應用程式資源，以在執行個體上安裝熱門的文字式冒險遊戲 NetHack。(您當然可以將其取代為任何其他的套件名稱，只要執行個體上的套件管理員可取得該套件即可。)

1. 從 `opsworks_cookbook_demo` 目錄的根，執行下列命令：

   ```
   berks package
   ```

   Berkshelf 使用先前程序中的依存性清單，來建立名為 `cookbooks-timestamp.tar.gz` 的檔案，其中包含 `opsworks_cookbook_demo` 目錄及其更新後的內容，包含技術指南的依存技術指南。將此檔案重新命名為 `opsworks_cookbook_demo.tar.gz`。

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

1. 遵循[步驟 5：更新執行個體上的技術指南及執行配方](gettingstarted-cookbooks-copy-cookbook.md)中的程序，更新執行個體上的技術指南及執行配方。在「執行配方」程序中，針對 **Recipes to execute (要執行的配方)**，輸入 **opsworks\$1cookbook\$1demo::dependencies\$1demo**。

1. 在您執行配方之後，應該可以登入執行個體，然後在命令提示輸入 **nethack** 來開始遊玩。(如需遊戲的詳細資訊，請參閱 [NetHack](https://en.wikipedia.org/wiki/NetHack) 和 [NetHack Guidebook](http://www.nethack.org/v343/Guidebook.html)。) 

在[下一個步驟](gettingstarted-cookbooks-clean-up.md)中，您可以清除用於本演練 AWS 的資源。此步驟為選用。當您繼續進一步了解 Stacks OpsWorks 時，建議您繼續使用這些 AWS 資源。不過，保留這些 AWS 資源可能會對 AWS 您的帳戶產生持續費用。如果您想要將這些 AWS 資源保留以供日後使用，您現在已完成本演練，您可以直接跳到 [後續步驟](gettingstarted-cookbooks-next-steps.md)。