建立 CloudFormation 堆疊的變更集 - AWS CloudFormation

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

建立 CloudFormation 堆疊的變更集

若要為執行中的堆疊建立變更集,請提供修改過的範本、新的輸入參數值或兩者來提交您要進行的變更。 會比較堆疊與您提交的變更來 CloudFormation 產生變更集。

您可以在建立變更集之前或在建立變更集期間修改範本。

Create a change set (console)
建立變更集
  1. https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

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

  3. 堆疊頁面上,選擇您要為其建立變更集的執行中堆疊。

  4. 在 stack details (堆疊詳細資訊) 窗格中,選擇 Stack actions (堆疊動作),然後選擇 Create change set for current stack (建立目前堆疊的變更集)

  5. 建立 頁面的變更集stack-name上,執行下列其中一項操作來修改輸入參數值、指定更新範本的位置,或修改範本:

    任務 動作
    修改輸入參數值 選擇使用現有範本,然後選擇下一步以繼續輸入或修改輸入參數值。
    指定更新的範本位置

    如果您已修改範本,請選擇取代現有範本,然後執行下列其中一項操作:

    • 對於存放在 Amazon S3 儲存貯體中的範本,選擇 Amazon S3 URL。輸入或貼上範本URL的 ,然後選擇下一步

      如果您在已啟用版本控制的儲存貯體中有範本,您可以透過附加?versionId=version-id至 來指定範本的特定版本URL。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用已啟用版本控制之儲存貯體中的物件

    • 針對存放在本機電腦上的範本,選擇 Upload a template file (上傳範本檔案)。選擇 Choose File (選擇檔案) 導覽至該檔案並選取它,然後選擇 Next (下一步)

    修改範本 如果您尚未修改範本,請選擇 Infrastructure Composer 中的編輯範本,然後選擇 Infrastructure Composer 中的編輯。您會重新導向到 AWS Infrastructure Composer。修改範本後,請選擇建立變更集,然後選擇確認並繼續 CloudFormation返回建立變更集以進行stack-name頁面,然後選擇下一步
  6. 指定堆疊詳細資訊頁面上,指定變更集的名稱,並選擇性地指定變更集的描述,以在概觀區段中識別其目的。如果您的範本包含參數,請在 Specify stack details (指定堆疊詳細資訊) 頁面上,輸入或修改合適的輸入參數值,然後選擇 Next (下一步)

    如果您重複使用堆疊的範本, 會將堆疊中的目前值 CloudFormation 填入每個參數,但使用 NoEcho 屬性宣告的參數除外。選取 Use existing value (使用現有的值),即可使用現有的參數值。

    如需使用 NoEcho 遮蔽敏感資訊,以及使用動態參數管理秘密的詳細資訊,請參閱請勿在您的範本中內嵌憑證最佳實務。

  7. 設定堆疊選項頁面上,更新堆疊的標籤、IAM服務角色、堆疊政策、回復組態、Amazon SNS通知主題 (如適用) 或變更集。

    注意

    巢狀堆疊的變更集預設為 Enabled (啟用),這將會為範本中指定的所有巢狀堆疊建立變更集。若要僅為目前堆疊建立變更集,請選擇 Disabled (停用)。如需巢狀堆疊變更集的詳細資訊,請參閱巢狀堆疊變更集

  8. 如果範本包含IAM資源,對於功能,請選擇我確認 CloudFormation 可能會建立IAM資源。 IAM 資源可以修改您 AWS 帳戶中的許可;檢閱這些資源,以確保您只允許您打算執行的動作。如需詳細資訊,請參閱認可 CloudFormation 範本中的 IAM 資源

  9. 選擇 Next (下一步) 繼續。

  10. 檢閱stack-name頁面上,檢閱此變更集的變更。

  11. 選擇提交

    您會被重新導向到變更集詳細資訊頁面的 Changes (變更) 標籤。當 CloudFormation 產生變更集時,變更集的狀態為 CREATE_PENDING。建立變更集之後, CloudFormation 會將狀態設定為 CREATE_COMPLETE。在變更區段中, CloudFormation 列出它將對堆疊進行的所有變更。如需詳細資訊,請參閱檢視 CloudFormation 堆疊的變更集

    選擇屬性層級變更欄中的檢視詳細資訊,以檢視在屬性層級所做的變更。

    如果 CloudFormation 無法建立變更集 (報告FAILED狀態),請修正狀態欄位中顯示的錯誤,然後重新建立變更集。

  12. 在確認變更看起來正確之後,選擇執行變更集

