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

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

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

重要

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

AWS OpsWorks Stacks 會向 Chef 配方公開各種堆疊設定。這些堆疊設定包含的值如:

  • 堆疊技術指南來源 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 搜尋存取。資料包存放在 /var/chef/runs/run-ID/data_bags目錄中一組 JSON 檔案的 AWS OpsWorks Stacks 執行個體上,其中 run-ID 是 AWS OpsWorks Stacks 指派給執行個體上每個 Chef 的唯一 ID。堆疊設定不再提供為 Chef 屬性,因此堆疊設定再也不能透過 Chef node 物件存取。如需詳細資訊,請參閱 AWS OpsWorks Stacks Data Bag 參考

例如,在適用於 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 Stacks 資料包名稱,例如 aws_opsworks_app,而不是使用 AWS OpsWorks Stacks 屬性名稱,例如 opsworksdeploy

如需詳細資訊,請參閱 AWS OpsWorks Stacks Data Bag 參考