步驟 3:建立和部署自訂技術指南 - AWS OpsWorks

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

步驟 3:建立和部署自訂技術指南

重要

該 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post 或透過進AWS 階 Support 與 AWS Support 團隊聯絡。

堆疊尚未就緒:

  • 您的應用程式需要一些資訊才能存取 MySQL 資料庫伺服器和 Amazon S3 儲存貯體,例如資料庫主機名稱和 Amazon S3 儲存貯體名稱。

  • 您需要在 MySQL 資料庫伺服器中設定資料庫,並建立資料表來保存相片的中繼資料。

您可以手動處理這些任務,但更好的方法是實現 Chef 法,並讓 AWS OpsWorks Stacks 在適當的實例上自動運行配方。Chef 方法是專門的 Ruby 應用程式, AWS OpsWorks Stacks 用來在執行個體上執行工作,例如安裝套件或建立設定檔。配方封裝在「技術指南」中,而技術指南可以包含多個配方和相關檔案 (例如組態檔案的範本)。食譜被放置在存儲庫中,例如 GitHub,並且必須具有標準的目錄結構。如果您還沒有自訂技術指南儲存庫,請參閱技術指南儲存庫,以取得如何設定技術指南的資訊。

在此示例中,食譜已為您實施並存儲在公共存儲 GitHub 庫中。此技術指南包含 appsetup.rbdbsetup.rb 這兩個配方,以及 db-connect.php.erb 範本檔案。

appsetup.rb方案會建立一個組態檔案,其中包含應用程式存取資料庫和 Amazon S3 儲存貯體所需的資訊。基本上,它是稍經修改的 appsetup.rb 配方 (如將應用程式連線到資料庫中所述) 版本 主要差別在於傳遞到範本的變數,其代表存取資訊。

前四個屬性定義了數據庫連接設置,並在創建 MySQL 實例時由 AWS OpsWorks Stacks 自動定義。

這些變數和原始配方中的變數有兩項差異:

  • 與原始配方相同,table 變數代表由 dbsetup.rb 建立的資料庫表格名稱,並設定為技術指南屬性檔案中定義的屬性值。

    不過,屬性具有不同的名稱:[:photoapp][:dbtable]

  • s3bucket變數特定於此範例,並設定為代表 Amazon S3 儲存貯體名稱的屬性值[:photobucket]

    [:photobucket] 是使用自訂 JSON 來定義,如稍後所述。如需屬性的詳細資訊,請參閱Attributes

如需屬性的詳細資訊,請參閱Attributes

dbsetup.rb 配方會設定資料庫表格,以存放每個相片的中繼資料。基本上,它是稍經修改的 dbsetup.rb 配方 (如設定資料庫中所述) 版本;請參閱該主題以了解詳細描述。

此範例與原始方案之間的唯一差異是資料庫結構描述,其中包含三個欄,其中包含存放在 Amazon S3 儲存貯體的每張相片的 ID、URL 和標題。

這些配方已經實現,因此您需要做的就是將 photoapp 食譜部署到每個實例的食譜緩存中。 AWS OpsWorks 然後,堆疊會在適當的生命週期事件發生時執行快取的配方,如稍後所述。

部署 photoapp 技術指南
  1. 在「堆 AWS OpsWorks 疊堆疊」頁面上,選擇「堆疊設定」,然後選擇 「編輯」

  2. Configuration Management (組態管理) 區段中:

    • Use custom Chef cookbooks (使用自訂 Chef 技術指南) 設為 Yes (是)

    • Repository type (儲存庫類型) 設定為 Git。

    • Repository URL (儲存庫 URL) 設定為 git://github.com/amazonwebservices/opsworks-example-cookbooks.git

  3. Stack (堆疊) 頁面上,選擇 Run Command (執行命令),並選取 Update Custom Cookbooks (更新自訂技術指南) 堆疊命令,然後選擇 Update Custom Cookbooks (更新自訂技術指南),以將新的技術指南安裝到執行個體的技術指南快取中。

    Run Command interface showing Update Custom Cookbooks option and instance selection.