本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
深入了解:探索本演練中使用的技術指南
重要
所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS Support 團隊上 AWS Re: 郵寄
本主題描述的食譜 AWS OpsWorks 用於穿越的堆疊。
「技術指南」是一個 Chef 概念。技術指南是封存檔案,其中包含組態資訊,如配方、屬性值、檔案、範本、程式庫、定義和自訂資源。「配方」也是一個 Chef 概念。配方是以 Ruby 語言語法編寫的指示,指定要使用的資源以及套用那些資源的順序。如需詳細資訊,請前往了解 Chef
若要查看本逐步解說中使用的食譜內容,請將 opsworks-linux-demo-cookbooks-nodejs.tar.gz/var/chef/cookbooks
目錄中的內容)。
在 cookbooks/nodejs_demo/recipes
目錄中的 default.rb
檔案,是技術指南執行其程式碼的位置:
app = search(:aws_opsworks_app).first app_path = "/srv/#{app['shortname']}" package "git" do options "--force-yes" if node["platform"] == "ubuntu" && node["platform_version"] == "18.04" end application app_path do javascript "4" environment.update("PORT" => "80") git app_path do repository app["app_source"]["url"] revision app["app_source"]["revision"] end link "#{app_path}/server.js" do to "#{app_path}/index.js" end npm_install npm_start end
下列是該檔案執行的作業:
-
search(:aws_opsworks_app).first
使用 Chef 搜尋來查詢最終將會部署到執行個體的應用程式。此資訊包含如應用程式短名及其來源儲存庫詳細資訊等設定。由於本演練只部署一個應用程式,Chef 搜尋會在執行個體上aws_opsworks_app
搜尋索引內的第一個項目取得這些設定。每當執行個體啟動時, AWS OpsWorks Stacks 將此信息和其他相關信息存儲為實例本身的一組數據包,並通過 Chef 搜索獲取數據包內容。雖然您可以使用將這些設定硬式編碼在此配方中,但使用資料包和 Chef 搜尋是更穩健的方法。如需資料包的詳細資訊,請參閱 AWS OpsWorks 堆疊資料袋參考。另請參閱學習廚師網站上的「關於數據袋 」。如需 Chef 搜尋的詳細資訊,請前往了解 Chef 網站上的關於搜尋 。 -
package
資源會在執行個體上安裝 Git。 -
application
資源說明和部署 Web 應用程式:-
javascript
是要安裝的 JavaScript 執行階段版本。 -
environment
設定環境變數。 -
git
從指定的儲存庫和分支取得來源碼。 -
app_path
是要複製儲存庫到的目標路徑。如果路徑不存在於實例中, AWS OpsWorks 堆棧創建它。 -
link
建立符號連結。 -
npm_install
安裝 Node Package Manager,是 Node.js 的預設套件管理工具。 -
npm_start
執行 Node.js。
-
雖然 AWS OpsWorks 堆棧創建了用於本演練的食譜,您可以創建自己的食譜。如要瞭解如何作業,請參閱入門:技術指南。此外,請前往了解 Chef