

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á.

# Migrar AWS CloudFormation pilhas para lançar modelos
<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 execução em seus modelos de CloudFormation pilha como modelos de execução. 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 comando [describe-auto-scaling-groups](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/describe-auto-scaling-groups.html) a seguir para listar os nomes dos grupos do Auto Scaling que estão usando configurações de execuçã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 suportadas pelo Amazon EC2, consulte  [ AWS: :EC2:: LaunchTemplate ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)  *AWS CloudFormation * 

   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 propriedade `AssociatePublicIpAddress` só é usada para substituir a propriedade `MapPublicIpOnLaunch` para alterar se as instâncias recebem um endereço IPv4 público na execuçã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. Esse preço nunca excederá o On-Demand preço.

   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)  no Guia do usuário. *AWS CloudFormation *
   + 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:: AutoScalingGroup MixedInstancesPolicy ](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 AutoScalingGroup [https://docs.aws.amazon.com/en_us/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html](https://docs.aws.amazon.com/en_us/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html)AWS::AutoScaling:::. Adicione o modelo de execução em seu lugar.

   Nos exemplos a seguir, a função [ intrínseca ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) Ref obtém o ID do recurso  [ AWS: :EC2:: LaunchTemplate ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)  `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, consulte  [AWS::AutoScaling::: AutoScalingGroup ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html)  no Guia do *AWS CloudFormation usuário. *

1. Quando 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 mudanças 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. Para substituir as instâncias existentes depois de concluir esse procedimento, adicione um `UpdatePolicy` atributo à sua pilha. Defina a política de atualização como`AutoScalingInstanceRefresh`. Para obter mais informações, consulte a [ AutoScalingInstanceRefresh política ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html#cfn-attributes-updatepolicy-instancerefresh) no Guia *AWS CloudFormation do usuário*.

Se você não especificou um `UpdatePolicy` atributo para seu grupo de Auto Scaling, o modelo de execução é 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 de atualização 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 recurso  [AWS::AutoScaling:: LaunchConfiguration ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-launchconfiguration.html)  recurso  [ AWS: :EC2:: LaunchTemplate ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html)  


| 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 `ClassicLinkVPCSecurityGroups` propriedades `ClassicLinkVPCId` e não estão disponíveis para uso em um modelo de lançamento porque EC2-Classic não estão mais disponíveis.