

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

# 向下傾斜應用程式部署
<a name="ex-tear-down-app-deploy"></a>

完成教學課程後，您會想要拆解部署，才不會向您收取資源的費用。

以下是一般堆疊刪除操作。您會想要提交兩次，一次用於 HA 2-Tier堆疊，一次用於 S3 儲存貯體堆疊。最後，請提交服務請求，刪除 S3 儲存貯體的所有快照 （包括服務請求中的 S3 儲存貯體堆疊 ID)。它們會在 10 天後自動刪除，但提早刪除會節省一些成本。

本演練提供使用 AMS 主控台刪除 S3 堆疊的範例；此程序適用於使用 AMS 主控台刪除任何堆疊。
**注意**  
如果刪除 S3 儲存貯體，必須先清空物件。

必要資料：
+ `StackId`：要使用的堆疊。您可以查看 AMS 主控台**堆疊**頁面，透過左側導覽中的連結取得。使用 AMS SKMS API/CLI，執行 AMS SKMS API 參考，請參閱 AWS Artifact Console. 操作中的**報告**索引標籤 (`list-stack-summaries` CLI 中的 )。
+ 此演練的變更類型 ID 為 `ct-0q0bic0ywqk6c`，版本為 "1.0"，若要了解最新版本，請執行此命令：

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

*內嵌建立*：
+ 使用內嵌提供的執行參數發出建立 RFC 命令 （在內嵌提供執行參數時逸出引號）。E

  ```
  aws amscm create-rfc --change-type-id "ct-0q0bic0ywqk6c" --change-type-version "1.0" --title "Delete My Stack" --execution-parameters "{\"StackId\":\"{{STACK_ID}}\"}"
  ```
+ 使用建立 RFC 操作中傳回的 RFC ID 提交 RFC。在提交之前，RFC 會保持 `Editing` 狀態，且不會採取任何動作。

  ```
  aws amscm submit-rfc --rfc-id {{RFC_ID}}
  ```
+ 監控 RFC 狀態並檢視執行輸出：

  ```
  aws amscm get-rfc --rfc-id {{RFC_ID}}
  ```

*範本建立*：

1. 將 RFC 範本輸出到目前資料夾中的檔案；範例將其命名為 DeleteStackRfc.json:

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

1. 修改並儲存 DeleteStackRfc.json 檔案。由於刪除堆疊只有一個執行參數，因此執行參數可以位於 DeleteStackRfc.json 檔案本身 （不需要使用執行參數建立單獨的 JSON 檔案）。

   ExecutionParameters JSON 延伸中的內部引號必須以反斜線 (\\) 逸出。沒有開始和結束時間的範例：

   ```
   {
   "ChangeTypeVersion":    "{{1.0}}",
   "ChangeTypeId":         "ct-0q0bic0ywqk6c",
   "Title":                "{{Delete-My-Stack-RFC}}"
   "ExecutionParameters":  "{
           \"StackId\":\"{{STACK_ID}}\"}"
   }
   ```

1. 建立 RFC：

   ```
   aws amscm create-rfc --cli-input-json file://DeleteStackRfc.json 
   ```

   您會在回應中收到新 RFC 的 RfcId。例如：

   ```
   {
   "RfcId": "daaa1867-ffc5-1473-192a-842f6b326102"
   }
   ```

   儲存後續步驟的 ID。

1. 提交 RFC：

   ```
   aws amscm submit-rfc --rfc-id {{RFC_ID}}
   ```

   如果 RFC 成功，您在命令列不會收到確認。

1. 若要監控請求的狀態和檢視執行輸出：

   ```
   aws amscm get-rfc --rfc-id {{RFC_ID}} --query "Rfc.{Status:Status.Name,Exec:ExecutionOutput}" --output table
   ```