本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 環境變數
重要
該 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請透過 AWS Re: post
注意
本主題中的建議適用於 Chef 11.10 及更早版本的 Chef。若要在 Chef 12 及更新版本中取得環境變數,您必須使用應用程式資料包。如需詳細資訊,請參閱 AWS 資 OpsWorks 料包參考和應用程式資料包 (aws_opsworks_ app)。
當您指定應用程式的環境變數時, AWS OpsWorks Stacks 會將變數定義新增至應用程式的deploy屬性。
自訂 layer 可透過使用標準節點語法,利用配方擷取變數的值,並以可由 layer 的應用程式存取的形式存放。
您必須實作從執行個體的 deploy
屬性取得環境變數的自訂配方。配方接著會將資料以可由應用程式存取的形式存放在執行個體上 (例如 YAML 檔案)。應用程式的環境變數定義會存放在應用程式 deploy
中的 environment_variables
屬性。以下範例顯示名為 simplephpapp
之應用程式內這些屬性的位置,並使用 JSON 代表屬性的結構。
{ ... "ssh_users": { }, "deploy": { "simplephpapp": { "application": "simplephpapp", "application_type": "php", "environment_variables": { "USER_ID": "168424", "USER_KEY": "somepassword" }, ... } }
配方可透過使用標準節點語法,取得變數的值。以下範例示範如何從先前的 JSON 中取得 USER_ID
的值,並將其置放於 Chef 日誌中。
Chef::Log.info("USER_ID: #{node[:deploy]['simplephpapp'][:environment_variables][:USER_ID]}")
如需如何從堆疊組態及部署 JSON 擷取資訊,並將其存放在執行個體上的更詳細說明,請參閱傳遞資料到應用程式。