É possível usar funções intrínsecas para definir atributos DeletionPolicy
e UpdateReplacePolicy
dinamicamente com base em parâmetros, condições ou outra lógica dentro do seu modelo do CloudFormation. Esse recurso permite estratégias de gerenciamento de recursos mais flexíveis e conscientes do ambiente.
Para obter mais informações sobre os atributos DeletionPolicy
e UpdateReplacePolicy
, consulte Atributo DeletionPolicy e Atributo UpdateReplacePolicy.
nota
A função intrínseca usada deve ser resolvida como Opções de DeletionPolicy ou Opções de UpdateReplacePolicy válidas.
Declaração
JSON
{ "DeletionPolicy": IntrinsicFunction
}
{ "UpdateReplacePolicy": IntrinsicFunction
}
YAML
DeletionPolicy: IntrinsicFunction
UpdateReplacePolicy: IntrinsicFunction
Parâmetros
IntrinsicFunction
-
A função intrínseca que é resolvida como uma opção
DeletionPolicy
ouUpdateReplacePolicy
válida.
Exemplos
Use Ref
para definir políticas com base em parâmetros
O exemplo a seguir define os atributos Atributo DeletionPolicy e Atributo UpdateReplacePolicy com base no valor resolvido pela função intrínseca Ref. Se os parâmetros DeletionPolicyParam
e UpdateReplacePolicyParam
forem ambos definidos como Retain
, os atributos DeletionPolicy
e UpdateReplacePolicy
também serão definidos como 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
Use Fn::If
para definir políticas com base em uma condição
Os exemplos a seguir definem os atributos DeletionPolicy
e UpdateReplacePolicy
com base na condição definida na função intrínseca Fn::If. Se o parâmetro Stage
for Prod
, os atributos DeletionPolicy
e UpdateReplacePolicy
serão definidos como 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
Funções compatíveis
Nos atributos DeletionPolicy
ou UpdateReplacePolicy
, você pode usar as seguintes funções:
Também é possível usar os seguintes pseudoparâmetros:
-
AWS::AccountId
-
AWS::Partition
-
AWS::Region
Para ter mais informações, consulte Referência de pseudoparâmetros.