簡體   English   中英

為什么 CloudFormation 在添加資源標簽時替換資源?

[英]Why CloudFormation replace resource during adding resource tags?

如文檔中所述,我認為 CloudFormation 只需更改為添加標簽即可不間斷地更新。

在我的例子中,另一個團隊使用 terraform 添加具有通用標簽的標簽資源,而我的團隊使用 CloudFormation 來更新特定於應用程序的標簽。 這會導致更換...? 此外,這僅發生在有限的資源(例如安全組)中。

有人知道這個問題嗎?

Cloudformation 是一個 Jealous Tool - 換句話說,如果它不能完全控制資源,它將覆蓋更改,假設更改位於它認為必須更新的位置。

為了讓 CloudFormation 堆棧不做不需要的工作,它們生成 ChangeSets - 指示哪些資源需要更新/重建/等等。 如果您不更改模板(或您的 cdk 堆棧)中的任何內容,則 ChangeSet 不會更新該資源,因為無需更改任何內容。 根據資源(並且它因服務而異)有時會在 CloudFormation 控制之外進行更改(通過 Terraform 等其他服務或通過控制台中的手動更改 - 兩者都稱為“漂移”)不會被覆蓋堆棧更新(我能想到的最常見的是 API 網關 - 添加/刪除資源或方法並不總是通過重新部署堆棧來重新完成。

但是,對於標簽之類的東西,是的——它會隨時覆蓋在那里所做的任何更改,並在部署時重新應用標簽——(同樣,取決於服務)即使沒有其他要部署的更改,也經常如此給定的資源。 我懷疑這是因為 AWS 在后端使用標簽來排序和搜索資源的方式。

最好的選擇是選擇一項服務並用它做所有事情。

這兩個工具中的每一個都將覆蓋另一個工具創建的標簽。 您可以將 Terraform 配置為忽略某些標簽但是我不確定您是否可以將 CloudFormation 配置為忽略任何標簽。 我認為 CloudFormation 將始終刪除它不管理的標簽。 通常,同時使用 CloudFormation 和 Terraform 來管理相同的資源不會很好地工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM