本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 3:建立和部署自訂技術指南
重要
該 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post
堆疊尚未就緒:
-
您的應用程式需要一些資訊才能存取 MySQL 資料庫伺服器和 Amazon S3 儲存貯體,例如資料庫主機名稱和 Amazon S3 儲存貯體名稱。
-
您需要在 MySQL 資料庫伺服器中設定資料庫,並建立資料表來保存相片的中繼資料。
您可以手動處理這些任務,但更好的方法是實現 Chef 方法,並讓 AWS OpsWorks Stacks 在適當的實例上自動運行配方。Chef 方法是專門的 Ruby 應用程式, AWS OpsWorks Stacks 用來在執行個體上執行工作,例如安裝套件或建立設定檔。配方封裝在「技術指南」中,而技術指南可以包含多個配方和相關檔案 (例如組態檔案的範本)。食譜被放置在存儲庫中,例如 GitHub,並且必須具有標準的目錄結構。如果您還沒有自訂技術指南儲存庫,請參閱技術指南儲存庫,以取得如何設定技術指南的資訊。
在此示例中,食譜已為您實施並存儲在公共存儲 GitHub 庫appsetup.rb
和 dbsetup.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 技術指南
-
在「堆 AWS OpsWorks 疊堆疊」頁面上,選擇「堆疊設定」,然後選擇 「編輯」。
-
在 Configuration Management (組態管理) 區段中:
-
將 Use custom Chef cookbooks (使用自訂 Chef 技術指南) 設為 Yes (是)。
-
將 Repository type (儲存庫類型) 設定為 Git。
-
將 Repository URL (儲存庫 URL) 設定為
git://github.com/amazonwebservices/opsworks-example-cookbooks.git
。
-
-
在 Stack (堆疊) 頁面上,選擇 Run Command (執行命令),並選取 Update Custom Cookbooks (更新自訂技術指南) 堆疊命令,然後選擇 Update Custom Cookbooks (更新自訂技術指南),以將新的技術指南安裝到執行個體的技術指南快取中。