本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
步驟 12:更新食譜以使用自定義 JSON
重要
所以此 AWS OpsWorks Stacks 服務於 2024 年 5 月 26 日終止使用壽命,並已針對新客戶和現有客戶停用。我們強烈建議客戶盡快將其工作負載移轉至其他解決方案。如果您對移轉有任何疑問,請聯絡 AWS 支援 團隊上 AWS Re: 郵寄
通過添加引用存儲在實例上的自定義JSON的食譜來更新您的食譜。
無論何時建立、更新或複製堆疊或執行部署或堆疊命令,都可以使用自訂JSON格式指定資訊。舉例來說,這在您要讓一小部分不會變動的資料供您執行個體上的配方使用 (而非從資料庫取得資料) 時會非常有用。如需詳細資訊,請參閱使用自訂 JSON。
在本逐步解說中,您將使用 custom JSON 來提供有關客戶發票的一些虛構資訊。此步驟稍後會描述自訂JSON。
更新執行個體上的技術指南及執行新的配方
-
在您的本機工作站上,在
recipes
目錄中的opsworks_cookbook_demo
子目錄中,建立名為custom_json.rb
的檔案,其中包含下列配方程式碼:Chef::Log.info("********** For customer '#{node['customer-id']}' invoice '#{node['invoice-number']}' **********") Chef::Log.info("********** Invoice line number 1 is a '#{node['line-items']['line-1']}' **********") Chef::Log.info("********** Invoice line number 2 is a '#{node['line-items']['line-2']}' **********") Chef::Log.info("********** Invoice line number 3 is a '#{node['line-items']['line-3']}' **********")
此方案會在記錄檔中顯示有關自訂值的訊息JSON。
-
在終端機或命令提示中,使用 tar 命令建立
opsworks_cookbook_demo.tar.gz
檔案的新版本,其中包含opsworks_cookbook_demo
目錄及其更新後的內容。 -
將更新後的
opsworks_cookbook_demo.tar.gz
檔案上傳至 S3 儲存貯體。 -
遵循步驟 5:更新執行個體上的技術指南及執行配方中的程序,更新執行個體上的技術指南及執行配方。在「執行配方」程序中,針對 Recipes to execute (要執行的配方),輸入
opsworks_cookbook_demo::custom_json
。對於高級,自定義廚師 JSON,鍵入以下自定義JSON:{ "customer-id": "0123", "invoice-number": "9876", "line-items": { "line-1": "tractor", "line-2": "passenger car", "line-3": "trailer" } }
測試配方
-
在先前程序中的 Running command execute_recipes (執行 execute_recipes 命令) 頁面顯示時,針對 cookbooks-demo1 的 Log (日誌),選擇 show (顯示)。即會顯示 execute_recipes 日誌頁面。
-
向下捲動日誌,尋找看起來與下列內容相似的項目:
[2015-11-14T14:18:30+00:00] INFO: ********** For customer '0123' invoice '9876' ********** [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 1 is a 'tractor' ********** [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 2 is a 'passenger car' ********** [2015-11-14T14:18:30+00:00] INFO: ********** Invoice line number 3 is a 'trailer' **********
這些項目會顯示在「進階」、「自訂JSON廚師JSON」方塊中輸入的自訂資訊。
在下一步中,您將更新食譜以從數據袋中獲取信息,這些數據包是堆棧設置的集合 AWS OpsWorks 堆棧存儲在每個實例上。