我的 AWS CloudFormation 堆疊集中的堆疊執行個體在更新期間停留在「擱置中」狀態。
簡短描述
更新堆疊集時,大多數執行個體都會更新以顯示目前狀態。不過,在更新過程中,部分剩餘的執行個體可能會顯示擱置中狀態。
這種行為是由於 CloudFormation 中處理堆疊集失敗的功能所導致。此功能會修改 ListStackInstances API,以顯示堆疊執行個體的詳細狀態而不是狀態。
**注意:**堆疊集作業包括更新堆疊集,和刪除堆疊集中的堆疊執行個體。
當您更新堆疊集而其堆疊集執行個體沒有特定部署目標時,就會出現擱置中狀態。當沒有部署目標時,處於擱置中狀態的執行個體會等待使用最新的堆疊集範本進行更新。
若要解決此問題,請使用 CloudFormation 主控台或 AWS Command Line Interface (AWS CLI) 來更新堆疊集。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
開啟 CloudFormation 主控台
更新堆疊集時,請使用目前的堆疊範本。在 Set deployment options (設定部署選項) 頁面上,輸入用於建立堆疊集之帳戶的 AWS 帳戶 ID,然後選取 AWS 區域。更新堆疊後,執行個體狀態會從過時變更為目前。
使用 AWS CLI
請完成下列步驟:
- 執行以下 list-stack-instances 命令來查看處於擱置中狀態的執行個體:
aws cloudformation list-stack-instances --stack-set-name XXXXXXXXXXXXX
--filters Name=DETAILED_STATUS,Values=PENDING
**注意:**將 stack-set-name 替換為您的堆疊集名稱。
- 執行以下 update-stack-set 命令來更新處於擱置中狀態的堆疊集和關聯執行個體:
aws cloudformation update-stack-set \
--stack-set-name my-stack-set \
--use-previous-template \
--accounts xxxxxx \
--regions xxxxxx \
--administrator-role-arn xxxxxxxxxxxx
**注意:**將 stack-set-name 替換為您的堆疊集名稱,並包含您的帳戶 ID、區域和管理員角色的 ARN。use-previous-template 選項會使用您目前的堆疊範本來更新堆疊集。