

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

# 建立 RFC
<a name="ex-rfc-create-col"></a>

## 使用主控台建立 RFC
<a name="ex-rfc-create-con"></a>

以下是 AMS 主控台中 RFC 建立程序的第一頁，其中開啟**快速卡**並啟用**瀏覽變更類型**：

![](http://docs.aws.amazon.com/zh_tw/managedservices/latest/userguide/images/quickCreate1.png)


以下是 AMS 主控台中 RFC 建立程序的第一頁，並啟用**依類別選取**：

![](http://docs.aws.amazon.com/zh_tw/managedservices/latest/userguide/images/guiRfcCreate1-2.png)


運作方式：

1. 導覽至**建立 RFC** 頁面：在 AMS 主控台的左側導覽窗格中，按一下 **RFCs**以開啟 RFCs清單頁面，然後按一下**建立 RFC**。

1. 在預設**瀏覽變更類型檢視中選擇熱門的變更類型** (CT)，或在**依類別選擇**檢視中選擇 CT。
   + **依變更類型瀏覽**：您可以在**快速建立**區域中按一下熱門的 CT，以立即開啟**執行 RFC** 頁面。請注意，您無法透過快速建立選擇較舊的 CT 版本。

     若要排序 CTs，請使用**卡片**或**資料表**檢視中的所有**變更類型**區域。在任一檢視中，選取 CT，然後按一下**建立 RFC** 以開啟**執行 RFC** 頁面。如果適用，**建立較舊版本**選項會顯示在**建立 RFC** 按鈕旁。
   + **依類別選擇**：選取類別、子類別、項目和操作，如果適用，CT 詳細資訊方塊會開啟，其中包含**使用較舊版本建立**的選項。按一下**建立 RFC** 以開啟**執行 RFC** 頁面。

1. 在**執行 RFC** 頁面上，開啟 CT 名稱區域以查看 CT 詳細資訊方塊。需要**主旨** （如果您在**瀏覽變更類型**檢視中選擇 CT，則會為您填入）。開啟**其他組態**區域以新增 RFC 的相關資訊。

   在**執行組態**區域中，使用可用的下拉式清單或輸入必要參數的值。若要設定選用的執行參數，請開啟**其他組態**區域。

1. 完成後，請按一下**執行**。如果沒有錯誤，**RFC 成功建立**的頁面會顯示已提交的 RFC 詳細資訊，以及初始的**執行輸出**。

1. 開啟**執行參數**區域以查看您提交的組態。重新整理頁面以更新 RFC 執行狀態。或者，取消 RFC 或使用頁面頂端的選項建立 RFC 的副本。

## 使用 CLI 建立 RFC
<a name="ex-rfc-create-cli"></a>

運作方式：

1. 使用內嵌建立 （您發出包含所有 RFC 和執行參數的`create-rfc`命令） 或範本建立 （您建立兩個 JSON 檔案，一個用於 RFC 參數，另一個用於執行參數），並使用兩個檔案作為輸入發出`create-rfc`命令。此處說明這兩種方法。

1. 使用傳回的 RFC ID 提交 RFC： `aws amscm submit-rfc --rfc-id {{ID}}`命令。

   監控 RFC： `aws amscm get-rfc --rfc-id {{ID}}`命令。

若要檢查變更類型版本，請使用下列命令：

```
aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value={{CT_ID}}
```
**注意**  
您可以將任何`CreateRfc`參數與任何 RFC 搭配使用，無論它們是否為變更類型結構描述的一部分。例如，若要在 RFC 狀態變更時取得通知，請將此行新增至請求的 `--notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}"` RFC 參數部分 （而非執行參數）。如需所有 CreateRfc 參數的清單，請參閱 [AMS 變更管理 API 參考](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_CreateRfc.html)。

*內嵌建立*：

使用內嵌提供的執行參數發出建立 RFC 命令 （在內嵌提供執行參數時逸出引號），然後提交傳回的 RFC ID。例如，您可以將內容取代為如下內容：

```
aws amscm create-rfc --change-type-id "{{CT_ID}}" --change-type-version "{{VERSION}}" --title "{{TITLE}}" --execution-parameters "{\"{{Description}}\": \"{{example}}\"}"
```

*範本建立*：
**注意**  
此建立 RFC 的範例使用Load Balancer (ELB) 堆疊變更類型。

1. 尋找相關的 CT。下列命令會搜尋**項目**名稱中包含「ELB」的 CT 分類摘要，並以資料表形式建立類別、項目、操作和 ChangeTypeID 的輸出 （兩者的子類別都是 `Advanced stack components`)。

   ```
   aws amscm list-change-type-classification-summaries --query "ChangeTypeClassificationSummaries[?contains(Item,'ELB')].[Category,Item,Operation,ChangeTypeId]" --output table
   ```

   ```
   ---------------------------------------------------------------------
   |                            CtSummaries                            |
   +-----------+---------------------------+---------------------------+
   | Deployment| Load balancer (ELB) stack | Create | ct-123h45t6uz7jl |
   | Management| Load balancer (ELB) stack | Update | ct-0ltm873rsebx9 |
   +-----------+---------------------------+---------------------------+
   ```

1. 尋找最新版本的 CT：

   `ChangeTypeId` 和 `ChangeTypeVersion`：此演練的變更類型 ID 為 `ct-123h45t6uz7jl`（建立 ELB)，若要了解最新版本，請執行此命令：

   ```
   aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=ct-123h45t6uz7jl
   ```

