深入了解:探索本演練中使用的技術指南 - AWS OpsWorks

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

深入了解:探索本演練中使用的技術指南

重要

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

本主題說明 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 Stacks 就會建立該路徑。

    • link 建立符號連結。

    • npm_install 安裝 Node Package Manager,是 Node.js 的預設套件管理工具。

    • npm_start 執行 Node.js。

雖然 AWS OpsWorks Stacks 建立了這個逐步解說所使用的食譜,但你可以建立自己的食譜。如要瞭解如何作業,請參閱入門:技術指南。此外,請前往了解 Chef 網站上的關於技術指南關於配方了解 Ubuntu 上的 Chef 基本概念,以及 Chef 入門網站上的使用 Chef 的第一步