

Este é o novo *Guia de referência de modelos do CloudFormation*. Atualize seus favoritos e links. Para obter ajuda para começar a usar o CloudFormation, consulte o [Guia do usuário do AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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

Use o atributo `UpdatePolicy` para especificar como o CloudFormation lida com as atualizações de certos recursos durante as operações de atualização de pilha. 

**Topics**
+ [Visão geral](#aws-resource-update-policies)
+ [Política de atualização do 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)
+ [Exemplos](#aws-attribute-updatepolicy-examples)

## Visão geral
<a name="aws-resource-update-policies"></a>

Usando o atributo `UpdatePolicy`, você pode controlar como os seguintes recursos são atualizados, como descrito aqui:
+ **[AWS::AppStream::Fleet](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-appstream-fleet.html)**: o CloudFormation pode parar e iniciar uma frota, o que faz com que das instâncias da frota sejam substituídas. Fazendo isso, as alterações mais recentes serão aplicadas imediatamente após uma atualização da pilha.
+ **[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)** – com os grupos do Auto Scaling, você pode usar uma ou mais políticas de atualização para controlar como o CloudFormation lida com determinadas atualizações. Essas políticas incluem:
  + **Políticas de `AutoScalingReplacingUpdate` e `AutoScalingRollingUpdate`**: o CloudFormation pode substituir o grupo do Auto Scaling e suas instâncias por uma política de `AutoScalingReplacingUpdate` ou pode substituir apenas as instâncias por uma política de `AutoScalingRollingUpdate`. Essas operações de substituição ocorrem quando você faz uma ou mais das seguintes alterações:
    + Altera a [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) do grupo do Auto Scaling.
    + Altera a propriedade `VPCZoneIdentifier` do grupo do Auto Scaling.
    + Altera a propriedade `LaunchTemplate` do grupo do Auto Scaling.
    + Altera a propriedade `PlacementGroup` do grupo do Auto Scaling.
    + Atualiza um grupo de Auto Scaling que contém instâncias que não correspondem à atual `LaunchConfiguration`.

    Se ambas as políticas `AutoScalingReplacingUpdate` e `AutoScalingRollingUpdate` forem especificadas, a definição da propriedade `WillReplace` para `true` dá precedência a `AutoScalingReplacingUpdate`.
  + **Política de `AutoScalingScheduledAction`**: essa política se aplica quando você atualiza uma pilha que inclui um grupo do Auto Scaling com ações programadas que escalam o grupo em horários específicos. O CloudFormation não pode modificar o tamanho mínimo, o tamanho máximo nem a capacidade desejada do grupo a menos que esses valores tenham sido explicitamente alterados no modelo de pilha. Essa política ajuda a evitar atualizações inesperadas que poderiam interferir nas atividades de escalação agendadas.
+ **[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)** – o CloudFormation pode modificar fragmentos de um grupo de replicação adicionando ou removendo fragmentos em vez de substituir todo o recurso. 
+ **[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)** e **[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)** (legados): o CloudFormation pode atualizar um domínio do OpenSearch Service para uma nova versão do OpenSearch ou do Elasticsearch sem substituir o recurso inteiro. 
+ **[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)** – o CloudFormation pode realizar uma implantação do CodeDeploy quando a versão muda no alias. 

As seções a seguir descrevem a sintaxe e as propriedades do atributo `UpdatePolicy` compatível com cada tipo de recurso.

## Política de atualização do WorkSpaces Applications
<a name="aws-attribute-update-policy-app-stream-fleet"></a>

Para parar uma frota do WorkSpaces Applications antes de uma atualização e reiniciá-la após uma atualização, use a política de atualização do WorkSpaces Applications. 

### Sintaxe
<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>
Interrompe a frota especificada antes da atualização.  
*Obrigatório*: não

`StartAfterUpdate`  <a name="cfn-attributes-updatepolicy-replacingupdate-StartAfterUpdate"></a>
Inicia a frota especificada após a atualização.  
*Obrigatório*: não

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

Para substituir o grupo do Auto Scaling e as instâncias nele contidas, use a política de `AutoScalingReplacingUpdate`.

Antes de executar uma atualização, verifique se há capacidade suficiente no Amazon EC2 para os novos e antigos grupos de Auto Scaling.

### Sintaxe
<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}}
```

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

`WillReplace`  <a name="cfn-attributes-updatepolicy-replacingupdate-willreplace"></a>
Especifica se um grupo do Auto Scaling e as instâncias que ele contém serão substituídos durante uma atualização. Durante a substituição, o CloudFormation retém o grupo antigo até que ele termine a criação do novo. Se a atualização falhar, o CloudFormation poderá reverter para o grupo de Auto Scaling antigo e excluir o grupo de Auto Scaling novo.  
Embora o CloudFormation crie o novo grupo, ele não desanexa nem anexa as instâncias. Após criar com êxito o novo grupo do Auto Scaling, o CloudFormation excluirá o grupo de Auto Scaling antigo durante o processo de limpeza.  
Quando você definir o parâmetro `WillReplace`, lembre-se de especificar um [Atributo `CreationPolicy`](aws-attribute-creationpolicy.md) correspondente. Se o número mínimo de instâncias (especificado pela propriedade `MinSuccessfulInstancesPercent`) não indicar sucesso dentro do `Timeout` (especificado no atributo `CreationPolicy`), haverá falha na atualização de substituição e o CloudFormation reverterá para o grupo do Auto Scaling antigo.  
*Tipo*: booliano  
*Obrigatório*: não

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

Para realizar uma atualização contínua das instâncias de um grupo do Auto Scaling em vez de esperar que as atividades de escalação substituam gradualmente as instâncias mais antigas por mais novas, use a política de `AutoScalingRollingUpdate`. Essa política oferece a flexibilidade de especificar se o CloudFormation substitui as instâncias que estão em um grupo do Auto Scaling em lotes ou de uma só vez sem substituir todo o recurso. 

Coisas a considerar ao usar uma política do `AutoScalingRollingUpdate`:
+ Quando o CloudFormation reverte uma atualização, ele usa a configuração da `UpdatePolicy` especificada no modelo antes da atualização da pilha atual. Por exemplo, você altera `MaxBatchSize` de 1 para 10 na `UpdatePolicy`, executa uma atualização de pilha e ocorre uma falha na atualização. O CloudFormation usará 1, e não 10, como o tamanho máximo de lote quando reverter. Para evitar que isso ocorra, faça as alterações na `UpdatePolicy` em uma atualização separada antes de fazer qualquer atualização que provavelmente iniciará atualizações contínuas no grupo do Auto Scaling.
+ O CloudFormation recomenda especificar a propriedade `SuspendProcesses` para suspender temporariamente os processos do Amazon EC2 Auto Scaling que possam interferir na atualização contínua e causar sua falha. Consulte mais informações em [Como posso atualizar corretamente meu grupo do Auto Scaling ao atualizar minha pilha do CloudFormation?](https://repost.aws/knowledge-center/auto-scaling-group-rolling-updates)
+ O CloudFormation é compatível com o uso de hooks do ciclo de vida do Amazon EC2 Auto Scaling ao iniciar ou terminar instâncias. Isso dá a você tempo para executar ações personalizadas em uma instância antes que ela passe para o próximo estado. Para garantir que a nova instância alcance o estado de `InService`, conclua o hook do ciclo de vida com um resultado de `CONTINUE` quando a ação personalizada for concluída. Por padrão, se nenhuma resposta for recebida e o tempo limite do hook do ciclo de vida expirar, a inicialização da instância será considerada malsucedida e será abandonada. Se nenhuma instância alcançar o estado de `InService`, a atualização contínua acabará falhando.
+ Os recursos do Amazon EC2 Auto Scaling, como as políticas de manutenção de instâncias, as políticas de terminação e a proteção contra redução de escala horizontal, não estão disponíveis para uso com as atualizações contínuas do CloudFormation. Planeje suas atualizações contínuas de modo adequado.
+ Se você usar uma `AutoScalingRollingUpdate` política e remover a configuração do grupo de posicionamento, o grupo de posicionamento será removido do grupo do Auto Scaling e do modelo CloudFormation. Além disso, isso aciona uma atualização contínua, para que novas instâncias não sejam lançadas em um grupo de posicionamento.

### Sintaxe
<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}}
```

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

`MaxBatchSize`  <a name="cfn-attributes-updatepolicy-rollingupdate-maxbatchsize"></a>
Especifica o número máximo de instâncias que podem ser substituídas ao mesmo tempo.  
*Padrão*: `1`  
*Maximum*: `100`  
*Tipo*: inteiro  
*Obrigatório*: não

`MinActiveInstancesPercent`  <a name="cfn-attributes-updatepolicy-rollingupdate-minactiveinstancespercent"></a>
Especifica o percentual de instâncias em um grupo do Auto Scaling que devem estar no estado `InService` relativo à capacidade desejada desse grupo durante uma atualização contínua para que uma atualização seja bem-sucedida. É possível especificar um valor de 0 a 100. O CloudFormation arredonda para o décimo mais próximo de um percentual. Por exemplo, se você atualizar cinco instâncias com um percentual mínimo de `InService` igual a 50, pelo menos três instâncias deverão estar no estado `InService`. Se uma instância não migrar para o estado `InService` em até uma hora, o CloudFormation entenderá que a instância não foi atualizada.  
Configurar `MinActiveInstancesPercent` em seu `UpdatePolicy` também afetará as instâncias iniciadas quando a propriedade `DesiredCapacity` do recurso `AWS::AutoScaling::AutoScalingGroup` é definida como um valor maior do que a capacidade desejada atual desse grupo do Auto Scaling.  
*Padrão*: `100`  
*Tipo*: inteiro  
*Obrigatório*: não

`MinInstancesInService`  <a name="cfn-attributes-updatepolicy-rollingupdate-mininstancesinservice"></a>
Especifica o número mínimo de instâncias que devem estar em serviço dentro do grupo de Auto Scaling enquanto o CloudFormation atualiza as instâncias antigas. Esse valor deve ser menor que o [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) do grupo do Auto Scaling.  
Recomendamos definir o valor da propriedade `MinInstancesInService` como pelo menos o [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) do grupo do Auto Scaling. Isso evita possíveis problemas de disponibilidade durante uma atualização contínua devido a 0 instâncias que atendem ao tráfego de clientes. 
*Padrão*: `0`  
*Tipo*: inteiro  
*Obrigatório*: não

`MinSuccessfulInstancesPercent`  <a name="cfn-attributes-updatepolicy-rollingupdate-minsuccessfulinstancespercent"></a>
Especifica que porcentagem de instâncias em uma atualização sem interrupção do Auto Scaling deve sinalizar sucesso para que uma atualização seja bem-sucedida. É possível especificar um valor de 0 a 100. O CloudFormation arredonda para o décimo mais próximo de um percentual. Por exemplo, se você atualizar cinco instâncias com uma porcentagem mínima de êxito de `50`, três instâncias deverão sinalizar sucesso. Se uma instância não enviar um sinal no tempo especificado na propriedade `PauseTime`, o CloudFormation entenderá que a instância não foi atualizada.  
Recomendamos definir a propriedade `MinSuccessfulInstancesPercent` com um valor maior do que 0. Quando a propriedade `MinSuccessfulInstancesPercent` estiver definida como 0, o CloudFormation esperará que 0% das instâncias de capacidade estejam em um estado `InService`. O `MinSuccessfulInstancesPercent` retornará imediatamente e antes de considerar o status do grupo do Auto Scaling como `UPDATE_COMPLETE` para passar para os recursos subsequentes que são definidos no modelo da pilha. Se outros grupos do Auto Scaling estiverem definidos no modelo do CloudFormation, eles serão atualizados simultaneamente. Quando todos os grupos do Auto Scaling são implantados de uma só vez com 0% das instâncias de capacidade em um estado `InService`, você terá problemas de disponibilidade, pois nenhuma instância atenderá ao tráfego do cliente.  
*Padrão*: `100`  
*Tipo*: inteiro  
*Obrigatório*: não

`PauseTime`  <a name="cfn-attributes-updatepolicy-rollingupdate-pausetime"></a>
A quantidade de tempo que o CloudFormation pausa após fazer uma alteração em um lote de instâncias para dar a elas tempo para iniciar aplicações de software.   
Especifique `PauseTime` no formato de duração [ISO8601](https://en.wikipedia.org/wiki/ISO_8601#Durations) (no formato `PT{{#}}H{{#}}M{{#}}S`, em que cada {{\#}} é o número de horas, minutos e segundos, respectivamente). O `PauseTime` máximo é de uma hora (`PT1H`).  
Quando `WaitOnResourceSignals` está definido como `true`, `PauseTime` atua como um valor de tempo limite. Ele determina o tempo máximo que o CloudFormation espera para receber o número necessário de sinais válidos das instâncias que estão sendo substituídas durante uma atualização contínua e das novas instâncias que estão sendo adicionadas, aumentando a propriedade [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) do recurso `AWS::AutoScaling::AutoScalingGroup`. Se `PauseTime` for excedido antes de o CloudFormation receber os sinais esperados, a atualização falhará. Para ter os melhores resultados, especifique um período que garanta às aplicações tempo suficiente para inicializar. Se a atualização precisar ser revertida, um curto `PauseTime` pode fazer com que a reversão falhe.
*Padrão*: `PT5M` (5 minutos) quando a propriedade `WaitOnResourceSignals` está definida como `true`. Caso contrário, nenhum valor padrão será definido.   
*Tipo:* string  
*Obrigatório*: não

`SuspendProcesses`  <a name="cfn-attributes-updatepolicy-rollingupdate-suspendprocesses"></a>
Especifica os processos do Auto Scaling a serem suspensos durante uma atualização de pilha. A suspensão de processos impede que o Auto Scaling interfira na atualização da pilha. Por exemplo, você pode suspender alarmes para que o Amazon EC2 Auto Scaling não inicie políticas de escalabilidade associadas a um alarme. Para valores válidos, consulte [Tipos de processos](https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-suspend-resume-processes.html#process-types) no *Guia do usuário do Amazon EC2 Auto Scaling*.  
*Padrão*: não especificado  
*Tipo*: Lista de processos de Auto Scaling  
*Obrigatório*: não

`WaitOnResourceSignals`  <a name="cfn-attributes-updatepolicy-rollingupdate-waitonresourcesignals"></a>
Especifica se o CloudFormation aguarda por sinais de sucesso de novas instâncias antes de continuar a atualização. O CloudFormation aguarda a duração `PauseTime` especificada por sinais de sucesso.  
Para sinalizar o grupo do Auto Scaling, use o script auxiliar [cfn-signal](cfn-signal.md). Para grupos do Auto Scaling associados ao Elastic Load Balancing, considere adicionar uma verificação de integridade para garantir que as instâncias estejam íntegras antes de sinalizar o sucesso usando o script auxiliar [cfn-init](cfn-init.md). Para obter um exemplo, consulte o comando `verify_instance_health` nos modelos de amostras para atualizações cumulativas do Amazon EC2 Auto Scaling em nosso [repositório do GitHub](https://github.com/aws-cloudformation/aws-cloudformation-templates/tree/main/AutoScaling).  
*Padrão*: `false`  
*Tipo*: booliano  
*Obrigatório:* condicional. Se você especificar a propriedade `MinSuccessfulInstancesPercent`, a propriedade `WaitOnResourceSignals` deverá ser definida como `true`.

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

Para especificar como o CloudFormation lida com atualizações das propriedades `MinSize`, `MaxSize` e `DesiredCapacity` quando o recurso `AWS::AutoScaling::AutoScalingGroup` tem uma ação agendada associada, use a política de `AutoScalingScheduledAction`.

Com as ações programadas, as propriedades de tamanho de um grupo do Auto Scaling podem mudar a qualquer momento. Quando você atualiza uma pilha com um grupo de Auto Scaling e uma ação programada, o CloudFormation sempre define os valores das propriedades de tamanho do seu grupo de Auto Scaling como os valores definidos no recurso `AWS::AutoScaling::AutoScalingGroup` do seu modelo, mesmo que uma ação programada esteja em vigor.

Se você não quiser que o CloudFormation altere os valores das propriedades de tamanho do grupo quando tiver uma ação programada em vigor, use a política de atualização `AutoScalingScheduledAction` e defina `IgnoreUnmodifiedGroupSizeProperties` como `true` para impedir que o CloudFormation altere as propriedades `MinSize`, `MaxSize` ou `DesiredCapacity`, a menos que esses valores tenham sido modificados no seu modelo.



### Sintaxe
<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}}
```

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

`IgnoreUnmodifiedGroupSizeProperties`  <a name="cfn-attributes-updatepolicy-scheduledactions-ignoreunmodifiedgroupsizeproperties"></a>
Se `true`, o CloudFormation ignorará as diferenças nas propriedades de tamanho do grupo entre o grupo do Auto Scaling atual e o grupo do Auto Scaling descrito no recurso `AWS::AutoScaling::AutoScalingGroup` do seu modelo durante uma atualização de pilha. Se você modificar qualquer valor da propriedade de tamanho do grupo do modelo, o CloudFormation usará os valores modificados e atualizará o grupo do Auto Scaling.  
Essa propriedade é ignorada durante a reversão de uma pilha.
*Padrão*: `false`  
*Tipo*: booliano  
*Obrigatório*: não

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

Para modificar os estilhaços de um grupo de replicação, adicionando ou removendo estilhaços, em vez de substituir todo o recurso [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html), utilize a política de atualização `UseOnlineResharding`.

Se `UseOnlineResharding` estiver definido como `true`, você poderá atualizar as propriedades `NumNodeGroups` e `NodeGroupConfiguration` do recurso `AWS::ElastiCache::ReplicationGroup` e o CloudFormation atualizará essas propriedades sem interrupção. Quando `UseOnlineResharding` estiver definido como `false`, ou não estiver especificado, a atualização das propriedades `NumNodeGroups` e `NodeGroupConfiguration` fará com que o CloudFormation substitua todo o recurso de `AWS::ElastiCache::ReplicationGroup`.

A política de atualização de `UseOnlineResharding` não tem propriedades.

Coisas a considerar ao definir a política de atualização de `UseOnlineResharding` para `true`:
+ É altamente recomendável que você execute as atualizações para as propriedades de `NumNodeGroups` e `NodeGroupConfiguration` como sendo as únicas atualizações em uma determinada operação de atualização da pilha.

  A atualização da configuração do grupo de nós de um grupo de replicação é uma operação com uso intensivo de recursos. Se uma atualização de pilha falhar, o CloudFormation não reverterá as alterações na configuração de grupo de nós de um grupo de replicação. No entanto, o CloudFormation reverterá quaisquer outras propriedades que foram alteradas como parte da operação de atualização que falhou.
+ Todas as atualizações de grupos de nós exigem a identificação de todos os grupos de nós.

  Se você especificar a propriedade de `NodeGroupConfiguration`, precisará especificar também o NodeGroupId para a configuração de cada grupo de nós para que o CloudFormation atualize o número de nós sem interrupção.

  Ao criar um grupo de replicação, se você não especificar um ID para cada grupo de nós, o ElastiCache gerará automaticamente um ID para cada grupo de nós. Para atualizar o grupo de replicação sem interrupção, use o console do ElastiCache ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) ou [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) para recuperar os IDs para todos os grupos de nós do grupo de replicações. Em seguida, especifique o ID para cada grupo de nós no seu modelo de pilha antes de tentar adicionar ou remover estilhaços.
**nota**  
Como uma prática recomendada, ao criar um grupo de replicação em um modelo de pilha, inclua um ID para cada grupo de nós que você especificar.

  Além disso, a atualização do número de nós sem interrupção requer que você tenha especificado com precisão as propriedades `PrimaryAvailabilityZone`, `ReplicaAvailabilityZones` e `ReplicaCount` para cada `NodeGroupConfiguration` também. Você pode usar o console ElastiCache ([https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)) ou [DescribeReplicationGroups](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_DescribeReplicationGroups.html) para recuperar os valores reais para cada grupo de nós e compará-los com os valores no seu modelo de pilha. Você pode atualizar os valores de propriedades dos groups de nós como uma atualização de pilha separada ou como parte da mesma atualização da pilha que altera o número de grupos de nós.

  Quando você usa uma política de atualização de `UseOnlineResharding` para atualizar o número de grupos de nós sem interrupção, o ElastiCache distribui uniformemente os espaços de chave entre o número especificado de slots. Isso não pode ser atualizado mais tarde. Portanto, depois de atualizar o número de grupos de nós dessa forma, você deve remover o valor especificado para a propriedade `Slots` de cada `NodeGroupConfiguration` do modelo de pilha, uma vez que ele já não reflete mais os valores reais em cada grupo de nós.
+ Os resultados reais da remoção do grupo de nós podem variar

  Quando você especifica um valor de `NumNodeGroups` menor que o número atual de grupos de nós, o CloudFormation instrui o ElastiCache para remover o maior número de grupos de nós possível para alcançar o número especificado de nós. No entanto, o ElastiCache pode não ser sempre capaz de remover o número desejado de grupos de nós. Caso o ElastiCache não possa remover o número desejado de grupos de nós, o CloudFormation gera um evento de pilha com alertas sobre isso. Nos casos em que o ElastiCache não puder remover *quaisquer* grupos de nós, a atualização do recurso CloudFormation falhará.

Para obter mais informações sobre como modificar grupos de replicação, consulte [ModifyReplicationGroupShardConfiguration](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyReplicationGroupShardConfiguration.html) no *Amazon ElastiCache API Reference*.

### Sintaxe
<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 atualizar um domínio do OpenSearch Service para uma nova versão do OpenSearch ou do Elasticsearch, em vez de substituir todo o recurso [AWS::OpenSearchService::Domain](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opensearchservice-domain.html) ou [AWS::Elasticsearch::Domain](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticsearch-domain.html) use a política de atualização `EnableVersionUpgrade`.

Se `EnableVersionUpgrade` estiver definida como `true`, você poderá atualizar a propriedade `EngineVersion` do recurso `AWS::OpenSearchService::Domain` (ou a propriedade `ElasticsearchVersion` do recurso `AWS::Elasticsearch::Domain` legado) e o CloudFormation atualizará essa propriedade sem interrupções.. Quando `EnableVersionUpgrade` estiver definida como `false` ou não estiver especificada, a atualização da propriedade `EngineVersion` ou `ElasticsearchVersion` fará com que o CloudFormation substitua o recurso `AWS::OpenSearchService::Domain`/`AWS::Elasticsearch::Domain` inteiro.

A política de atualização de `EnableVersionUpgrade` não tem propriedades.

Para obter mais informações, consulte [Upgrading OpenSearch Service domains](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/version-migration.html) no Amazon OpenSearch Service Developer Guide.

### Sintaxe
<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 executar uma implantação do CodeDeploy quando a versão for alterada em um recurso de `AWS::Lambda::Alias` use a política de atualização `CodeDeployLambdaAliasUpdate`.

### Sintaxe
<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}}
```

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

`AfterAllowTrafficHook`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-afterallowtraffichook"></a>
O nome da função do Lambda a ser executada depois que o roteamento do tráfego for concluído.  
*Obrigatório*: não  
*Tipo:* string

`ApplicationName`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-applicationname"></a>
O nome da aplicação do CodeDeploy.  
*Obrigatório*: Sim  
*Tipo:* string

`BeforeAllowTrafficHook`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-beforeallowtraffichook"></a>
O nome da função do Lambda a ser executada antes do início do roteamento do tráfego.  
*Obrigatório*: não  
*Tipo:* string

`DeploymentGroupName`  <a name="cfn-attributes-updatepolicy-codedeploylambdaaliasupdate-deploymentgroupname"></a>
O nome do grupo de implantação do CodeDeploy. Esse é o local em que a política de mudança de tráfego é definida.  
*Obrigatório*: Sim  
*Tipo:* string

Para obter um exemplo que especifica o atributo `UpdatePolicy` para um recurso `AWS::Lambda::Alias`, consulte [Política de atualização de alias do Lambda](#aws-resource-lambda-alias-example).

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

Os exemplos a seguir mostram como adicionar uma política de atualização a um grupo do Auto Scaling e como manter a disponibilidade ao atualizar metadados.

### Adicionar uma `UpdatePolicy` a um grupo do Auto Scaling
<a name="aws-attribute-updatepolicy-example-1"></a>

O exemplo a seguir mostra como adicionar uma política de atualização. Durante uma atualização, o grupo do Auto Scaling atualiza as instâncias em lotes de dois e mantém no mínimo uma instância em serviço. Como o sinalizador `WaitOnResourceSignals` está definido, o grupo de Auto Scaling aguarda pelas novas instâncias que serão adicionadas ao grupo. As novas instâncias devem sinalizar ao grupo do Auto Scaling antes que ele atualize o próximo lote de instâncias.

#### 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>

O exemplo a seguir declara uma política que impõe um grupo do Auto Scaling associado a ser substituído durante uma atualização. Para que a atualização seja bem-sucedida, uma porcentagem de instâncias (especificada pelo parâmetro `MinSuccessfulPercentParameter`) deve sinalizar o sucesso dentro do período 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'
```

### Manter a disponibilidade ao atualizar os metadados do script auxiliar cfn-init
<a name="aws-attribute-updatepolicy-cfn-init-metadata"></a>

Ao instalar aplicações de software em instâncias, você pode usar a chave de metadados [`AWS::CloudFormation::Init`](aws-resource-init.md) e o script de ajuda [cfn-init](cfn-init.md) para inicializar as instâncias no grupo do Auto Scaling. O CloudFormation instala os pacotes, executa os comandos e realiza outras ações de inicialização descritas nos metadados.

Ao atualiza apenas os metadados (por exemplo, atualizar um pacote para outra versão), você pode usar o daemon de ajuda [cfn-hup](cfn-hup.md) para detectar e aplicar as atualizações. No entanto, o daemon `cfn-hup` será executado de forma independente em cada instância. Se o daemon for executado ao mesmo tempo em todas as instâncias, sua aplicação ou serviço poderá estar indisponível durante a atualização. Para garantir a disponibilidade, force uma atualização sem interrupção para que o CloudFormation atualize as instâncias um lote por vez.

**Importante**  
Forçar uma atualização sem interrupção requer que o CloudFormation crie uma instância nova e, em seguida, exclua a antiga. Todas as informações armazenadas na instância antiga serão perdidas.

Para forçar uma atualização sem interrupção, altere o ID lógico do recurso de configuração de execução e, em seguida, atualize a pilha e quaisquer referências que apontam para o ID lógico original (como o grupo do Auto Scaling associado). O CloudFormation aciona uma atualização sem interrupção no grupo do Auto Scaling, substituindo todas as instâncias.

### Modelo 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" : {
    ...
    }
  }
}
```

### Atualização do ID lógico
<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 atualização de alias do Lambda
<a name="aws-resource-lambda-alias-example"></a>

O exemplo a seguir especifica o atributo `UpdatePolicy` para um recurso `AWS::Lambda::Alias`. Todos os detalhes da implantação são definidos pela aplicação e pelo grupo de implantação passados para a 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
```