新增應用程式 - AWS OpsWorks

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

新增應用程式

重要

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

若要將應用程式部署到您的應用程式伺服器,第一個步驟是將應用程式新增至堆疊。app 代表應用程式,並包含各式各樣的中繼資料,例如應用程式的名稱和類型,以及將應用程式部署至伺服器執行個體所需的資訊,例如儲存庫 URL。您必須具有管理許可才能將應用程式新增至堆疊。如需詳細資訊,請參閱 管理使用者許可

注意

本節中的程序適用於 Chef 12 和更新的堆疊。如需如何在 Chef 11 堆疊中將應用程式新增至 layer 的資訊,請參閱步驟 2.4:建立和部署應用程式 - Chef 11

將應用程式新增至堆疊
  1. 將程式碼放在您偏好的儲存庫中,例如 Amazon S3 存檔、Git 儲存庫、顛覆儲存庫或 HTTP 封存檔。如需詳細資訊,請參閱 應用程式來源

  2. 按一下導覽窗格中的 Apps (應用程式)。針對您的第一個應用程式,在 Apps (應用程式) 頁面中,按一下 Add an app (新增應用程式)。針對後續的應用程式,按一下 +App (+應用程式)

  3. 使用 App New (新的應用程式) 頁面來設定應用程式,如下節中所述。

設定應用程式

Add App (新增應用程式) 頁面包含下列區段:Settings (設定)Application source (應用程式來源)Data Sources (資料來源)Environment Variables (環境變數)Add Domains (新增網域)SSL Settings (SSL 設定)

設定

名稱

應用程序名稱,用於在 UI 中表示應用程序。 AWS OpsWorks Stacks 也會使用此名稱,為內部使用的應用程式產生簡短名稱,並在堆疊設定和部署屬性中識別應用程式。將應用程式新增至堆疊之後,您可以按一下導覽窗格中的 Apps (應用程式),然後按一下應用程式名稱開啟詳細資訊頁面,以查看短名。

Document root (文件根)

AWS OpsWorks 「堆疊」會將「文件」根目錄設定指派給應用程式[:document_root]屬性中的deploy屬性。預設值為 null。您的部署配方可以使用標準 Chef 節點語法,從 deploy 屬性取得該值,並將指定的程式碼部署到伺服器的適當位置。如需如何部署應用程式的詳細資訊,請參閱部署配方

應用程式來源

您可以從下列存放庫類型部署應用程式:Git、Amazon S3 服務包、HTTP 服務包和其他。所有儲存庫類型都要求您必須指定儲存庫類型和儲存庫 URL。個別儲存庫類型都有自己的要求,如下所示。

注意

AWS OpsWorks Stacks 會自動將應用程式從標準儲存庫部署到內建伺服器層。如果您使用其他存放庫類型 (這是 Windows 堆疊的唯一選項),St AWS OpsWorks acks 會將存放庫資訊放在應用程式的deploy屬性中,但您必須實作自訂配方來處理部署工作。

HTTP 封存

若要使用可公開存取的 HTTP 伺服器做為儲存庫:

  1. 建立包含應用程式程式碼和任何相關檔案的資料夾的壓縮封存檔 (壓縮、gzip、bzip2、Java WAR 或壓縮區)。

    注意

    AWS OpsWorks 堆棧不支持未壓縮的壓縮包。

  2. 將封存檔案上傳至伺服器。

  3. 若要在主控台中指定儲存庫,請選取 HTTP Archive (HTTP 封存) 做為儲存庫類型並輸入 URL。

    如果歸檔受密碼保護,請在「應用程式來源」下指定登入認證。

Amazon S3 存檔

若要使用 Amazon 簡單儲存服務值區做為儲存庫:

  1. 建立公有或私有的 Amazon S3 儲存貯體。如需詳細資訊,請參閱 Amazon S3 文件

  2. 若要讓 AWS OpsWorks Stack 存取私有儲存貯體,您必須是擁有 Amazon S3 儲存貯體唯讀權限的使用者,而且您需要存取金鑰 ID 和秘密存取金鑰。如需詳細資訊,請參閱 AWS Identity and Access Management 文件

  3. 將程式碼和任何相關聯的檔案放入資料夾,並將該資料夾存放到壓縮封存 (zip、gzip、bzip2、Java WAR 或 tarball) 中。

    注意

    AWS OpsWorks 堆棧不支持未壓縮的壓縮包。

  4. 將存檔檔案上傳到 Amazon S3 儲存貯體並記錄該 URL。

  5. 若要在 AWS OpsWorks 堆疊主控台中指定儲存庫,請將存放庫類型設定為 S3 封存,然後輸入歸檔的 URL。若是私有封存,您也必須提供 AWS 存取金鑰 ID 和私密存取金鑰,其政策可授予存取儲存貯體的許可。若是公有封存,則將這些設定保留空白。

Git 儲存庫

Git 存儲庫提供了源代碼控制和版本控制。 AWS OpsWorks 堆棧支持公共託管的存儲庫站點,如GitHubBitbucket 以及私人託管的 Git 服務器。若是應用程式和 Git 子模組,您用來在 Application Source (應用程式來源) 中指定儲存庫的 URL 格式則取決於儲存庫為公有或私有:

公用儲存庫 — 使用 HTTPS 或 Git 唯讀通訊協定。例如,Chef 11 Linux 堆疊入門使用可透過下列 URL 格式之一 GitHub 存取的公用存放庫:

  • Git 唯讀:git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git

  • HTTPS:https://github.com/amazonwebservices/opsworks-demo-php-simple-app.git