1. 了解選項和需求。下列命令會將結構描述輸出至名為 CreateElbParams.json.

   ```
   aws amscm get-change-type-version --change-type-id "ct-123h45t6uz7jl" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateElbParams.json
   ```

1. 修改並儲存執行參數 JSON 檔案。此範例會命名檔案 CreateElbParams.json.

   對於佈建 CT，StackTemplateId 包含在結構描述中，並且必須在執行參數中提交。

   對於 TimeoutInMinutes，允許在 RFC 失敗之前建立堆疊的分鐘數，此設定不會延遲 RFC 執行，但您必須提供足夠的時間 （例如，不要指定 "5")。對於具有長時間執行 UserData CTs：建立 EC2 和建立 ASG，有效值為「60」到「360」。對於所有其他佈建 CTs，我們建議使用允許的上限 "60"。

   提供您要建立堆疊的 VPC ID；您可以使用 CLI 命令 取得 VPC ID`aws amsskms list-vpc-summaries`。

   ```
   {
   "Description":      "{{ELB-Create-RFC}}", 
   "VpcId":            "{{VPC_ID}}", 
   "StackTemplateId":  "stm-sdhopv00000000000", 
   "Name":             "{{MyElbInstance}}",
   "TimeoutInMinutes": {{60}},
   "Parameters":   {
       "ELBSubnetIds":                     {{["SUBNET_ID"]}},
       "ELBHealthCheckHealthyThreshold":   {{4}},
       "ELBHealthCheckInterval":           {{5}},
       "ELBHealthCheckTarget":             {{"HTTP:80/"}},
       "ELBHealthCheckTimeout":            {{60}},
       "ELBHealthCheckUnhealthyThreshold": {{5}},
       "ELBScheme":                        {{false}}
       }
   }
   ```

1. 將 RFC JSON 範本輸出到目前資料夾中名為 CreateElbRfc.json:

   ```
   aws amscm create-rfc --generate-cli-skeleton > CreateElbRfc.json
   ```

1. 修改並儲存 CreateElbRfc.json 檔案。由於您在不同的檔案中建立執行參數，請移除該`ExecutionParameters`行。例如，您可以將內容取代為如下內容：

   ```
   {
   "ChangeTypeVersion":    "{{2.0}}",
   "ChangeTypeId":         "ct-123h45t6uz7jl",
   "Title":                "{{Create ELB}}"
   }
   ```

1. 建立 RFC。下列命令會指定執行參數檔案和 RFC 範本檔案：

   ```
   aws amscm create-rfc --cli-input-json file://CreateElbRfc.json --execution-parameters file://CreateElbParams.json
   ```

   您會在回應中收到新 RFC 的 ID，並使用它來提交和監控 RFC。在您提交之前，RFC 會保持在編輯狀態，不會啟動。

## 提示
<a name="ex-rfc-create-tip"></a>

**注意**  
您可以使用 AMS API/CLI 來建立 RFC，而無需建立 RFC JSON 檔案或 CT 執行參數 JSON 檔案。若要這樣做，您可以使用 `create-rfc`命令，並將所需的 RFC 和執行參數新增至命令，這稱為「內嵌建立」。請注意，所有佈建 CTs`execution-parameters`區塊中包含具有資源參數的`Parameters`陣列。參數必須具有以反斜線 (\\) 逸出的引號。  
另一個建立 RFC 的記錄方法稱為「範本建立」。您可以在此處為 RFC 參數建立 JSON 檔案，並為執行參數建立另一個 JSON 檔案，並使用 `create-rfc`命令提交這兩個檔案。這些檔案可以做為範本，並再次用於未來的 RFCs。  
使用 範本建立 RFCs 時，您可以使用 命令，透過發出命令來建立具有所需內容的 JSON 檔案，如下所示。這些命令會使用顯示的內容建立名為 "parameters.json" 的檔案；您也可以使用這些命令來建立 RFC JSON 檔案。