

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

# 使用範本工作室以視覺化方式編輯範本
<a name="template-studio"></a>

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

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

## 考量事項
<a name="template-studio-considerations"></a>

當您在範本工作室工作時，請記住下列事項：
+ 您在範本中撰寫 ，而不是在圖表上。圖表顯示範本宣告的資源，以及它們如何互相參照；您無法透過編輯圖表來新增或設定資源。
+ 您的編輯不會自動儲存。範本 Studio 會在您瀏覽未儲存的變更之前要求確認。如果您離開或重新整理頁面，則會捨棄未儲存的變更。儲存到 Amazon S3，或在離開之前複製或下載範本。
+ 將範本從 YAML 轉換為 JSON 會捨棄其註解，因為 JSON 沒有其語法。轉換回 YAML 並不會還原它們。
+ 範本工作室中的 CloudFormation 驗證目前不適用於大於 51，200 位元組 (50 KiB) 的草稿。目前的驗證動作會透過具有此限制的 `TemplateBody` 參數傳送草案。這不是整體範本大小限制。根據 CloudFormation 配額，您仍然可以儲存範本並將其用於堆疊操作。如需詳細資訊，請參閱[驗證範本](#template-studio-validate)。
+ 儲存會將範本寫入帳戶中的儲存貯體，因此您儲存的範本會以標準 Amazon S3 費率計費。如需詳細資訊，請參閱 [Simple Storage Service (Amazon S3) 定價](https://aws.amazon.com/s3/pricing/)。
+ 只有當畫布顯示在 **Canvas** 或**兩者**檢視中時，您才能下載資源圖表。

## 範本工作室所需的許可
<a name="template-studio-permissions"></a>

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

`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`。

## 開啟範本工作室
<a name="template-studio-open"></a>

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

**啟動新範本**

1. 開啟 [CloudFormation 主控台](https://console.aws.amazon.com/cloudformation/)。

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

1. 在導覽窗格中，選擇**範本工作室**。

**在建立堆疊時建置範本**

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

1. 建置範本，然後選擇**儲存並繼續**。

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

**編輯現有堆疊的範本**

1. 在**堆疊**頁面上，選擇堆疊的名稱。

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

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

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

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

## 使用範本和圖表
<a name="template-studio-editor-and-canvas"></a>

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

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

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

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

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

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

## 在 YAML 和 JSON 之間轉換
<a name="template-studio-format"></a>

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

**若要轉換您正在編輯的範本**

1. 選擇格式控制項，其會命名您目前使用的格式。

1. 選擇其他格式。

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

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

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

## 輸入時的語法問題
<a name="template-studio-diagnostics"></a>

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

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

## 驗證範本
<a name="template-studio-validate"></a>

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

**注意**  
範本工作室使用 `TemplateBody` 參數將草稿傳送至 [`ValidateTemplate`](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ValidateTemplate.html) API。此參數有 51，200 位元組 (50 KiB) 的限制。  
對於超過此限制的草稿，範本工作室不會傳送 CloudFormation 請求。CloudFormation 檢查無法使用，但這不表示範本無效。編輯器仍然可以報告語法錯誤。  
相同的 API 透過 支援高達 1 MB 的範本`TemplateURL`。範本 Studio 不會上傳編輯的草稿以進行 URL 型驗證。您可以根據 CloudFormation 配額，將範本儲存至 Amazon S3，並透過堆疊操作進行驗證。

**驗證您正在編輯的範本**

1. 選擇**驗證**。

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

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

## 將範本儲存至 Amazon S3
<a name="template-studio-save"></a>

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

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

**若要儲存您正在編輯的範本**

1. 選擇**儲存並繼續**。

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

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

1. 選擇**確認並繼續**。

**注意**  
存放在 Amazon S3 中的範本會以標準 Amazon S3 費率計費，以儲存貯體存放它們為準。如需詳細資訊，請參閱 [Simple Storage Service (Amazon S3) 定價](https://aws.amazon.com/s3/pricing/)。

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

## 複製或下載範本或圖表
<a name="template-studio-copy-download"></a>

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

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

**下載範本**  
以您目前編輯的格式，將範本儲存為檔案。

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