Puede usar las funciones intrínsecas para definir los atributos DeletionPolicy
y UpdateReplacePolicy
de forma dinámica en función de los parámetros, las condiciones u otra lógica dentro de la plantilla de CloudFormation. Esta característica permite aplicar estrategias de administración de recursos más flexibles y que tienen en cuenta el entorno.
Para obtener más información sobre los atributos DeletionPolicy
y UpdateReplacePolicy
, consulte Atributo DeletionPolicy y Atributo UpdateReplacePolicy.
nota
Las funciones intrínsecas que use deben resolverse como Opciones de DeletionPolicy o Opciones de UpdateReplacePolicy válidos.
Declaración
JSON
{ "DeletionPolicy": IntrinsicFunction
}
{ "UpdateReplacePolicy": IntrinsicFunction
}
YAML
DeletionPolicy: IntrinsicFunction
UpdateReplacePolicy: IntrinsicFunction
Parámetros
IntrinsicFunction
-
La función intrínseca que se resuelve en una opción
DeletionPolicy
oUpdateReplacePolicy
válida.
Ejemplos
Uso de Ref
para establecer políticas basadas en parámetros
En el ejemplo siguiente, se establecen los atributos Atributo DeletionPolicy y Atributo UpdateReplacePolicy en función del valor que resolvió la función Ref intrínseca. Si los parámetros DeletionPolicyParam
y UpdateReplacePolicyParam
están configurados en Retain
, los atributos DeletionPolicy
y UpdateReplacePolicy
también se establecen en 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
Uso de Fn::If
para establecer políticas basadas en una condición
En los ejemplos siguientes, se establecen los atributos DeletionPolicy
y UpdateReplacePolicy
en función de una condición definida en la función intrínseca Fn::If. Si el parámetro Stage
es Prod
, los atributos DeletionPolicy
y UpdateReplacePolicy
se establecerán en 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
Funciones compatibles
En los atributos DeletionPolicy
o UpdateReplacePolicy
, se pueden usar las siguientes funciones:
Asimismo, puede utilizar los siguientes pseudoparámetros:
-
AWS::AccountId
-
AWS::Partition
-
AWS::Region
Para obtener más información, consulte Referencia de pseudoparámetros.