View a markdown version of this page

使用範本工作室以視覺化方式編輯範本 - AWS CloudFormation

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

使用範本工作室以視覺化方式編輯範本

範本工作室是 CloudFormation 主控台中的範本編輯器。它以文字形式將您的範本顯示在範本宣告的資源圖表旁。當您編輯範本時,圖表會重新繪製以符合。您可以驗證範本,在 YAML 和 JSON 之間轉換,並將其儲存至 Amazon S3,而無需離開主控台。

範本文字是授權的。圖表是該文字的視覺呈現,而不是單獨的可編輯表面。您可以在範本中進行所有變更。

考量事項

當您在範本工作室工作時,請記住下列事項:

  • 您在範本中撰寫 ,而不是在圖表上。圖表顯示範本宣告的資源,以及它們如何互相參照;您無法透過編輯圖表來新增或設定資源。

  • 您的編輯不會自動儲存。範本 Studio 會在您瀏覽未儲存的變更之前要求確認。如果您離開或重新整理頁面,則會捨棄未儲存的變更。儲存到 Amazon S3,或在離開之前複製或下載範本。

  • 將範本從 YAML 轉換為 JSON 會捨棄其註解,因為 JSON 沒有其語法。轉換回 YAML 並不會還原它們。

  • 範本工作室中的 CloudFormation 驗證目前不適用於大於 51,200 位元組 (50 KiB) 的草稿。目前的驗證動作會透過具有此限制的 TemplateBody 參數傳送草案。這不是整體範本大小限制。根據 CloudFormation 配額,您仍然可以儲存範本並將其用於堆疊操作。如需詳細資訊,請參閱驗證範本。

  • 儲存會將範本寫入帳戶中的儲存貯體,因此您儲存的範本會以標準 Amazon S3 費率計費。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價。

  • 只有當畫布顯示在 Canvas 或兩者檢視中時,您才能下載資源圖表。

範本工作室所需的許可

您需要的許可取決於範本來源和您執行的動作:

cloudformation:GetTemplate

開啟現有堆疊的 範本時需要。授予您要編輯其範本之堆疊的存取權。

s3:GetObject

使用登入資料從 Amazon S3 讀取範本時需要。授予來源範本物件的存取權。預先簽章的 URL 使用 URL 中包含的授權。

cloudformation:ValidateTemplate

選擇驗證時需要。

s3:PutObject

