DeletionPolicy 屬性 - AWS CloudFormation

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

DeletionPolicy 屬性

使用 DeletionPolicy 屬性,您可以在刪除資源的堆疊時保留並在某些情況下備份資源。您需要為要控制的每個資源指定 DeletionPolicy 屬性。如果資源沒有DeletionPolicy屬性,則依預設 AWS CloudFormation 會刪除資源。

此功能也適用於導致資源從堆疊中刪除的堆疊更新操作。例如,如果您從堆疊範本中移除資源,則會使用範本更新堆疊。此功能不適用於其實體執行個體在堆疊更新操作期間遭到取代的資源。例如,如果您編輯資源的屬性,以便在堆疊更新期間 CloudFormation 取代該資源。

注意

例外狀況AWS::RDS::DBCluster 資源以及未指定 DBClusterIdentifier 屬性之 AWS::RDS::DBInstance 資源的預設政策是 Snapshot

若要在刪除資源的堆疊時保留資源,請針對該資源指定 Retain。您可以針對任何資源使用 Retain。例如,您可以保留巢狀堆疊、Amazon S3 儲存貯體或 EC2 執行個體,讓您可以在刪除這些資源的堆疊之後繼續使用或修改這些資源。

注意

如果您想要修改以外的資源 CloudFormation,請使用Retain刪除原則,然後刪除堆疊。否則,您的資源可能會與 CloudFormation 範本不同步,並導致堆疊錯誤。

對於支援快照的資源,例如AWS::EC2::Volume,指Snapshot定在刪除資源之前先 CloudFormation 建立快照。

下列程式碼片段包含具有 Retain 刪除政策的 Amazon S3 儲存貯體資源。刪除此堆疊時,會 CloudFormation 離開值區而不刪除它。

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myS3Bucket" : { "Type" : "AWS::S3::Bucket", "DeletionPolicy" : "Retain" } } }

YAML

AWSTemplateFormatVersion: '2010-09-09' Resources: myS3Bucket: Type: AWS::S3::Bucket DeletionPolicy: Retain

DeletionPolicy 選項

Delete

CloudFormation 刪除堆疊期間會刪除資源及其所有內容 (如果適用)。您可以將此刪除政策新增至任何資源類型。依預設,如果您未指定DeletionPolicy,則 CloudFormation 會刪除您的資源。不過,請注意下列考量:

  • 針對 AWS::RDS::DBCluster 資源,預設政策是 Snapshot

  • 針對未指定 AWS::RDS::DBInstance 屬性的 DBClusterIdentifier 資源,預設政策是 Snapshot

  • 針對 Amazon S3 儲存貯體,您必須刪除儲存貯體中的所有物件,刪除才會成功。

注意

的預設行為 CloudFormation 是使用 ForceDeleteWithoutRecovery 旗標刪除密碼。

Retain

CloudFormation 在刪除堆棧時保留資源而不刪除資源或其內容。您可以將此刪除政策新增至任何資源類型。堆疊刪除 CloudFormation 完成後,堆疊會處於Delete_Complete狀態;不過,保留的資源會繼續存在,並繼續產生適用的費用,直到您刪除這些資源為止。

針對更新操作,適用下列考量:

  • 如果刪除資源,則DeletionPolicy會保留實體資源,但確保已從範圍中 CloudFormation刪除該資源。

  • 如果更新資源以建立新的實體資源來取代舊資源,則會完全刪除舊資源,包括從 CloudFormation的範圍在內。

RetainExceptOnCreate

RetainExceptOnCreate 的行為與堆疊操作的 Retain 一樣 (最初建立資源的堆疊操作除外)。如果回滾創建資源的堆棧操作,則 CloudFormation 刪除該資源。對於所有其他堆疊作業 (例如堆疊刪除), CloudFormation會保留資源及其內容。其結果是,會刪除新的、空的以及未使用的資源,而會保留使用中的資源及其資料。請參閱 UpdateStackAPI 文件,在不更新範本的情況下使用此刪除政策做為 API 參數。

Snapshot

對於支援快照的資源,請先為資源 CloudFormation 建立快照,然後再刪除快照。 CloudFormation 完成堆疊刪除後,堆疊會處於Delete_Complete狀態;不過,使用此原則建立的快照會繼續存在,並繼續產生適用的費用,直到您刪除這些快照為止。

支援快照的資源包括: