將堆疊設定屬性移至資料包 - AWS OpsWorks

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

將堆疊設定屬性移至資料包

重要

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

AWS OpsWorks 「堆疊」會將各式各樣的堆疊設定暴露給您的廚師食譜。這些堆疊設定包含的值如:

  • 堆疊技術指南來源 URL

  • Layer 磁碟區組態

  • 執行個體主機名稱

  • Elastic Load Balancing DNS 名稱

  • 應用程式來源 URL

  • 使用者名稱

與直接在配方中硬編碼堆疊設定相比,參考配方中的堆疊設定能讓配方程式碼更強大且較不容易出錯。本主題說明如何存取這些堆疊設定,以及如何將它們從適用於 Linux 之 Chef 11.10 和舊版的屬性中移至 Chef 12 Linux 的資料包。

在適用於 Linux 的 Chef 11.10 和舊版中,堆疊設定可提供為 Chef 屬性,並可透過 Chef node 物件或透過 Chef 搜尋存取。這些屬性會儲存在/var/lib/aws/opsworks/chef目錄中的一組 JSON 檔案中的 AWS OpsWorks Stacks 執行個體上。如需詳細資訊,請參閱 堆疊組態及部署屬性:Linux

在 Chef 12 Linux 中,堆疊設定可提供為 Chef 資料包,但只能透過 Chef 搜尋存取。數據包存儲在 AWS OpsWorks Stacks 實例中的/var/chef/runs/run-ID/data_bags目錄中的一組 JSON 文件中,其中運行 ID 是 AWS OpsWorks Stacks 分配給在實例上運行的每個 Chef 的唯一 ID。堆疊設定不再提供為 Chef 屬性,因此堆疊設定再也不能透過 Chef node 物件存取。如需更多資訊,請參閱AWS OpsWorks 堆疊資料袋參考

例如,在適用於 Linux 的 Chef 11.10 和舊版中,以下配方程式碼使用 Chef node 物件取得代表應用程式簡稱和來源 URL 的屬性。接著使用 Chef 日誌寫入這兩個屬性值:

Chef::Log.info ("********** The app's short name is '#{node['opsworks']['applications'].first['slug_name']}' **********") Chef::Log.info("********** The app's URL is '#{node['deploy']['simplephpapp']['scm']['repository']}' **********")

在 Chef 12 Linux 中,以下配方程式碼使用 aws_opsworks_app 搜尋索引取得 aws_opsworks_app 資料包中第一個資料包項目的內容。然後,程式碼將兩個訊息寫入 Chef 日誌,一個有應用程式簡稱資料包內容,另一個有應用程式來源 URL 資料包內容:

app = search("aws_opsworks_app").first Chef::Log.info("********** The app's short name is '#{app['shortname']}' **********") Chef::Log.info("********** The app's URL is '#{app['app_source']['url']}' **********")

若要將您存取堆疊設定配方程式碼,從適用於 Linux 的 Chef 11.10 和舊版遷移至 Chef 12 Linux,您必須修改您的程式碼,以:

  • 存取 Chef 資料包,而非 Chef 屬性。

  • 使用 Chef 搜尋,而非 Chef node 物件。

  • 使用 AWS OpsWorks 堆疊資料包名稱,例如aws_opsworks_app,而不是使用 AWS OpsWorks Stacks 屬性名稱,例如opsworksdeploy

如需更多資訊,請參閱AWS OpsWorks 堆疊資料袋參考