儲存範本時需要。將此許可範圍限定為目的地儲存貯體中的物件,例如 arn:aws:s3:::destination-bucket/*,而不是所有資源。

s3:CreateBucket

只有在主控台建立遺失的目的地儲存貯體時才需要。這可以是主控台管理的儲存貯體或您指定的儲存貯體名稱。重複使用現有的儲存貯體不需要此許可。

s3:ListBucket

儲存至您指定的現有儲存貯體時為必要。範本 Studio 會使用 HeadBucket 驗證存取權、預期的儲存貯體擁有者和儲存貯體, AWS 區域 再上傳。

對於主控台受管儲存貯體,此許可是選用的。如果沒有儲存對話方塊,儲存對話方塊仍會顯示儲存貯體名稱。如果必須建立儲存貯體,則儲存需要 s3:PutObject和 s3:CreateBucket。

開啟範本工作室

您從 開啟範本 Studio 的位置會決定開啟內容,以及儲存後會發生的情況。

啟動新範本
  1. 開啟 CloudFormation 主控台。

  2. 在畫面頂端的導覽列上,選擇 AWS 區域 您要部署的 。

  3. 在導覽窗格中,選擇範本工作室。

在建立堆疊時建置範本
  1. 在建立堆疊頁面上,選擇使用範本工作室建置。

  2. 建置範本,然後選擇儲存並繼續。

  3. 堆疊精靈會繼續執行您儲存的範本,因此您不需要另外上傳。

編輯現有堆疊的範本
  1. 在堆疊頁面上,選擇堆疊的名稱。

  2. 您可以直接更新堆疊或建立變更集。

  3. 在準備範本頁面上,選擇在範本工作室中開啟。堆疊目前的範本隨即開啟。

  4. 選擇儲存並繼續返回已編輯範本的更新或變更集。

在主控台的其他地方,只要顯示範本,您可以選擇在範本工作室中開啟以進行操作。

使用範本和圖表

範本工作室會開啟,並並排顯示範本和圖表。使用檢視控制項來選擇畫面上的內容:

Template (範本)

僅範本的全寬度。使用此項目來讀取或寫入不含圖表的範本。

畫布

僅限完整寬度的圖表。將此用於大型範本,其中圖表需要完整寬度。

兩者

範本和圖表一起。將分隔線拖曳到它們之間,讓任一端有更多空間。

當一個資源透過 Ref、Fn::Sub、 或 參考另一個資源時Fn::GetAtt,圖表會分組相關資源並繪製連線DependsOn。資源本身不會顯示任何參考,這可讓意外中斷連線的資源更容易發現。

注意

例如,三個函數可以擔任相同的 IAM 角色。圖表顯示每個函數內的角色,但範本只會宣告一個角色。檢查範本以查看有多少資源存在。

在 YAML 和 JSON 之間轉換

您在 中儲存的格式會決定範本 Studio 寫入 Amazon S3 之物件的檔案名稱和內容類型。

若要轉換您正在編輯的範本
  1. 選擇格式控制項,其會命名您目前使用的格式。

  2. 選擇其他格式。

  3. 從 YAML 轉換為 JSON 會要求您確認,因為評論無法結轉。選擇轉換以繼續。

重要

JSON 沒有註解的語法。當您將包含註解的 YAML 範本轉換為 JSON 時,會移除這些註解,而轉換回 YAML 不會還原這些註解。在轉換之前,複製您要保留的任何內容。

無法讀取範本時,無法使用格式控制,因為沒有足夠完整的內容可轉換。請先修正範本。

輸入時的語法問題

編輯器會在您撰寫範本時檢查範本的語法,並強調它無法讀取的內容:未封閉的括號、錯位的縮排、重複的索引鍵。將滑鼠游標移至底線以查看問題。其中一行有幾個問題,它們會編號,因此您可以區分它們。

這是範本語法的檢查,而不是其內容的檢查。編輯器不知道存在哪些資源類型或其採用的屬性,因此格式良好的 YAML 範本仍然可能錯誤,只有 CloudFormation 可以告訴您。為此選擇驗證。

驗證範本

驗證會使用編輯器檢查範本的語法,並在堆疊操作中使用範本之前,使用 CloudFormation 檢查範本。這兩個檢查都使用目前的草稿,包括您尚未儲存的變更。成功的 CloudFormation 檢查不會覆寫編輯器報告的語法錯誤。

注意

範本工作室使用 TemplateBody 參數將草稿傳送至 ValidateTemplate API。此參數有 51,200 位元組 (50 KiB) 的限制。

對於超過此限制的草稿,範本工作室不會傳送 CloudFormation 請求。CloudFormation 檢查無法使用,但這不表示範本無效。編輯器仍然可以報告語法錯誤。

相同的 API 透過 支援高達 1 MB 的範本TemplateURL。範本 Studio 不會上傳編輯的草稿以進行 URL 型驗證。您可以根據 CloudFormation 配額,將範本儲存至 Amazon S3,並透過堆疊操作進行驗證。

驗證您正在編輯的範本
  1. 選擇驗證。

  2. 通過兩個檢查的範本會報告為有效。

  3. 如果任一檢查發現錯誤,請在驗證訊息中檢閱錯誤。編輯器錯誤包括行號和欄號。更正編輯器中的錯誤,然後再次驗證。

將範本儲存至 Amazon S3

CloudFormation 會從 Amazon S3 讀取堆疊操作的範本,因此儲存是讓範本可供其他主控台使用的原因。

對存放在 Secrets Manager 中的秘密或 Systems Manager 參數存放區中的安全字串使用動態參考,而不是在儲存的範本中包含純文字秘密。如需詳細資訊,請參閱使用動態參考取得存放在其他服務中的值。

若要儲存您正在編輯的範本
  1. 選擇儲存並繼續。

  2. 檢查目的地。根據預設,範本會移至 CloudFormation 針對目前上傳範本所管理的 Amazon S3 儲存貯體 AWS 區域。如果該儲存貯體尚不存在,CloudFormation 會在您儲存時建立該儲存貯體,並針對稍後儲存的範本重複使用該儲存貯體。

    1. 若要改為選擇您自己的目的地,請選擇使用不同的儲存貯體,然後輸入儲存貯體名稱。如果儲存貯體尚未存在,則會建立儲存貯體。

  3. 選擇確認並繼續。

注意

存放在 Amazon S3 中的範本會以標準 Amazon S3 費率計費,以儲存貯體存放它們為準。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價。

儲存不需要成功的驗證結果。驗證發現錯誤時,範本工作室會要求您確認是否仍要儲存。儲存無法修正這些錯誤;在堆疊操作中使用範本之前,請檢閱並更正錯誤。

複製或下載範本或圖表

選擇範本動作以從主控台取得範本或圖表:

複製範本

複製在編輯器中顯示的範本到您的剪貼簿。

下載範本

以您目前編輯的格式,將範本儲存為檔案。

下載資源圖表

將圖表儲存為 PNG 影像。因為影像是圖表的擷取,所以只有當圖表在畫面上時,才能使用此功能。