

Esta es la nueva *Guía de referencia de plantillas de CloudFormation*. Actualice sus marcadores y enlaces. Para obtener ayuda sobre cómo empezar a usar CloudFormation, consulte la [Guía del usuario de AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# `UpdatePolicy`Atributo
<a name="aws-attribute-updatepolicy"></a>

Utilice el atributo `UpdatePolicy` para especificar la manera en que CloudFormation administra las actualizaciones de ciertos recursos durante las operaciones de actualización de pilas. 

**Topics**
+ [Descripción general](#aws-resource-update-policies)
+ [Política de actualización de WorkSpaces Applications](#aws-attribute-update-policy-app-stream-fleet)
+ [Política AutoScalingReplacingUpdate](#cfn-attributes-updatepolicy-replacingupdate)
+ [Política AutoScalingRollingUpdate](#cfn-attributes-updatepolicy-rollingupdate)
+ [Política AutoScalingScheduledAction](#cfn-attributes-updatepolicy-scheduledactions)
+ [Política UseOnlineResharding](#cfn-attributes-updatepolicy-useonlineresharding)
+ [Política EnableVersionUpgrade](#cfn-attributes-updatepolicy-upgradeopensearchdomain)
+ [Política CodeDeployLambdaAliasUpdate](#cfn-attributes-updatepolicy-codedeploylambdaaliasupdate)
+ [Ejemplos](#aws-attribute-updatepolicy-examples)

## Descripción general
<a name="aws-resource-update-policies"></a>

Con el atributo `UpdatePolicy`, puede controlar la manera en que los siguientes recursos se actualizan, tal como se describe a continuación:
+ **[AWS::AppStream::Fleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-appstream-fleet.html)**: CloudFormation puede detener e iniciar una flota, lo que da lugar al remplazo de instancias de la flota. De este modo, todas las instancias contarán con los cambios más actuales aplicados inmediatamente después de una actualización de pila.
+ **[https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html)** – gracias a los grupos de escalado automático, puede utilizar una o más políticas de actualización para controlar la manera en que CloudFormation administra ciertas actualizaciones. Se incluyen las siguientes políticas:
  + **Políticas `AutoScalingReplacingUpdate` y `AutoScalingRollingUpdate`**: CloudFormation puede sustituir el grupo de escalado automático y sus instancias con la política `AutoScalingReplacingUpdate` o sustituir únicamente las instancias con la política `AutoScalingRollingUpdate`. Estas operaciones de reemplazo se producen al hacer uno o más de los cambios que se mencionan a continuación:
    + Cambie [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-launchconfiguration.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-launchconfiguration.html) del grupo de escalado automático.
    + Cambie la propiedad `VPCZoneIdentifier` del grupo de Auto Scaling.
    + Cambie la propiedad `LaunchTemplate` del grupo de Auto Scaling.
    + Cambie la propiedad `PlacementGroup` del grupo de Auto Scaling.
    + Actualizar un grupo de Auto Scaling que contenga instancias que no coincidan con la actual `LaunchConfiguration`.

    Si se especifican las dos políticas, `AutoScalingReplacingUpdate` y `AutoScalingRollingUpdate`, al establecer la propiedad `WillReplace` en `true`, `AutoScalingReplacingUpdate` tiene preferencia.
  + **Política `AutoScalingScheduledAction`**: esta política se aplica únicamente al actualizar una pila que incluya un grupo de escalado automático con acciones programadas que escalen el grupo en momentos específicos. CloudFormation no puede modificar el tamaño mínimo o máximo ni la capacidad deseada del grupo a menos que se cambien de manera explicita en la plantilla de la pila. Esta política ayuda a prevenir cualquier actualización inesperada que pueda afectar las actividades de escalado programadas.
+ **[https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html)** – CloudFormation puede modificar las particiones de un grupo de replicación al agregar o eliminar particiones en vez de reemplazar el recurso en su totalidad. 
+ **[https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opensearchservice-domain.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opensearchservice-domain.html)** y **[https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticsearch-domain.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticsearch-domain.html)** (heredado): CloudFormation puede actualizar un dominio de OpenSearch Service para una nueva versión de OpenSearch o Elasticsearch sin reemplazar el recurso en su totalidad. 
+ **[https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-alias.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-alias.html)** – CloudFormation puede realizar una implementación de CodeDeploy cuando la versión cambia en el alias. 

En las secciones que figuran a continuación se describen la sintaxis y las propiedades del atributo `UpdatePolicy` compatible con cada tipo de recurso.

## Política de actualización de WorkSpaces Applications
<a name="aws-attribute-update-policy-app-stream-fleet"></a>

Para detener una flota de WorkSpaces Applications antes de comenzar una actualización y reiniciarla cuando finalice, utilice la política de actualización de WorkSpaces Applications. 

### Sintaxis
<a name="aws-attribute-update-policy-app-stream-fleet-syntax"></a>

#### JSON
<a name="aws-attribute-update-policy-app-stream-fleet-syntax-json"></a>

```
{
    "UpdatePolicy": {
        "StopBeforeUpdate": {
            "Type": "{{Boolean}}"
        },
        "StartAfterUpdate": {
            "Type": "{{Boolean}}"
        }
    }
}
```

#### YAML
<a name="aws-attribute-update-policy-app-stream-fleet-syntax-yaml"></a>

```
UpdatePolicy:
  StopBeforeUpdate:
    Type: {{Boolean}}
  StartAfterUpdate:
    Type: {{Boolean}}
```

`StopBeforeUpdate`  <a name="cfn-attributes-updatepolicy-replacingupdate-StopBeforeUpdate"></a>
Detiene la flota especificada antes de la actualización.  
*Obligatorio*: no

`StartAfterUpdate`  <a name="cfn-attributes-updatepolicy-replacingupdate-StartAfterUpdate"></a>
Inicia la flota especificada después de la actualización.  
*Obligatorio*: no

## Política AutoScalingReplacingUpdate
<a name="cfn-attributes-updatepolicy-replacingupdate"></a>

Para sustituir un grupo de escalado automático y las instancias que contiene, utilice la política `AutoScalingReplacingUpdate`.

Antes de realizar una actualización, asegúrese de que dispone de suficiente capacidad de Amazon EC2 tanto para los grupos de Auto Scaling antiguos como los nuevos.

### Sintaxis
<a name="cfn-attributes-updatepolicy-replacingupdate-syntax"></a>

#### JSON
<a name="aws-attribute-updatepolicy-replacingupdate-syntax.json"></a>

```
"UpdatePolicy" : {
  "AutoScalingReplacingUpdate" : {
    "WillReplace" : {{Boolean}}
  }
}
```

#### YAML
<a name="aws-attribute-updatepolicy-replacingupdate-syntax.yaml"></a>

```
UpdatePolicy:
  AutoScalingReplacingUpdate:
    WillReplace: {{Boolean}}
```

### Propiedades
<a name="cfn-attributes-updatepolicy-replacingupdate-properties"></a>

`WillReplace`  <a name="cfn-attributes-updatepolicy-replacingupdate-willreplace"></a>
Especifica si un grupo de escalado automático y las instancias que contiene se sustituirán durante una actualización. Durante la sustitución, CloudFormation conserva el grupo antiguo hasta que termina de crear el nuevo. Si la actualización falla, CloudFormation puede volver al antiguo grupo de Auto Scaling y eliminar el nuevo grupo de escalado automático.  
Aunque CloudFormation crea el nuevo grupo, no separa ni adjunta ninguna instancia. Después de crear correctamente el nuevo grupo de escalado automático, CloudFormation elimina el antiguo grupo de Auto Scaling durante el proceso de limpieza.  
Cuando establezca el parámetro `WillReplace`, no se olvide de especificar una [Atributo `CreationPolicy`](aws-attribute-creationpolicy.md) correspondiente. En caso de que el número mínimo de instancias (especificado por la propiedad `MinSuccessfulInstancesPercent`) no dé ninguna señal de éxito durante el periodo de `Timeout` (especificado en el atributo `CreationPolicy`), la actualización de la sustitución fallará y CloudFormation revertirá al grupo de escalado automático previo.  
*Tipo*: Booleano  
*Obligatorio*: no

## Política AutoScalingRollingUpdate
<a name="cfn-attributes-updatepolicy-rollingupdate"></a>

Para realizar una actualización continua de las instancias en un grupo de escalado automático, en vez de esperar a que las actividades de escalado sustituyan de manera gradual las instancias previas con instancias nuevas, utilice la política `AutoScalingRollingUpdate`. Esta política brinda flexibilidad para especificar que CloudFormation sustituya por lotes las instancias de un grupo de escalado automático o de manera integral sin reemplazar el recurso en su totalidad. 

Aspectos que tener en cuenta al utilizar una política de `AutoScalingRollingUpdate`:
+ Cuando CloudFormation revierte una actualización, utiliza la configuración de `UpdatePolicy` especificada en la plantilla antes de la actualización de la pila actual. Por ejemplo, se cambia el `MaxBatchSize` de 1 a 10 en `UpdatePolicy`, se realiza una actualización de pila y esa actualización resulta en una falla. CloudFormation considerará 1, y no 10, como el tamaño de lote máximo al momento de la reversión. Para evitarlo, realice los cambios de `UpdatePolicy` en una actualización por separado antes de cualquier actualización del grupo de escalado automático que pueda llegar a iniciar una actualización continua.
+ CloudFormation recomienda especificar la propiedad `SuspendProcesses` para suspender temporalmente los procesos de Amazon EC2 Auto Scaling que puedan interferir con la actualización continua y provocar un error en la misma. Para obtener más información, consulte [¿Cómo puedo actualizar correctamente mi grupo de escalamiento automático al actualizar la pila de CloudFormation?](https://repost.aws/knowledge-center/auto-scaling-group-rolling-updates)
+ CloudFormation es compatible con el uso de los enlaces de ciclo de vida de Amazon EC2 Auto Scaling durante la ejecución o finalización de instancias. Esto le da tiempo para realizar acciones personalizadas en una instancia antes de que cambie al próximo estado. Para asegurarse de que las instancias nuevas alcancen el estado `InService`, complete un enlace de ciclo de vida cuyo resultado sea `CONTINUE` al finalizar la acción personalizada. Si no se recibe ninguna respuesta y se agota el tiempo del enlace de ciclo de vida, de manera predeterminada, se considerará que la instancia falló y se abandonará. Si ninguna de las instancias alcanza el estado `InService`, la actualización continua finalmente fallará.
+ Las características de Amazon EC2 Auto Scaling, como las políticas de mantenimiento de una instancia, las políticas de finalización y la protección de la reducción horizontal, no se podrán utilizar con una actualización continua de CloudFormation. Planifique de manera correspondiente las actualizaciones continuas.
+ Si utiliza una política de `AutoScalingRollingUpdate` y elimina la configuración del grupo de ubicación, este se eliminará del grupo de escalado automático y de la plantilla de CloudFormation. Además, esto desencadena una actualización continua, por lo que las nuevas instancias no se lanzarán en un grupo de ubicación.

### Sintaxis
<a name="cfn-attributes-updatepolicy-rollingupdate-syntax"></a>

#### JSON
<a name="aws-attribute-updatepolicy-rollingupdate-syntax.json"></a>

```
"UpdatePolicy" : {
  "AutoScalingRollingUpdate" : {
    "MaxBatchSize" : {{Integer}},
    "MinActiveInstancesPercent" : {{Integer}},
    "MinInstancesInService" : {{Integer}},
    "MinSuccessfulInstancesPercent" : {{Integer}},
    "PauseTime" : {{String}},
    "SuspendProcesses" : [ {{List of processes}} ],
    "WaitOnResourceSignals" : {{Boolean}}
  }
}
```

#### YAML
<a name="aws-attribute-updatepolicy-rollingupdate-syntax.yaml"></a>

```
UpdatePolicy:
  AutoScalingRollingUpdate:
    MaxBatchSize: {{Integer}}
    MinActiveInstancesPercent: {{Integer}}
    MinInstancesInService: {{Integer}}
    MinSuccessfulInstancesPercent: {{Integer}}
    PauseTime: {{String}}
    SuspendProcesses:
      - {{List of processes}}
    WaitOnResourceSignals: {{Boolean}}
```

### Propiedades
<a name="aws-attribute-updatepolicy-rollingupdate-properties"></a>

`MaxBatchSize`  <a name="cfn-attributes-updatepolicy-rollingupdate-maxbatchsize"></a>
Especifica el número máximo de instancias que pueden reemplazarse en forma simultánea.  
*Valor predeterminado*: `1`  
*Máximo*: `100`  
*Tipo*: entero  
*Obligatorio*: no

`MinActiveInstancesPercent`  <a name="cfn-attributes-updatepolicy-rollingupdate-minactiveinstancespercent"></a>
Especifica el porcentaje de instancias de un grupo de escalado automático que debe estar en el estado `InService` relativo a la capacidad deseada de esos grupos durante una actualización continua para que esta sea exitosa. Puede especificar un valor de 0 a 100. CloudFormation redondea a la décima de porcentaje más próxima. Por ejemplo, si actualiza cinco instancias con un porcentaje de `InService`de 50, como mínimo, al menos tres instancias beben encontrarse en el estado `InService`. Si una instancia no se cambia al estado `InService` dentro del plazo de 1 hora, CloudFormation asume que dicha instancia no se ha actualizado.  
La configuración de `MinActiveInstancesPercent` en `UpdatePolicy` afectará también a las instancias lanzadas cuando la propiedad `DesiredCapacity` del recurso de `AWS::AutoScaling::AutoScalingGroup` supere la capacidad actual deseada para ese grupo de escalado automático.  
*Valor predeterminado*: `100`  
*Tipo*: entero  
*Obligatorio*: no

`MinInstancesInService`  <a name="cfn-attributes-updatepolicy-rollingupdate-mininstancesinservice"></a>
Especifica el número mínimo de instancias que deben estar en servicio en el grupo de escalado automático mientras CloudFormation actualiza las instancias antiguas. Este valor debe ser menor que el [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-maxsize](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-maxsize) del grupo de escalado automático.  
Se recomienda establecer el valor de la propiedad `MinInstancesInService` en, al menos, [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-minsize](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-minsize) del grupo de escalado automático. De este modo, se evitan posibles problemas de disponibilidad durante una actualización continua, ya que no hay instancias que atiendan al tráfico de clientes. 
*Valor predeterminado*: `0`  
*Tipo*: entero  
*Obligatorio*: no

`MinSuccessfulInstancesPercent`  <a name="cfn-attributes-updatepolicy-rollingupdate-minsuccessfulinstancespercent"></a>
Especifica el porcentaje de instancias en una actualización acumulativa de escalado automático que deben enviar una señal de éxito para que la actualización se realice correctamente. Puede especificar un valor de 0 a 100. CloudFormation redondea a la décima de porcentaje más próxima. Por ejemplo, si actualiza cinco instancias con un porcentaje de éxito mínimo de `50`, tres instancias deben enviar una señal de éxito. Si una instancia no envía una señal en el tiempo especificado en la propiedad `PauseTime`, CloudFormation supone que la instancia no se ha actualizado.  
Es recomendable que establezca el valor de la propiedad `MinSuccessfulInstancesPercent` en un valor superior a 0. Cuando la propiedad `MinSuccessfulInstancesPercent` se establece en 0, CloudFormation espera a que el 0 % de las instancias de capacidad estén en un estado `InService`. `MinSuccessfulInstancesPercent` vuelve inmediatamente, antes de considerar el estado del grupo de escalado automático como `UPDATE_COMPLETE` para pasar a los recursos siguientes que se definen en la plantilla de la pila. Si se definen otros grupos de escalado automático en la plantilla de CloudFormation, se actualizarán simultáneamente. Si todos los grupos de escalado automático se implementan a la vez con el 0 % de las instancias de capacidad en un estado `InService`, experimentará problemas de disponibilidad, debido a que ninguna instancia atiende el tráfico de clientes.  
*Valor predeterminado*: `100`  
*Tipo*: entero  
*Obligatorio*: no

`PauseTime`  <a name="cfn-attributes-updatepolicy-rollingupdate-pausetime"></a>
La cantidad de tiempo que CloudFormation realiza una pausa después de cambiar a un lote de instancias para dar tiempo a esas instancias para que inicien aplicaciones de software.   
Especifique `PauseTime` en el formato de duración [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) (en el formato`PT{{#}}H{{#}}M{{#}}S`, donde cada {{\#}} es el número de horas, minutos y segundos, respectivamente). El valor de `PauseTime` máximo es una hora (`PT1H`).  
Cuando `WaitOnResourceSignals` se establece en `true`, `PauseTime` actúa como un valor de tiempo de espera. Determina el tiempo máximo que CloudFormation espera para recibir la cantidad requerida de señales válidas de las instancias que se reemplazan durante una actualización continua y de las nuevas instancias que se agregan al aumentar la propiedad [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-desiredcapacity](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html#cfn-autoscaling-autoscalinggroup-desiredcapacity) del recurso `AWS::AutoScaling::AutoScalingGroup`. Si se supera `PauseTime` antes de que CloudFormation reciba las señales esperadas, la actualización falla. Para obtener el mejor resultado, especifique un periodo de tiempo suficiente para que sus aplicaciones se inicien. Si hay que restaurar la actualización, un valor de `PauseTime` muy corto puede hacer que la restauración falle.
*Valor predeterminado*: `PT5M` (5 minutos) cuando la propiedad `WaitOnResourceSignals` está establecida en `true`. De lo contrario, no está configurado el valor predeterminado.   
*Tipo:* cadena  
*Obligatorio*: no

`SuspendProcesses`  <a name="cfn-attributes-updatepolicy-rollingupdate-suspendprocesses"></a>
Especifica los procesos de escalado automático que se van a suspender durante una actualización de la pila. La suspensión de procesos evita que escalado automático interfiera con una actualización de pila. Por ejemplo, puede suspender alarmas para que Amazon EC2 Auto Scaling no inicie políticas de escalado asociadas a una alarma. Para obtener valores válidos, consulte [Types of processes](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types) en la *Guía del usuario de Amazon EC2 Auto Scaling*.  
*Predeterminado*: no especificado  
*Tipo*: lista de procesos de escalado automático  
*Obligatorio*: no

`WaitOnResourceSignals`  <a name="cfn-attributes-updatepolicy-rollingupdate-waitonresourcesignals"></a>
Especifica si CloudFormation espera las señales de éxito de las nuevas instancias antes de continuar con la actualización. CloudFormation espera las señales de éxito durante el tiempo de `PauseTime` especificado.  
Para señalar el grupo de escalado automático, utilice el script auxiliar [cfn-signal](cfn-signal.md). Para los grupos de escalado automático asociados a Elastic Load Balancing, considere la posibilidad de agregar una comprobación de estado para garantizar que las instancias estén en buen estado antes de indicar que se han llevado a cabo correctamente mediante el script auxiliar [cfn-init](cfn-init.md). Para ver un ejemplo, consulte el comando `verify_instance_health` en las plantillas de ejemplo para las actualizaciones acumulativas de Amazon EC2 Auto Scaling en nuestro [repositorio de GitHub](https://github.com/aws-cloudformation/aws-cloudformation-templates/tree/main/AutoScaling).  
*Valor predeterminado*: `false`  
*Tipo*: Booleano  
*Obligatorio*: condicional. Si especifica la propiedad `MinSuccessfulInstancesPercent`, debe establecer la propiedad `WaitOnResourceSignals` en `true`.

## Política AutoScalingScheduledAction
<a name="cfn-attributes-updatepolicy-scheduledactions"></a>

Para especificar la forma en que CloudFormation administra las actualizaciones de las propiedades `MinSize`, `MaxSize` y `DesiredCapacity` cuando el recurso `AWS::AutoScaling::AutoScalingGroup` tiene una acción programada asociada, utilice la política `AutoScalingScheduledAction`.

Con las acciones programadas, las propiedades de tamaño de un grupo de escalado automático pueden cambiar en cualquier momento. Al actualizar una pila con un grupo de escalado automático y una acción programada, CloudFormation siempre establece los valores de la propiedad del tamaño del grupo de escalado automático en los valores que se definen en el recurso `AWS::AutoScaling::AutoScalingGroup` de la plantilla, incluso si se está en vigor una acción programada.

Si no desea que CloudFormation cambie cualquiera de los valores de la propiedad de tamaño del grupo cuando hay en vigor una acción programada, utilice la política de actualización `AutoScalingScheduledAction` y configure `IgnoreUnmodifiedGroupSizeProperties` en `true` para evitar que CloudFormation cambie las propiedades `MinSize`, `MaxSize` o `DesiredCapacity` a menos que haya modificado estos valores en la plantilla.



### Sintaxis
<a name="cfn-attributes-updatepolicy-scheduledactions-syntax"></a>

#### JSON
<a name="aws-attribute-updatepolicy-scheduledactions-syntax.json"></a>

```
"UpdatePolicy" : {
  "AutoScalingScheduledAction" : {
    "IgnoreUnmodifiedGroupSizeProperties" : {{Boolean}}
  }
}
```

#### YAML
<a name="aws-attribute-updatepolicy-scheduledactions-syntax.yaml"></a>

```
UpdatePolicy:
  AutoScalingScheduledAction:
    IgnoreUnmodifiedGroupSizeProperties: {{Boolean}}
```

### Propiedades
<a name="cfn-attributes-updatepolicy-scheduledactions-properties"></a>

`IgnoreUnmodifiedGroupSizeProperties`  <a name="cfn-attributes-updatepolicy-scheduledactions-ignoreunmodifiedgroupsizeproperties"></a>
Si es `true`, CloudFormation ignora las diferencias en las propiedades del tamaño del grupo entre el grupo de escalado automático actual y el grupo de escalado automático que se describe en el recurso `AWS::AutoScaling::AutoScalingGroup` de la plantilla durante una actualización de la pila. Si modifica cualquiera de los valores de las propiedades de tamaño del grupo en la plantilla, CloudFormation utiliza los valores modificados y actualiza el grupo de escalado automático.  
Esta propiedad se ignora durante la reversión de una pila.
*Valor predeterminado*: `false`  
*Tipo*: Booleano  
*Obligatorio*: no

## Política UseOnlineResharding
<a name="cfn-attributes-updatepolicy-useonlineresharding"></a>

Para modificar las particiones del grupo de replicación añadiendo o quitando particiones, en lugar de sustituir todo el recurso [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html), utilice la política de actualización de `UseOnlineResharding`.

Si `UseOnlineResharding` está establecido en `true`, puede actualizar las propiedades `NumNodeGroups` y `NodeGroupConfiguration` del recurso `AWS::ElastiCache::ReplicationGroup` y CloudFormation actualizará esas propiedades sin interrupción. Cuando `UseOnlineResharding` se establece en `false` o no se especifica, la actualización de las propiedades `NumNodeGroups` y `NodeGroupConfiguration` tendrá como resultado que CloudFormation sustituya todo el recurso`AWS::ElastiCache::ReplicationGroup`.

La política de actualización `UseOnlineResharding` no tiene propiedades.

Aspectos a tener en cuenta a la hora de establecer la política de actualización `UseOnlineResharding` en `true`:
+ Recomendamos encarecidamente que realice las actualizaciones de las propiedades `NumNodeGroups` y `NodeGroupConfiguration` como las únicas actualizaciones en una determinada operación de actualización de pila.

  La actualización de la configuración de grupo de nodos de un grupo de replicación es una operación que utiliza muchos recursos. Si una actualización de la pila falla, CloudFormation no restaura los cambios de la configuración de grupo de nodos de un grupo de replicación. Sin embargo, CloudFormation revertirá las demás propiedades que se hayan cambiado como parte de la operación de actualización infructuosa.
+ Todas las actualizaciones de grupo de nodos exigen la identificación de todos los grupos de nodos.

  Si especifica la propiedad `NodeGroupConfiguration`, también debe especificar el NodeGroupId para cada configuración de grupo de nodos a fin de que CloudFormation actualice el número de nodos sin interrupción.

  Al crear un grupo de replicación, si no se especifica un ID para cada grupo de nodos, ElastiCache genera automáticamente un ID para cada grupo de nodos. Para actualizar el grupo de replicación sin interrupciones, utilice la consola de ElastiCache ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) o [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) para recuperar los ID de todos los grupos de nodos del grupo de replicación. A continuación, especifique el ID de cada grupo de nodos en su plantilla de pila antes de intentar añadir o eliminar particiones.
**nota**  
La práctica recomendada al crear un grupo de replicación en una plantilla de pila es incluir un ID para cada grupo de nodos que especifique.

  Además, para actualizar el número de nodos sin interrupción también es necesario que haya especificado correctamente las propiedades `PrimaryAvailabilityZone`, `ReplicaAvailabilityZones` y `ReplicaCount` de cada `NodeGroupConfiguration`. Una vez más, puede utilizar la consola de ElastiCache ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) o [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) para recuperar los valores reales de cada grupo de nodos y compararlos con los valores de la plantilla de pila. Puede actualizar los valores de las propiedades de los grupos de nodo como una actualización de pila independiente o como parte de la misma actualización de pila que cambia el número de grupos de nodo.

  Cuando se utiliza una política de actualización `UseOnlineResharding` para actualizar el número de grupos de nodo sin interrupción, ElastiCache distribuye de manera uniforme los espacios de claves entre el número especificado de ranuras. Esto no se puede actualizar más tarde. Por lo tanto, después de actualizar el número de grupos de nodo de esta forma, debe eliminar el valor especificado para la propiedad `Slots` de cada `NodeGroupConfiguration` de la plantilla de pila ya que no refleja los valores reales de cada grupo de nodos.
+ Los resultados reales de la eliminación de grupos de nodos pueden variar.

  Cuando se especifica un valor de `NumNodeGroups` que es menor que el número actual de grupos de nodo, CloudFormation indica a ElastiCache que elimine tantos grupos de nodo como sea necesario para alcanzar el número de nodos especificado. Sin embargo, ElastiCache puede no ser capaz de eliminar la cantidad deseada de grupos de nodo. En el caso de que ElastiCache no pueda eliminar la cantidad deseada de grupos de nodo, CloudFormation genera un evento de pila que le alerta de esta situación. En los casos en los que ElastiCache no puede eliminar *ningún* grupo de nodos, la actualización del recurso CloudFormation produce un error.

Para obtener más información acerca de la modificación de los grupos de replicación, consulte [ModifyReplicationGroupShardConfiguration](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html) en la *Amazon ElastiCache API Reference*.

### Sintaxis
<a name="cfn-attributes-updatepolicy-useonlineresharding-syntax"></a>

#### JSON
<a name="cfn-attributes-updatepolicy-useonlineresharding-syntax.json"></a>

```
"UpdatePolicy" : {
  "UseOnlineResharding" : {{Boolean}}
}
```

#### YAML
<a name="cfn-attributes-updatepolicy-useonlineresharding-syntax.yaml"></a>

```
UpdatePolicy:
  UseOnlineResharding: {{Boolean}}
```

## Política EnableVersionUpgrade
<a name="cfn-attributes-updatepolicy-upgradeopensearchdomain"></a>

Para actualizar un dominio de OpenSearch Service a una nueva versión de OpenSearch o Elasticsearch, en lugar de reemplazar todo el recurso [AWS::OpenSearchService::Domain](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opensearchservice-domain.html) o el recurso [AWS::Elasticsearch::Domain](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticsearch-domain.html), utilice la política de actualización `EnableVersionUpgrade`.

Si `EnableVersionUpgrade` se establece en `true`, puede actualizar la propiedad `EngineVersion` del recurso `AWS::OpenSearchService::Domain` (o la propiedad `ElasticsearchVersion` del recurso `AWS::Elasticsearch::Domain` heredado) y CloudFormation actualizará dicha propiedad sin interrupción. Cuando `EnableVersionUpgrade` se establece en `false` o no se especifica, la actualización de los resultados de la propiedad `EngineVersion` o `ElasticsearchVersion` hará que CloudFormation sustituya todo el recurso `AWS::OpenSearchService::Domain`/`AWS::Elasticsearch::Domain`.

La política de actualización `EnableVersionUpgrade` no tiene propiedades.

Para obtener más información, consulte [Upgrading OpenSearch Service domains](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/version-migration.html) en la Guía para desarrolladores de Amazon OpenSearch Service.

### Sintaxis
<a name="cfn-attributes-updatepolicy-upgradeopensearchdomain-syntax"></a>

#### JSON
<a name="cfn-attributes-updatepolicy-upgradeopensearchdomain-syntax.json"></a>

```
"UpdatePolicy" : {
  "EnableVersionUpgrade" : {{Boolean}}
}
```

#### YAML
<a name="cfn-attributes-updatepolicy-upgradeopensearchdomain-syntax.yaml"></a>

```
UpdatePolicy:
  EnableVersionUpgrade: {{Boolean}}
```

## Política CodeDeployLambdaAliasUpdate
<a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate"></a>

Para realizar una implementación de CodeDeploy cuando la versión cambia en un recurso `AWS::Lambda::Alias`, utilice la política de actualización `CodeDeployLambdaAliasUpdate`.

### Sintaxis
<a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-syntax"></a>

#### JSON
<a name="aws-attribute-updatepolicy-codedeploylambdaaliasupdate-syntax.json"></a>

```
"UpdatePolicy" : {
  "CodeDeployLambdaAliasUpdate" : {
    "AfterAllowTrafficHook" : {{String}},
    "ApplicationName" : {{String}},
    "BeforeAllowTrafficHook" : {{String}},
    "DeploymentGroupName" : {{String}}
  }
}
```

#### YAML
<a name="aws-attribute-updatepolicy-codedeploylambdaaliasupdate-syntax.yaml"></a>

```
UpdatePolicy:
  CodeDeployLambdaAliasUpdate:
    AfterAllowTrafficHook: {{String}}
    ApplicationName: {{String}}
    BeforeAllowTrafficHook: {{String}}
    DeploymentGroupName: {{String}}
```

### Propiedades
<a name="aws-attribute-updatepolicy-codedeploylambdaaliasupdate-properties"></a>

`AfterAllowTrafficHook`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-afterallowtraffichook"></a>
El nombre de la función de Lambda que se ejecuta después de que finalice el enrutamiento del tráfico.  
*Obligatorio:* no  
*Tipo:* cadena

`ApplicationName`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-applicationname"></a>
El nombre de la aplicación de CodeDeploy.  
*Obligatorio*: sí  
*Tipo:* cadena

`BeforeAllowTrafficHook`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-beforeallowtraffichook"></a>
El nombre de la función de Lambda que se ejecuta antes de que comience el enrutamiento del tráfico.  
*Obligatorio:* no  
*Tipo:* cadena

`DeploymentGroupName`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-deploymentgroupname"></a>
El nombre del grupo de implementaciones CodeDeploy. Aquí es donde se establece la política de cambio de tráfico.  
*Obligatorio*: sí  
*Tipo:* cadena

Para conocer un ejemplo que especifique el atributo `UpdatePolicy` de un recurso `AWS::Lambda::Alias`, consulte [Política de actualización de alias de Lambda](#aws-resource-lambda-alias-example).

## Ejemplos
<a name="aws-attribute-updatepolicy-examples"></a>

Los siguientes ejemplos muestran cómo añadir una política de actualización a un grupo de escalado automático y cómo mantener la disponibilidad a la hora de actualizar los metadatos.

### Agregue una `UpdatePolicy` a un grupo de escalado grupo de escalado automático
<a name="aws-attribute-updatepolicy-example-1"></a>

En el ejemplo siguiente, se muestra cómo añadir una política de actualización. Durante una actualización, el grupo de escalado automático actualiza instancias en lotes de dos y mantiene un mínimo de una instancia en servicio. Dado que la marca `WaitOnResourceSignals` está establecida, el grupo de escalado automático espera a que se añadan nuevas instancias al grupo. Las nuevas instancias deben señalizar el grupo de escalado automático antes de actualizar el siguiente lote de instancias.

#### JSON
<a name="attribute-updatepolicy-example-1.json"></a>

```
"ASG" : {
  "Type":"AWS::AutoScaling::AutoScalingGroup",
  "Properties":{
    "VPCZoneIdentifier":[ "{{subnetIdAz1}}", "{{subnetIdAz2}}", "{{subnetIdAz3}}" ],
    "LaunchTemplate":{
      "LaunchTemplateId":{
        "Ref":"{{logicalName}}"
      },
      "Version":{
        "Fn::GetAtt":[
          "{{logicalName}}",
          "LatestVersionNumber"
        ]
      }
    },
    "MaxSize":"4",
    "MinSize":"1"
  },
  "UpdatePolicy":{
    "AutoScalingScheduledAction":{
      "IgnoreUnmodifiedGroupSizeProperties":"true"
    },
    "AutoScalingRollingUpdate":{
      "MinInstancesInService":"1",
      "MaxBatchSize":"2",
      "WaitOnResourceSignals":"true",
      "PauseTime":"PT10M",
      "SuspendProcesses":[
        "HealthCheck",
        "ReplaceUnhealthy",
        "AZRebalance",
        "AlarmNotification",
        "ScheduledActions",
        "InstanceRefresh"
      ]
    }
  }
}
```

#### YAML
<a name="attribute-updatepolicy-example-1.yaml"></a>

```
ASG:
  Type: AWS::AutoScaling::AutoScalingGroup
  Properties:
    VPCZoneIdentifier:
      - {{subnetIdAz1}}
      - {{subnetIdAz2}}
      - {{subnetIdAz3}}
    LaunchTemplate:
      LaunchTemplateId: !Ref {{logicalName}}
      Version: !GetAtt {{logicalName}}.LatestVersionNumber
    MaxSize: '4'
    MinSize: '1'
  UpdatePolicy:
    AutoScalingScheduledAction:
      IgnoreUnmodifiedGroupSizeProperties: 'true'
    AutoScalingRollingUpdate:
      MinInstancesInService: '1'
      MaxBatchSize: '2'
      WaitOnResourceSignals: 'true'
      PauseTime: PT10M
      SuspendProcesses:
        - HealthCheck
        - ReplaceUnhealthy
        - AZRebalance
        - AlarmNotification
        - ScheduledActions
        - InstanceRefresh
```

### Política AutoScalingReplacingUpdate
<a name="attribute-updatepolicy-AutoScalingReplacingUpdate"></a>

El siguiente ejemplo declara una política que obliga a sustituir un grupo de escalado automático asociado durante una actualización. Para que la actualización se realice correctamente, un porcentaje de instancias (especificadas por el parámetro `MinSuccessfulPercentParameter`) debe señalizar el éxito en el periodo de `Timeout`.

#### JSON
<a name="attribute-updatepolicy-example-2.json"></a>

```
"UpdatePolicy" : {
  "AutoScalingReplacingUpdate" : {
    "WillReplace" : true
  }
},
"CreationPolicy" : {
  "ResourceSignal" : {
    "Count" : { "Ref" : "ResourceSignalsOnCreate"},
    "Timeout" : "PT10M"
  },
  "AutoScalingCreationPolicy" : {
    "MinSuccessfulInstancesPercent" : { "Ref" : "MinSuccessfulPercentParameter" }
  }
}
```

#### YAML
<a name="attribute-updatepolicy-example-2.yaml"></a>

```
UpdatePolicy:
  AutoScalingReplacingUpdate:
    WillReplace: true
CreationPolicy:
  ResourceSignal:
    Count: !Ref 'ResourceSignalsOnCreate'
    Timeout: PT10M
  AutoScalingCreationPolicy:
    MinSuccessfulInstancesPercent: !Ref 'MinSuccessfulPercentParameter'
```

### Mantener la disponibilidad al actualizar los metadatos para el script auxiliar cfn-init
<a name="aws-attribute-updatepolicy-cfn-init-metadata"></a>

Al instalar aplicaciones de software en las instancias, puede utilizar la clave de metadatos [`AWS::CloudFormation::Init`](aws-resource-init.md) y el script auxiliar [cfn-init](cfn-init.md) para el proceso de arranque de las instancias en el grupo de escalado automático. CloudFormation instala los paquetes, ejecuta los comandos y realiza otras acciones del proceso de arranque que se describen en los metadatos.

Al actualizar solo los metadatos (por ejemplo, cuando se actualiza un paquete a otra versión), puede utilizar el daemon auxiliar [cfn-hup](cfn-hup.md) para detectar y aplicar las actualizaciones. Sin embargo, el daemon `cfn-hup` se ejecuta de forma independiente en cada instancia. Si el daemon se ejecuta al mismo tiempo en todas las instancias, su aplicación o servicio podría no estar disponible durante la actualización. Para garantizar la disponibilidad, puede forzar una actualización acumulativa para que CloudFormation actualice sus instancias de lote en lote.

**importante**  
Para forzar una actualización acumulativa, CloudFormation debe crear una nueva instancia y, a continuación, eliminar la antigua. Toda la información almacenada en la antigua instancia se pierde.

Para forzar una actualización acumulativa, cambie el ID lógico del recurso de configuración de lanzamiento y, a continuación, actualice la pila y todas las referencias que apuntan al ID de lógica original (como el grupo de escalado automático asociado). CloudFormation desencadena una actualización acumulativa en el grupo de escalado automático y sustituye todas las instancias.

### Plantilla original
<a name="aws-attribute-updatepolicy-cfn-init-metadata-original"></a>

```
"LaunchConfig": {
  "Type" : "AWS::AutoScaling::LaunchConfiguration",
  "Metadata" : {
    "Comment" : "Install a simple PHP application",
    "AWS::CloudFormation::Init" : {
    ...
    }
  }
}
```

### ID lógico actualizado
<a name="aws-attribute-updatepolicy-cfn-init-metadata-updated"></a>

```
"LaunchConfigUpdateRubygemsPkg": {
  "Type" : "AWS::AutoScaling::LaunchConfiguration",
  "Metadata" : {
    "Comment" : "Install a simple PHP application",
    "AWS::CloudFormation::Init" : {
    ...
    }
  }
}
```

### Política de actualización de alias de Lambda
<a name="aws-resource-lambda-alias-example"></a>

El siguiente ejemplo especifica el atributo `UpdatePolicy` para un recurso `AWS::Lambda::Alias`. Todos los detalles de la implementación se definen mediante el grupo de implementación y la aplicación que se transfieren a la política.

#### JSON
<a name="aws-attribute-updatepolicy-codedeploylambda.json"></a>

```
"Alias": {
  "Type": "AWS::Lambda::Alias",
  "Properties": {
    "FunctionName": {
      "Ref": "LambdaFunction"
    },
    "FunctionVersion": {
      "Fn::GetAtt": [
        "FunctionVersionTwo",
        "Version"
      ]
    },
    "Name": "MyAlias"
  },
  "UpdatePolicy": {
    "CodeDeployLambdaAliasUpdate": {
      "ApplicationName": {
        "Ref": "CodeDeployApplication"
      },
      "DeploymentGroupName": {
        "Ref": "CodeDeployDeploymentGroup"
      },
      "BeforeAllowTrafficHook": {
        "Ref": "PreHookLambdaFunction"
      },
      "AfterAllowTrafficHook": {
        "Ref": "PreHookLambdaFunction"
      }
    }
  }
}
```

#### YAML
<a name="aws-attribute-updatepolicy-codedeploylambda-example.yaml"></a>

```
Alias:
  Type: AWS::Lambda::Alias
  Properties:
    FunctionName: !Ref LambdaFunction
    FunctionVersion: !GetAtt FunctionVersionTwo.Version
    Name: MyAlias
  UpdatePolicy:
    CodeDeployLambdaAliasUpdate:
      ApplicationName: !Ref CodeDeployApplication
      DeploymentGroupName: !Ref CodeDeployDeploymentGroup
      BeforeAllowTrafficHook: !Ref PreHookLambdaFunction
      AfterAllowTrafficHook: !Ref PreHookLambdaFunction
```