

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migre AWS CloudFormation pilhas para modelos de lançamento
<a name="migrate-launch-configurations-with-cloudformation"></a>

Você pode migrar seus modelos de CloudFormation pilha existentes das configurações de lançamento para os modelos de lançamento. Para fazer isso, adicione um modelo de execução diretamente a um modelo de pilha existente e, em seguida, associe o modelo de execução ao grupo do Auto Scaling no modelo de pilha. Em seguida, use seu modelo modificado para atualizar sua pilha. 

Ao migrar para modelos de lançamento, este tópico economiza seu tempo ao fornecer instruções para reescrever as configurações de lançamento em seus modelos de CloudFormation pilha como modelos de lançamento. Para obter mais informações sobre migração de configurações de lançamento para modelos de execução, consulte [Migre seus grupos do Auto Scaling para modelos de execução](migrate-to-launch-templates.md).

**Topics**
+ [Encontre grupos do Auto Scaling que usam uma configuração de execução](#find-auto-scaling-groups-to-migrate)
+ [Atualizar uma pilha para usar um modelo de execução](#update-stack-to-use-launch-template)
+ [Compreender atualização de comportamentos de recursos da pilha](#understand-update-behavior)
+ [Rastrear a migração](#track-the-migration)
+ [Referência do mapeamento de configuração de execução](#launch-configuration-mapping-reference)

## Encontre grupos do Auto Scaling que usam uma configuração de execução
<a name="find-auto-scaling-groups-to-migrate"></a>

**Para localizar grupos do Auto Scaling que usam uma configuração de execução**
+ Use o [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html)comando a seguir para listar os nomes dos grupos do Auto Scaling que estão usando configurações de inicialização na região especificada. Inclua a `--filters` opção de restringir os resultados aos grupos associados a uma CloudFormation pilha (filtrando pela chave da `aws:cloudformation:stack-name` tag). 

  ```
  aws autoscaling describe-auto-scaling-groups --region REGION \
    --filters Name=tag-key,Values=aws:cloudformation:stack-name \
    --query 'AutoScalingGroups[?LaunchConfigurationName!=`null`].AutoScalingGroupName'
  ```

  Veja a seguir um exemplo de saída.

  ```
  [
      "{stack-name}-group-1",
      "{stack-name}-group-2",
      "{stack-name}-group-3"
  ]
  ```

  Você pode encontrar outros AWS CLI comandos úteis para encontrar grupos do Auto Scaling para migrar e filtrar a saída. [Migre seus grupos do Auto Scaling para modelos de execução](migrate-to-launch-templates.md)

**Importante**  
Se os recursos da sua pilha tiverem `AWSEB` em seu nome, isso significa que eles foram criados por meio AWS Elastic Beanstalk de. Nesse caso, é necessário atualizar o ambiente do Beanstalk para que o Elastic Beanstalk remova a configuração de execução e a substitua por um modelo de execução.

## Atualizar uma pilha para usar um modelo de execução
<a name="update-stack-to-use-launch-template"></a>

Siga as etapas desta seção para fazer o seguinte:
+ Reescreva a configuração de execução como um modelo de execução usando as propriedades equivalentes do modelo de execução. 
+ Associe o novo modelo de execução ao grupo do Auto Scaling. 
+ Implemente essas atualizações.

**Para modificar o modelo da pilha e atualizar a pilha**

1. Siga os mesmos procedimentos gerais para modificar o modelo de pilha descritos em [Modificar um modelo de pilha](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-get-template.html) no *Guia do usuário AWS CloudFormation *.

1. Reescreva a configuração de execução como um modelo de execução. Veja o exemplo a seguir: 

   **Exemplo: uma configuração de execução simples**

   ```
   ---
   Resources:
     myLaunchConfig: 
       Type: AWS::AutoScaling::LaunchConfiguration
       Properties: 
         ImageId: ami-02354e95b3example
         InstanceType: t3.micro
         SecurityGroups:
           - !Ref EC2SecurityGroup
         KeyName: MyKeyPair
         BlockDeviceMappings: 
           - DeviceName: /dev/xvda
             Ebs: 
               VolumeSize: 150
               DeleteOnTermination: true
         UserData: 
           Fn::Base64: !Sub |
             #!/bin/bash -xe
             yum install -y aws-cfn-bootstrap
             /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource myASG --region ${AWS::Region}
   ```

   **Exemplo: O modelo de execução equivalente**

   ```
   ---
   Resources:
     myLaunchTemplate:
       Type: AWS::EC2::LaunchTemplate
       Properties:
         LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
         LaunchTemplateData:
           ImageId: ami-02354e95b3example
           InstanceType: t3.micro
           SecurityGroupIds:
             - Ref! EC2SecurityGroup
           KeyName: MyKeyPair
           BlockDeviceMappings: 
             - DeviceName: /dev/xvda
               Ebs: 
                 VolumeSize: 150
                 DeleteOnTermination: true
           UserData: 
             Fn::Base64: !Sub |
               #!/bin/bash -x
               yum install -y aws-cfn-bootstrap
               /opt/aws/bin/cfn-signal -e $? --stack ${AWS::StackName} --resource myASG --region ${AWS::Region}
   ```

   Para obter informações de referência sobre todas as propriedades que o Amazon EC2 suporta, consulte o [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)Guia do *AWS CloudFormation usuário*. 

   Observe como o modelo de execução inclui a propriedade `LaunchTemplateName` com um valor de `!Sub ${AWS::StackName}-launch-template`. Isso é necessário se você quiser que o nome do modelo de execução inclua o nome da pilha.

1. Se a propriedade `IamInstanceProfile` estiver presente em sua configuração de execução, será necessário convertê-la em uma estrutura e especificar o nome ou o ARN do perfil de instância. Para ver um exemplo, consulte [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html). 

1. Se as propriedades,`AssociatePublicIpAddress` `InstanceMonitoring` ou `PlacementTenancy` estiverem presentes em sua configuração de execução, será necessário convertê-las em uma estrutura. Para obter exemplos, consulte [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html). 

   Uma exceção é quando o valor da propriedade `MapPublicIpOnLaunch` nas sub-redes que você usou para seu grupo do Auto Scaling coincide com o valor da propriedade `AssociatePublicIpAddress` em sua configuração de execução. Neste caso, você pode ignorar a propriedade`AssociatePublicIpAddress`. A `AssociatePublicIpAddress` propriedade só é usada para substituir a `MapPublicIpOnLaunch` propriedade e alterar se as instâncias recebem um IPv4 endereço público na inicialização. 

1. Você pode copiar grupos de segurança da propriedade `SecurityGroups` para um dos dois lugares em seu modelo de execução. Normalmente, você copia os grupos de segurança para a propriedade`SecurityGroupIds`. No entanto, se você criar uma estrutura `NetworkInterfaces` em seu modelo de execução para especificar a propriedade,`AssociatePublicIpAddress` será necessário copiar os grupos de segurança para a propriedade `Groups` da interface de rede.

1. Se alguma estrutura `BlockDeviceMapping` estiver presente em sua configuração de execução com `NoDevice` definido como,`true` será necessário especificar uma string vazia para `NoDevice` em seu modelo de execução para que o Amazon EC2 omita o dispositivo.

1. Se a propriedade `SpotPrice` estiver presente em sua configuração de execução, recomendamos que você a omita do seu modelo de execução. Suas instâncias spot serão executadas pelo preço spot atual. Este preço nunca excederá o preço sob demanda.

   Para solicitar instâncias spot, você tem duas opções mutuamente exclusivas:
   + A primeira é usar a estrutura `InstanceMarketOptions` em seu modelo de execução (não recomendado). Para obter mais informações, consulte [AWS::EC2::LaunchTemplate InstanceMarketOptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-instancemarketoptions.html)o *Guia AWS CloudFormation do usuário*.
   + A outra é adicionar uma estrutura `MixedInstancesPolicy` ao seu grupo do Auto Scaling. Isto oferece mais opções de como você faz a solicitação. Uma solicitação de instância spot em seu modelo de execução não é compatível com mais de uma seleção de tipo de instância por grupo do Auto Scaling. No entanto, uma política de instâncias mistas oferece suporte a mais de uma seleção de tipo de instância por grupo do Auto Scaling. As solicitações de Instância spot se beneficiam de ter mais de um tipo de instância para escolher. Para obter mais informações, consulte [AWS::AutoScaling::AutoScaling MixedInstancesPolicyAWS::AutoScaling::AutoScalingGrupo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-autoscaling-autoscalinggroup-mixedinstancespolicy.html) no *Guia AWS CloudFormation do usuário*.

1. Remova a `LaunchConfigurationName` propriedade do recurso [AWS::AutoScaling::AutoScalingAWS::AutoScaling::AutoScalingGrupo](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) . Adicione o modelo de execução em seu lugar.

   Nos exemplos a seguir, a função intrínseca [Ref](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) obtém o ID do [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)recurso com o ID lógico. `myLaunchTemplate` A [GetAtt](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-getatt.html)função obtém o número da versão mais recente (por exemplo,`1`) do modelo de lançamento da `Version` propriedade.

   **Exemplo: sem uma política de instâncias mistas**

   ```
   ---
   Resources:
     myASG:
       Type: AWS::AutoScaling::AutoScalingGroup
       Properties:
         LaunchTemplate:
           LaunchTemplateId: !Ref myLaunchTemplate
           Version: !GetAtt myLaunchTemplate.LatestVersionNumber
         ...
   ```

   **Exemplo: com uma política de instâncias mistas**

   ```
   ---
   Resources:
     myASG:
       Type: AWS::AutoScaling::AutoScalingGroup
       Properties:        
         MixedInstancesPolicy:
           LaunchTemplate:
             LaunchTemplateSpecification:
               LaunchTemplateId: !Ref myLaunchTemplate
               Version: !GetAtt myLaunchTemplate.LatestVersionNumber
         ...
   ```

   Para obter informações de referência sobre todas as propriedades que o Amazon EC2 Auto Scaling suporta [AWS::AutoScaling::AutoScaling, AWS::AutoScaling::AutoScaling](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) Group Group *AWS CloudFormation no* Guia do usuário.

1. Quando você estiver pronto para implantar essas atualizações, siga os CloudFormation procedimentos para atualizar a pilha com seu modelo de pilha modificado. Para obter mais informações, consulte [Modificar um modelo de pilha](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-get-template.html) no *Guia do usuário AWS CloudFormation *. 

## Compreender atualização de comportamentos de recursos da pilha
<a name="understand-update-behavior"></a>

CloudFormation atualiza os recursos da pilha comparando as alterações entre o modelo atualizado que você fornece e as configurações de recursos que você descreveu na versão anterior do seu modelo de pilha. As configurações de recursos que não foram alteradas permanecem inalteradas durante o processo de atualização.

CloudFormation suporta o [UpdatePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html)atributo para grupos de Auto Scaling. Durante uma atualização, se `UpdatePolicy` estiver definido como`AutoScalingRollingUpdate`, CloudFormation substitui `InService` as instâncias após você executar as etapas desse procedimento. Se `UpdatePolicy` estiver definido como`AutoScalingReplacingUpdate`, CloudFormation substitui o grupo Auto Scaling e sua piscina aquecida (se houver).

Se você não especificou um `UpdatePolicy` atributo para seu grupo de Auto Scaling, o modelo de lançamento é verificado quanto à exatidão, mas CloudFormation não implanta nenhuma alteração nas instâncias do grupo Auto Scaling. Todas as novas instâncias receberão seu modelo de execução, mas as instâncias existentes continuarão a ser executadas com a configuração de execução com a qual foram executadas originalmente (apesar da inexistência da configuração de execução). A exceção é quando você altera suas opções de compra, por exemplo, adicionando uma política de instâncias mistas. Neste caso, seu grupo do Auto Scaling substitui gradualmente as instâncias existentes por novas instâncias para corresponder às novas opções de compra.

Se você precisar reverter uma alteração para passar de configurações de execução para modelos de execução, certifique-se de testar a operação de reversão.

## Rastrear a migração
<a name="track-the-migration"></a>

**Para rastrear a migração**

1. No [console do CloudFormation](https://console.aws.amazon.com/cloudformation), selecione a pilha que você atualizou e, em seguida, escolha a guia **Eventos** para visualizar eventos de pilhas.

1. Para atualizar a lista de eventos com os eventos mais recentes, escolha o botão Atualizar no CloudFormation console.

1. Enquanto sua pilha estiver sendo atualizada, você notará vários eventos para cada atualização de recurso. Se você ver uma exceção na coluna **Motivo do status** que indica um problema ao tentar criar o modelo de execução, consulte [Solucionar problemas do Amazon EC2 Auto Scaling: modelos de execução](ts-as-launch-template.md) para as possíveis causas.

1. (Opcional) Dependendo do uso do atributo,`UpdatePolicy` você pode monitorar o progresso do seu grupo do Auto Scaling na [página de grupos do Auto Scaling](https://console.aws.amazon.com/ec2/v2/home?#AutoScalingGroups) do console do Amazon EC2. Selecione o grupo do Auto Scaling. Na guia **Activity** (Atividade), em **Activity history** (Histórico de atividades), a coluna **Status** (Status) mostra se o seu grupo do Auto Scaling iniciou ou encerrou instâncias com êxito, ou se a ação de escalabilidade ainda está em andamento. 

1. Quando a atualização da pilha estiver concluída, CloudFormation emite um evento de `UPDATE_COMPLETE` pilha. Para obter mais informações, consulte [Monitorar o andamento de uma atualização de pilha](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-monitor-stack.html) no *Guia do usuário AWS CloudFormation *. 

1. Depois que a atualização da pilha estiver concluída, abra a [página de modelos de execução](https://console.aws.amazon.com/ec2/v2/#LaunchTemplates) e a [página de configurações de execução](https://console.aws.amazon.com/ec2/v2/home?#LaunchConfigurations) do console do Amazon EC2. Você notará que um novo modelo de execução foi criado e a configuração de execução foi excluída. 

## Referência do mapeamento de configuração de execução
<a name="launch-configuration-mapping-reference"></a>

Para fins de referência, a tabela a seguir lista todas as propriedades de nível superior no [AWS::AutoScaling::LaunchConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html)recurso com suas propriedades correspondentes no [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)recurso.


| Propriedade da fonte de configuração de execução | Propriedade target do modelo de execução | 
| --- | --- | 
| AssociatePublicIpAddress | NetworkInterfaces.AssociatePublicIpAddress | 
| BlockDeviceMappings | BlockDeviceMappings | 
| ClassicLinkVPCId | Não disponível¹ | 
| ClassicLinkVPCSecurityGroups | Não disponível¹ | 
| EbsOptimized | EbsOptimized | 
| IamInstanceProfile | Especifique IamInstanceProfile.Arn ou,IamInstanceProfile.Name mas não ambos  | 
| ImageId | ImageId | 
| InstanceId | InstanceId | 
| InstanceMonitoring | Monitoring.Enabled | 
| InstanceType | InstanceType | 
| KernelId | KernelId | 
| KeyName | KeyName | 
| LaunchConfigurationName | LaunchTemplateName | 
| MetadataOptions | MetadataOptions | 
| PlacementTenancy | Placement.Tenancy  | 
| RamDiskId | RamDiskId | 
| SecurityGroups | Especifique SecurityGroupIds ou,NetworkInterfaces.Groups mas não ambos | 
| SpotPrice | InstanceMarketOptions.SpotOptions.MaxPrice | 
| UserData | UserData | 

¹ As propriedades `ClassicLinkVPCId` e `ClassicLinkVPCSecurityGroups` não estão disponíveis para uso em um modelo de execução porque o EC2-Classic não está mais disponível.