私人存放庫 — 使用下列範例中顯示的 SSH 讀取/寫入格式:

  • Github 儲存庫:git@github.com:project/repository

  • 位於 Git 伺服器上的儲存庫:user@server:project/repository

Source Control (來源控制) 下方選取 Git 時,會顯示兩個額外的選擇性設定:

Repository SSH key (儲存庫 SSH 金鑰)

您必須指定部署 SSH 金鑰才能存取私有 Git 儲存庫。此欄位需要私有金鑰;公有金鑰會指派到您的 Git 儲存庫。針對 Git 子模組,指定的金鑰必須要能存取這些子模組。如需詳細資訊,請參閱 使用 Git 儲存庫 SSH 金鑰

重要

部署安全殼層金鑰不能要求輸入密碼; AWS OpsWorks Stacks 無法通過密碼。

Branch/Revision (分支/修訂)

如果儲存庫有多個分支, AWS OpsWorks Stacks 預設會下載主分支。若要指定特定分支,請輸入分支名稱、SHA1 雜湊或標籤名稱。若要指定特定的遞交,請輸入完整 40 個八進位碼的遞交識別符。

其他儲存庫

如果標準儲存庫不符合您的需求,您可以使用其他儲存庫,例如 Bazaar。不過, AWS OpsWorks Stacks 不會自動從此類儲存庫部署應用程式。您必須實作自訂配方來處理部署程序,並將這些配方指派給適當 layer 的部署事件。如需如何實作部署配方的範例,請參閱部署配方

資料來源

此區段會將資料庫連接到應用程式。您有下列選項:

  • RDS — 附加其中一個堆疊的 Amazon RDS 服務層

  • — 不附加資料庫伺服器。

如果您選取 RDS,則必須指定下列項目。

資料庫執行個體

該列表包括每個 Amazon RDS 服務層。您也可以選取下列之一:

(必要) 指定哪部資料庫伺服器連接到應用程式。清單內容取決於資料來源而定。

  • RDS — 堆疊的 Amazon RDS 服務層的清單。

資料庫名稱

(選用) 指定資料庫名稱。

  • Amazon RDS 層 — 輸入您為 Amazon RDS 執行個體指定的資料庫名稱。

    您可以從 Amazon RDS 控制台獲取數據庫名稱。

當您部署含有附加資料庫的應用程式時, AWS OpsWorks Stacks 會將資料庫執行個體的連線新增至應用程式的deploy屬性

您可以編寫自訂配方,以從 deploy 屬性擷取資訊,並將資訊放入可供應用程式存取的檔案中。這是將資料庫連線資訊提供給其他應用程式類型的唯一選項。

如需如何處理資料庫連線的詳細資訊,請參閱連線至資料庫

若要將資料庫伺服器與應用程式分離,請編輯應用程式的組態以指定不同的資料庫伺服器,或不指定任何伺服器。

環境變數

您可以為每個應用程式指定一組環境變數,以專屬於該應用程式。例如,如果您有兩個應用程式,則第二個應用程式無法使用您為第一個應用程式定義的環境變數,反之亦然。您也可以為多個應用程式定義相同的環境變數,並為每個應用程式指派不同的值。

注意

環境變數的數目並沒有特定限制。但是,關聯資料結構的大小 (包括變數的名稱、值和受保護旗標值) 不得超過 20 KB。此限制應該可以容納大多數的使用案例。超過此限制時會導致服務錯誤 (主控台),或含下列訊息的例外狀況 (API):"Environment: is too large (maximum is 20KB)" (環境:太大 (上限為 10 KB))。

AWS OpsWorks 堆棧將變量作為屬性存儲在應用程序的deploy屬性中。您可以使用標準 Chef 節點語法,讓您的自訂配方擷取這些值。如需如何存取應用程式環境變數的範例,請參閱使用 環境變數

金錀

變數名稱。它最多可以包含 64 個大小寫字母、數字和底線 (_),但必須以字母或底線開頭。

Value

變數值。它最多可以包含 256 個字元,且全都必須為可列印字元。

受保護的值

值是否受保護。此設定可讓您隱藏密碼之類的敏感資訊。如果您在建立應用程式之後,為變數設定 Protected value (受保護的值)

  • 應用程式的詳細資訊頁面只會顯示變數名稱,而非值。

  • 如果您有編輯應用程式的許可,則可以按一下 Update value (更新值) 來指定新的值,但您無法查看或編輯舊值。

注意

Chef 部署日誌有時可能包含環境變數。這表示受保護的變數可能會顯示在主控台。為了防止受保護的變數顯示在主控台中,建議您將 Amazon S3 儲存貯體用作不希望在主控台中顯示的受保護變數的儲存。S3 儲存貯體如何用於此用途,請參閱本指南中的使用 Amazon S3 存儲桶

網域和 SSL 設定

對於「其他」App 類型,「 AWS OpsWorks 堆疊」會將設定新增至應用程式的deploy屬性。您的配方可以從這些屬性擷取資料,並視需要設定伺服器。

網域設定

此區段有一個選用的 Add Domains (新增網域) 欄位,可用來指定網域。如需詳細資訊,請參閱 使用自訂網域

SSL 設定

此區段有一個 SSL Support (SSL 支援) 切換,可讓您用來啟用或停用 SSL。如果您按一下 Yes (是),則需要提供 SSL 憑證資訊。如需更多詳細資訊,請參閱 使用 SSL