DeletionPolicy 和 UpdateReplacePolicy 属性中的内置函数引用 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

DeletionPolicyUpdateReplacePolicy 属性中的内置函数引用

使用内置函数,您可以根据 CloudFormation 模板中的参数、条件或其他逻辑动态定义 DeletionPolicyUpdateReplacePolicy 属性。借助此功能可以实现更灵活、环境感知能力更强的资源管理策略。

有关使用 DeletionPolicyUpdateReplacePolicy 属性的更多信息,请参阅 DeletionPolicy 属性UpdateReplacePolicy 属性

注意

您使用的内置函数必须解析为有效的 DeletionPolicy 选项UpdateReplacePolicy 选项

声明

JSON

{ "DeletionPolicy": IntrinsicFunction }
{ "UpdateReplacePolicy": IntrinsicFunction }

YAML

DeletionPolicy: IntrinsicFunction
UpdateReplacePolicy: IntrinsicFunction

参数

IntrinsicFunction

解析为有效 DeletionPolicyUpdateReplacePolicy 选项的内置函数。

示例

使用 Ref 以根据参数设置策略

以下示例根据 Ref 内部函数解析的值设置 DeletionPolicy 属性UpdateReplacePolicy 属性 属性。如果 DeletionPolicyParamUpdateReplacePolicyParam 参数均设置为 Retain,则 DeletionPolicyUpdateReplacePolicy 属性也设置为 Retain

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "DeletionPolicyParam": { "Type": "String", "AllowedValues": [ "Delete", "Retain", "Snapshot" ], "Default": "Delete" }, "UpdateReplacePolicyParam": { "Type": "String", "AllowedValues": [ "Delete", "Retain", "Snapshot" ], "Default": "Delete" } }, "Resources": { "Table": { "Type": "AWS::DynamoDB::Table", "Properties": { "KeySchema": [ { "AttributeName": "primaryKey", "KeyType": "HASH" }], "AttributeDefinitions": [{ "AttributeName": "primaryKey", "AttributeType": "S" }] }, "DeletionPolicy": { "Ref": "DeletionPolicyParam" }, "UpdateReplacePolicy": { "Ref": "UpdateReplacePolicyParam" } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Parameters: DeletionPolicyParam: Type: String AllowedValues: - Delete - Retain - Snapshot Default: Delete UpdateReplacePolicyParam: Type: String AllowedValues: - Delete - Retain - Snapshot Default: Delete Resources: Table: Type: AWS::DynamoDB::Table Properties: KeySchema: - AttributeName: primaryKey KeyType: HASH AttributeDefinitions: - AttributeName: primaryKey AttributeType: S DeletionPolicy: !Ref DeletionPolicyParam UpdateReplacePolicy: !Ref UpdateReplacePolicyParam

使用 Fn::If 以根据条件设置策略

以下示例将根据 Fn::If 内置函数中定义的条件设置 DeletionPolicyUpdateReplacePolicy 属性。如果 Stage 参数为 Prod,则 DeletionPolicyUpdateReplacePolicy 属性将设置为 Retain

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "Stage": { "Type": "String", "AllowedValues": [ "Prod", "Staging", "Dev" ] } }, "Conditions": { "IsProd": { "Fn::Equals": [ { "Ref": "Stage" }, "Prod" ] } }, "Resources": { "Table": { "Type": "AWS::DynamoDB::Table", "Properties": { "KeySchema": [{ "AttributeName": "primaryKey", "KeyType": "HASH" }], "AttributeDefinitions": [{ "AttributeName": "primaryKey", "AttributeType": "S" }] }, "DeletionPolicy": { "Fn::If": [ "IsProd", "Retain", "Delete" ] }, "UpdateReplacePolicy": { "Fn::If": [ "IsProd", "Retain", "Delete" ] } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Parameters: Stage: Type: String AllowedValues: - Prod - Staging - Dev Conditions: IsProd: !Equals - !Ref Stage - Prod Resources: Table: Type: AWS::DynamoDB::Table Properties: KeySchema: - AttributeName: primaryKey KeyType: HASH AttributeDefinitions: - AttributeName: primaryKey AttributeType: S DeletionPolicy: !If - IsProd - Retain - Delete UpdateReplacePolicy: !If - IsProd - Retain - Delete

支持的函数

DeletionPolicyUpdateReplacePolicy 属性中,您可以使用以下函数:

您还可以使用以下伪参数:

  • AWS::AccountId

  • AWS::Partition

  • AWS::Region

有关更多信息,请参阅 伪参数参考