

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

# CloudFormation 範本的堆疊 \| 建立
<a name="deployment-ingestion-stack-from-cloudformation-template-create"></a>

指向 S3 儲存貯體中的自訂 CloudFormation (CFN) 範本，或貼上該範本的內容做為此變更類型的輸入，以建立堆疊。

**完整分類：**部署 \| 擷取 \| CloudFormation 範本的堆疊 \| 建立

## 變更類型詳細資訊
<a name="ct-36cn2avfrrj9v-DISc-table"></a>


****  

|  |  | 
| --- |--- |
| 變更類型 ID | ct-36cn2avfrrj9v | 
| 目前版本 | 2.0 | 
| 預期的執行持續時間 | 360 分鐘 | 
| AWS 核准 | 必要 | 
| 客戶核准 | 非必要 | 
| 執行模式 | 自動化 | 

## 其他資訊
<a name="deployment-ingestion-stack-from-cloudformation-template-create-info"></a>

### 建立 CloudFormation 擷取堆疊
<a name="ex-cfn-ingest-create-col"></a>

#### 使用主控台建立 CloudFormation 擷取堆疊
<a name="cfn-ingest-create-con"></a>

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


**使用主控台建立 CloudFormation 擷取堆疊**

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 建立 CloudFormation 擷取堆疊
<a name="cfn-ingest-create-cli"></a>

**使用 CLI 建立 CloudFormation 擷取堆疊**

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

1. 準備用於建立堆疊的 CloudFormation 範本，並將其上傳至 S3 儲存貯體。如需重要詳細資訊，請參閱 [AWS CloudFormation 擷取準則、最佳實務和限制](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)。

1. 建立 RFC 並將其提交至 AMS：

   1. 建立並儲存執行參數 JSON 檔案，包括您想要的 CloudFormation 範本參數。下列範例會將其命名為 CreateCfnParams.json.

     範例 Web 應用程式堆疊 CreateCfnParams.json 檔案：

     ```
     {
       "Name": "{{cfn-ingest}}",
       "Description": "{{CFNIngest Web Application Stack}}",
       "VpcId": "{{VPC_ID}}",
       "CloudFormationTemplateS3Endpoint": "{{$S3_URL}}",
       "TimeoutInMinutes": 120,
       "Tags": [
        {
         "Key":   "{{Enviroment Type}}"
         "Value": "{{Dev}}",
        },
        {
         "Key":   "{{Application}}"
         "Value": "{{PCS}}",
        }
       ],
       "Parameters": [
        {
         "Name": "{{Parameter-for-S3Bucket-Name}}",
         "Value":  "{{BUCKET-NAME}}"
        },
        {
         "Name": "{{Parameter-for-Image-Id}}",
         "Value":  "{{AMI-ID}}"
        }
       ],
     }
     ```

     範例 SNS 主題 CreateCfnParams.json 檔案：

     ```
     {
       "Name": "cfn-ingest",
       "Description": "{{CFNIngest Web Application Stack}}",
       "CloudFormationTemplateS3Endpoint": "{{$S3_URL}}",
       "Tags": [
         {"Key": "{{Enviroment Type}}", "Value": "{{Dev}}"}
       ],
       "Parameters": [
         {"Name": "{{TopicName}}", "Value": "{{MyTopic1}}"}
       ]
     }
     ```

1. 使用下列內容建立並儲存 RFC 參數 JSON 檔案。下列範例會將其命名為 CreateCfnRfc.json 檔案：

   ```
   {
      "ChangeTypeId": "ct-36cn2avfrrj9v",
      "ChangeTypeVersion": "2.0",
      "Title": "{{cfn-ingest}}"
   }
   ```

1. 建立 RFC，指定 CreateCfnRfc 檔案和 CreateCfnParams 檔案：

   ```
   aws amscm create-rfc --cli-input-json file://CreateCfnRfc.json  --execution-parameters file://CreateCfnParams.json
   ```

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

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

**注意**  
此變更類型位於 2.0 版，且為自動化 （非手動執行）。這可讓 CT 執行更快進行，而新的參數 **CloudFormationTemplate** 可讓您將自訂 CloudFormation 範本貼入 RFC。此外，在此版本中，如果您指定自己的安全群組，我們不會連接預設 AMS 安全群組。如果您未在請求中指定自己的安全群組，AMS 會連接 AMS 預設安全群組。在 CFN Ingest v1.0 中，無論您是否提供自己的安全群組，我們一律會附加 AMS 預設安全群組。  
AMS 已啟用 17 個 AMS 自我佈建服務，可用於此變更類型。如需支援資源的資訊，請參閱 [ CloudFormation 擷取堆疊：支援的資源](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-ingest-supp-services.html)。

**注意**  
2.0 版接受不是預先簽章 URL 的 S3 端點。  
如果您使用此舊版 CT，**CloudFormationTemplateS3Endpoint** 參數值必須是預先簽章的 URL。  
產生預先簽章 S3 儲存貯體 URL (Mac/Linux) 的範例命令：  

```
export S3_PRESIGNED_URL=$(aws s3 presign DASHDASHexpires-in 86400 s3://{{BUCKET_NAME}}/{{CFN_TEMPLATE}}.json)
```
產生預先簽章 S3 儲存貯體 URL (Windows) 的範例命令：  

```
for /f %i in ('aws s3 presign DASHDASHexpires-in 86400 s3://{{BUCKET_NAME}}/{{CFN_TEMPLATE}}.json') do set S3_PRESIGNED_URL=%i
```
另請參閱[為 Amazon S3 儲存貯體建立預先簽章的 URLs](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-presigned-urls.html)。

**注意**  
如果 S3 儲存貯體存在於 AMS 帳戶中，您必須使用此命令的 AMS 登入資料。例如，您可能需要在取得 AMS AWS Security Token Service (AWS STS) 登入資料`--profile saml`後附加 。

相關變更類型：[核准 CloudFormation 擷取堆疊變更集](management-custom-stack-from-cloudformation-template-approve-changeset-and-update.md#ex-cfn-ingest-approve-and-update-col)、 [更新 CloudFormation 擷取堆疊](management-custom-stack-from-cloudformation-template-update.md#ex-cfn-ingest-update-col)

若要進一步了解 AWS CloudFormation，請參閱 [AWS Cloud Formation](https://aws.amazon.com/cloudformation/)。若要查看 CloudFormation 範本，請開啟 AWS CloudFormation [範本參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html)。

#### 驗證 CloudFormation 擷取
<a name="cfn-ingest-validation"></a>

範本經過驗證，以確保可以在 AMS 帳戶中建立。如果通過驗證，則會更新為包含符合 AMS 所需的任何資源或組態。這包括新增 資源，例如 Amazon CloudWatch 警示，以允許 AMS Operations 監控堆疊。

如果以下任何一項成立，RFC 會遭到拒絕：
+ RFC JSON 語法不正確或不遵循指定的格式。
+ 提供的 S3 儲存貯體預先簽章 URL 無效。
+ 範本不是有效的 CloudFormation 語法。
+ 範本未針對所有參數值設定預設值。
+ 範本未通過 AMS 驗證。如需 AMS 驗證步驟，請參閱本主題稍後的資訊。

如果 CloudFormation 堆疊因為資源建立問題而無法建立，RFC 會失敗。

若要進一步了解 CFN 驗證和驗證程式，請參閱[範本驗證](https://docs.aws.amazon.com/managedservices/latest/appguide/cfn-author-templates.html)和 [CloudFormation 擷取堆疊：CFN 驗證程式範例](https://docs.aws.amazon.com/managedservices/latest/appguide/ex-cfn-ingest-validator.html)。

## 執行輸入參數
<a name="deployment-ingestion-stack-from-cloudformation-template-create-input"></a>

如需執行輸入參數的詳細資訊，請參閱 [變更類型的結構描述 ct-36cn2avfrrj9v](schemas.md#ct-36cn2avfrrj9v-schema-section)。

## 範例：必要參數
<a name="deployment-ingestion-stack-from-cloudformation-template-create-ex-min"></a>

```
Example not available.
```

## 範例：所有參數
<a name="deployment-ingestion-stack-from-cloudformation-template-create-ex-max"></a>

```
Example not available.
```