Create a change set for nested stacks (console)
為巢狀堆疊建立變更集
  1. https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

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

  3. 堆疊頁面上,選取您要為其建立變更集的執行中堆疊。

  4. 在 stack details (堆疊詳細資訊) 窗格中,選擇 Stack actions (堆疊動作),然後選擇 Create change set for current stack (建立目前堆疊的變更集)

  5. 建立 頁面的變更集stack-name上,執行下列其中一項操作來修改輸入參數值、指定更新範本的位置,或修改範本:

    任務 動作
    修改輸入參數值 選擇使用現有範本,然後選擇下一步以繼續輸入或修改輸入參數值。
    指定更新的範本位置

    如果您已修改範本,請選擇取代現有範本,然後執行下列其中一項操作:

    • 對於存放在 Amazon S3 儲存貯體中的範本,選擇 Amazon S3 URL。輸入或貼上範本URL的 ,然後選擇下一步

      如果您在已啟用版本控制的儲存貯體中有範本,您可以透過附加?versionId=version-id至 來指定範本的特定版本URL。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用已啟用版本控制之儲存貯體中的物件

    • 針對存放在本機電腦上的範本,選擇 Upload a template file (上傳範本檔案)。選擇 Choose File (選擇檔案) 導覽至該檔案並選取它,然後選擇 Next (下一步)

    修改範本 如果您尚未修改範本,請選擇 Infrastructure Composer 中的編輯範本,然後選擇 Infrastructure Composer 中的編輯。您會重新導向到 AWS Infrastructure Composer。修改範本後,請選擇建立變更集,然後選擇確認並繼續 CloudFormation返回建立變更集以進行stack-name頁面,然後選擇下一步
  6. 指定堆疊詳細資訊頁面上,指定變更集的名稱,並選擇性地指定變更集的描述,以在概觀區段中識別其目的。如果您的範本包含參數,請在 Specify stack details (指定堆疊詳細資訊) 頁面上,輸入或修改合適的輸入參數值,然後選擇 Next (下一步)

    如果您重複使用堆疊的範本, 會將堆疊中的目前值 CloudFormation 填入每個參數,但使用 NoEcho 屬性宣告的參數除外。選取 Use existing value (使用現有的值),即可使用現有的參數值。

    如需使用 NoEcho 遮蔽敏感資訊,以及使用動態參數管理秘密的詳細資訊,請參閱請勿在您的範本中內嵌憑證最佳實務。

  7. 設定堆疊選項頁面上,更新堆疊的標籤、IAM服務角色、堆疊政策、回復組態、Amazon SNS通知主題 (如適用) 或變更集。

    注意

    巢狀堆疊的變更集預設為 Enabled (啟用),這將會為範本中指定的所有巢狀堆疊建立變更集。如需巢狀堆疊變更集的詳細資訊,請參閱 巢狀堆疊變更集

  8. 如果範本包含IAM資源,對於功能,請選擇我確認 CloudFormation 可能會建立IAM資源。 IAM 資源可以修改您 AWS 帳戶中的許可;檢閱這些資源,以確保您只允許您打算執行的動作。如需詳細資訊,請參閱認可 CloudFormation 範本中的 IAM 資源

  9. 選擇 Next (下一步) 繼續。

  10. 檢閱stack-name頁面上,檢閱此變更集的變更。

  11. 選擇提交

    注意

    CloudFormation 當您為巢狀堆疊建立變更集時, 屬性層級變更集不會解析跨堆疊參考。如果變更集參考父堆疊的輸出,且父堆疊已修改,則變更集可以標記子堆疊中的資源以進行條件式取代

    您會被重新導向到變更集詳細資訊頁面的 Changes (變更) 標籤。當 CloudFormation 產生變更集時,變更集的狀態為 CREATE_PENDING。建立變更集之後, CloudFormation 會將狀態設定為 CREATE_COMPLETE。在變更區段中, CloudFormation 列出它將對堆疊進行的所有變更。如需詳細資訊,請參閱檢視 CloudFormation 堆疊的變更集

    如果 CloudFormation 無法建立變更集 (報告FAILED狀態),請修正狀態欄位中顯示的錯誤,然後重新建立變更集。

  12. 確認變更看起來正確後,選擇執行變更集

建立變更集 (AWS CLI)
  • 執行 create-change-set 命令。

    您能夠以命令選項的形式來提交變更,亦能指定新的參數值、修改後的範本,或同時指定兩者。例如,以下命令將為 SampleChangeSet 堆疊建立 SampleStack 變更集。該變更集會使用目前的堆疊範本,但 Purpose 參數將具備不同值:

    aws cloudformation create-change-set \ --stack-name arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000 \ --change-set-name SampleChangeSet --use-previous-template \ --parameters \ ParameterKey="InstanceType",UsePreviousValue=true ParameterKey="KeyPairName",UsePreviousValue=true ParameterKey="Purpose",ParameterValue="production"