

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

# Exemplos de criação e gerenciamento de modelos de lançamento com o AWS CLI
<a name="examples-launch-templates-aws-cli"></a>

Você pode criar e gerenciar modelos de lançamento por meio de Console de gerenciamento da AWS, AWS Command Line Interface (AWS CLI) ou SDKs. Esta seção mostra exemplos de criação e gerenciamento de modelos de lançamento para o Amazon EC2 Auto Scaling a partir do. AWS CLI

**Topics**
+ [Exemplo de uso](#example-usage)
+ [Criar um modelo de execução básico](#example-simple-launch-template)
+ [Especificar etiquetas que marcam instâncias ao iniciar](#example-tag-instances)
+ [Especificar um perfil do IAM a ser transmitido às instâncias](#example-iam-profile)
+ [Atribuir um endereço IP público](#example-primary-network-interface)
+ [Especificar um script de dados do usuário que configura instâncias ao iniciar](#example-user-data)
+ [Especificar um mapeamento de dispositivos de blocos](#example-block-device-mapping)
+ [Especificar hosts dedicados para trazer licenças de software de fornecedores externos](#example-dedicated-hosts)
+ [Especificar uma interface de rede existente](#example-existing-eni-launch-template)
+ [Criar várias interfaces de rede](#example-multiple-efa-enabled-network-interfaces)
+ [Gerenciar modelos de execução](#launch-templates-additional-cli-commands)
+ [Atualizar um grupo do Auto Scaling para usar um modelo de execução](#update-asg-launch-template-cli)

## Exemplo de uso
<a name="example-usage"></a>

```
{
    "LaunchTemplateName": "my-template-for-auto-scaling",
    "VersionDescription": "test description",
    "LaunchTemplateData": {
        "ImageId": "ami-04d5cc9b88example",
        "InstanceType": "t2.micro",
        "SecurityGroupIds": [
            "sg-903004f88example"
        ], 
        "KeyName": "MyKeyPair",
        "Monitoring": {
            "Enabled": true
        },
        "Placement": {
            "Tenancy": "dedicated"
        },
        "CreditSpecification": {
            "CpuCredits": "unlimited"
        },
        "MetadataOptions": {
            "HttpTokens": "required",
            "HttpPutResponseHopLimit": 1,
            "HttpEndpoint": "enabled"
        }
    }
}
```

## Criar um modelo de execução básico
<a name="example-simple-launch-template"></a>

Para criar um modelo de execução básico, use o comando [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) da seguinte forma, com estas modificações: 
+ Substitua `ami-04d5cc9b88example` pelo ID da AMI a partir da qual as instâncias serão inicializadas.
+ Substitua `t2.micro` por um tipo de instância compatível com a AMI especificada.

Este exemplo cria um modelo de lançamento com o nome{{my-template-for-auto-scaling}}. Se as instâncias criadas por esse modelo de execução forem executadas em uma VPC padrão, elas receberão um endereço IP público por padrão. Se as instâncias forem executadas em uma VPC não padrão, elas não receberão um endereço IP público por padrão.

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

Para obter mais informações sobre JSON-formatted parâmetros de cotação, consulte [ Usando aspas com cadeias de caracteres no Guia do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html) *AWS Command Line Interface usuário. *

Como alternativa, você pode especificar os JSON-formatted parâmetros em um arquivo de configuração.

O exemplo a seguir cria um modelo de execução básico, fazendo referência a um arquivo de configuração para valores de parâmetro de modelo de execução. 

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data file://config.json
```

Conteúdo de `config.json`:

```
{ 
    "ImageId":"{{ami-04d5cc9b88example}}",
    "InstanceType":"{{t2.micro}}"
}
```

## Especificar etiquetas que marcam instâncias ao iniciar
<a name="example-tag-instances"></a>

O exemplo a seguir adiciona uma tag (por exemplo, `purpose=webserver`) a instâncias na execução.

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"{{purpose}}","Value":"{{webserver}}"}]}],"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

**nota**  
Se você especificar tags de instância em seu modelo de execução e optar por propagar tags de seu grupo do Auto Scaling para suas instâncias, todas as tags serão mescladas. Se a mesma chave da etiqueta for especificada para uma etiqueta no modelo de execução e uma etiqueta no grupo do Auto Scaling, então, o valor da etiqueta do grupo terá precedência. 

## Especificar um perfil do IAM a ser transmitido às instâncias
<a name="example-iam-profile"></a>

O exemplo a seguir especifica o nome do perfil da instância associada ao perfil do IAM a ser passado às instâncias na execução. Para obter mais informações, consulte [Perfis do IAM para aplicações que são executadas em instâncias do Amazon EC2](us-iam-role.md).

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
--launch-template-data '{"IamInstanceProfile":{"Name":"{{my-instance-profile}}"},"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

## Atribuir um endereço IP público
<a name="example-primary-network-interface"></a>

O exemplo [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) a seguir cria e configura o modelo de execução para atribuir endereços IP públicos a instâncias executadas em uma VPC não padrão. 

**nota**  
Quando você especificar uma interface de rede, especifique um valor para `Groups` que corresponda aos grupos de segurança da VPC nos quais seu grupo do Auto Scaling iniciará instâncias. Especifique as sub-redes da VPC como propriedades do grupo do Auto Scaling. 



```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":{{true}},"Groups":["{{sg-903004f88example}}"],"DeleteOnTermination":{{true}}}],"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

## Especificar um script de dados do usuário que configura instâncias ao iniciar
<a name="example-user-data"></a>

O exemplo a seguir especifica um script de dados do usuário como uma string codificada em base64 que configura instâncias na execução. O comando [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) exige dados do usuário com codificação base64.

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
--launch-template-data '{"UserData":"{{IyEvYmluL2Jhc...}}","ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

## Especificar um mapeamento de dispositivos de blocos
<a name="example-block-device-mapping"></a>

O exemplo [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) a seguir cria um modelo de execução com um mapeamento de dispositivo de bloco: um volume EBS de 22 gigabytes mapeado para `/dev/xvdcz`. O volume `/dev/xvdcz` usa o tipo de volume SSD de uso geral (gp2) e é excluído ao terminar a instância à qual ele está anexado. 

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"{{/dev/xvdcz}}","Ebs":{"VolumeSize":{{22}},"VolumeType":"{{gp2}}","DeleteOnTermination":{{true}}}}],"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

## Especificar hosts dedicados para trazer licenças de software de fornecedores externos
<a name="example-dedicated-hosts"></a>

Se você especificar locação de *host*, você pode especificar um grupo de recursos de host e uma configuração licenças de License Manager para trazer licenças de software qualificáveis de fornecedores externos. Em seguida, você pode usar as licenças em instâncias do EC2 usando o seguinte comando [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html).

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"{{arn}}"},"LicenseSpecifications":[{"LicenseConfigurationArn":"{{arn}}"}],"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

## Especificar uma interface de rede existente
<a name="example-existing-eni-launch-template"></a>

O seguinte exemplo de [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) configura a interface de rede primária para usar uma interface de rede existente.

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"{{eni-b9a5ac93}}","DeleteOnTermination":{{false}}}],"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

## Criar várias interfaces de rede
<a name="example-multiple-efa-enabled-network-interfaces"></a>

O seguinte exemplo de [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html) adiciona uma interface de rede secundária. A interface de rede primária tem um índice de dispositivo de 0, e a interface de rede secundária tem um índice de dispositivo de 1. 

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["{{sg-903004f88example}}"],"DeleteOnTermination":{{true}}},{"DeviceIndex":1,"Groups":["{{sg-903004f88example}}"],"DeleteOnTermination":{{true}}}],"ImageId":"{{ami-04d5cc9b88example}}","InstanceType":"{{t2.micro}}"}'
```

Se você usar um tipo de instância que ofereça suporte a várias placas de rede e a Elastic Fabric Adapters (EFAs), poderá adicionar uma interface secundária a uma placa de rede secundária e habilitar o EFA usando o seguinte comando [create-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template.html). Para obter mais informações, consulte [Adição de um EFA a um modelo de execução](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-efa.html#efa-launch-template) no *Guia do usuário do Amazon EC2*. 

```
aws ec2 create-launch-template --launch-template-name {{my-template-for-auto-scaling}} --version-description {{version1}} \
  --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["{{sg-7c2270198example}}"],"InterfaceType":"efa","DeleteOnTermination":{{true}}},{"NetworkCardIndex":{{1}},"DeviceIndex":{{1}},"Groups":["{{sg-7c2270198example}}"],"InterfaceType":"efa","DeleteOnTermination":{{true}}}],"ImageId":"{{ami-09d95fab7fexample}}","InstanceType":"{{p4d.24xlarge}}"}'
```

**Atenção**  
O tipo de instância p4d.24xlarge incorre em custos mais altos do que os outros exemplos desta seção. Para obter mais informações sobre Ipreços de instâncias P4d, consulte [Preços de instâncias P4d do Amazon EC2](https://aws.amazon.com/ec2/instance-types/p4/).

**nota**  
Anexar várias interfaces de rede da mesma sub-rede a uma instância pode introduzir roteamento assimétrico, especialmente em instâncias que us\~em uma variante do Linux que não seja da Amazon. Se você precisar desse tipo de configuração, deverá configurar a interface de rede secundária dentro do sistema operacional. Por exemplo, consulte [ Como posso fazer minha interface de rede secundária funcionar na minha instância do Ubuntu EC2? ](https://repost.aws/knowledge-center/ec2-ubuntu-secondary-network-interface)no Centro de AWS Conhecimento.

## Gerenciar modelos de execução
<a name="launch-templates-additional-cli-commands"></a>

 AWS CLI Isso inclui vários outros comandos que ajudam você a gerenciar seus modelos de lançamento. 

**Topics**
+ [Listar e descrever modelos de execução](#describe-launch-template-aws-cli)
+ [Criar uma versão de modelo de execução](#example-create-launch-template-version)
+ [Excluir uma versão de modelo de execução](#example-delete-launch-template-version)
+ [Excluir um modelo de execução](#example-delete-launch-template)

### Listar e descrever modelos de execução
<a name="describe-launch-template-aws-cli"></a>

Você pode usar dois AWS CLI comandos para obter informações sobre seus modelos de lançamento: [ describe-launch-templates e ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-templates.html) describe-launch-template-versions. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html) 

O comando [describe-launch-templates](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-templates.html) permite que você obtenha uma lista de qualquer um dos modelos de execução que você criou. Você pode usar uma opção para filtrar resultados em um nome de modelo de execução, tempo de criação, chave de tag ou combinação de chave-valor de tag. Esse comando retorna informações resumidas sobre qualquer um dos modelos de execução, incluindo o identificador de modelo de execução, a versão mais recente e a versão padrão. 

O exemplo a seguir fornece um resumo do modelo de execução especificado.

```
aws ec2 describe-launch-templates --launch-template-names {{my-template-for-auto-scaling}}
```

O seguinte é um exemplo de resposta.

```
{
    "LaunchTemplates": [
        {
            "LaunchTemplateId": "lt-068f72b729example",
            "LaunchTemplateName": "my-template-for-auto-scaling",
            "CreateTime": "2020-02-28T19:52:27.000Z",
            "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
            "DefaultVersionNumber": 1,
            "LatestVersionNumber": 1
        }
    ]
}
```

Se você não usar a opção `--launch-template-names` para limitar a saída a um modelo de execução, informações sobre todos os modelos de execução serão retornadas.

O seguinte comando [describe-launch-template-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-launch-template-versions.html) fornece informações que descrevem as versões do modelo de execução especificado.

```
aws ec2 describe-launch-template-versions --launch-template-id {{lt-068f72b729example}}
```

O seguinte é um exemplo de resposta.

```
{
    "LaunchTemplateVersions": [
        {
            "VersionDescription": "version1",
            "LaunchTemplateId": "lt-068f72b729example",
            "LaunchTemplateName": "my-template-for-auto-scaling",
            "VersionNumber": 1,
            "CreatedBy": "arn:aws:iam::123456789012:user/Bob",
            "LaunchTemplateData": {
                "TagSpecifications": [
                    {
                        "ResourceType": "instance",
                        "Tags": [
                            {
                                "Key": "purpose",
                                "Value": "webserver"
                            }
                        ]
                    }
                ],
                "ImageId": "ami-04d5cc9b88example",
                "InstanceType": "t2.micro",
                "NetworkInterfaces": [
                    {
                        "DeviceIndex": 0,
                        "DeleteOnTermination": true,
                        "Groups": [
                            "sg-903004f88example"
                        ],
                        "AssociatePublicIpAddress": true
                    }
                ]
            },
            "DefaultVersion": true,
            "CreateTime": "2020-02-28T19:52:27.000Z"
        }
    ]
}
```

### Criar uma versão de modelo de execução
<a name="example-create-launch-template-version"></a>

O seguinte comando [create-launch-template-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template-version.html) cria uma nova versão do modelo de execução com base na versão 1 do modelo de execução e especifica um ID de AMI diferente.

```
aws ec2 create-launch-template-version --launch-template-id {{lt-068f72b729example}} --version-description {{version2}} \
  --source-version {{1}} --launch-template-data "ImageId={{ami-c998b6b2example}}"
```

Para definir a versão padrão do modelo de execução, use o comando [modificar-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/modify-launch-template.html).

### Excluir uma versão de modelo de execução
<a name="example-delete-launch-template-version"></a>

O seguinte comando [delete-launch-template-version](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template-versions.html) exclui a versão do modelo de execução especificado.

```
aws ec2 delete-launch-template-versions --launch-template-id {{lt-068f72b729example}} --versions 1
```

### Excluir um modelo de execução
<a name="example-delete-launch-template"></a>

Se você não precisar mais de um modelo de execução, exclua-o usando o seguinte comando [delete-launch-template](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-launch-template.html). A exclusão de um modelo de execução excluirá todas as suas versões. 

```
aws ec2 delete-launch-template --launch-template-id {{lt-068f72b729example}}
```

## Atualizar um grupo do Auto Scaling para usar um modelo de execução
<a name="update-asg-launch-template-cli"></a>

Você pode usar o comando [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) para adicionar um modelo de execução a um grupo do Auto Scaling.

### Atualizar um grupo do Auto Scaling para usar a versão mais recente de um modelo de execução
<a name="example-update-asg-launch-template-latest-version"></a>

O seguinte comando [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) atualiza o grupo do Auto Scaling especificado para usar a versão mais recente do modelo de execução especificado.

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --launch-template LaunchTemplateId={{lt-068f72b729example}},Version='$Latest'
```

### Atualizar um grupo do Auto Scaling para usar uma versão específica de um modelo de execução
<a name="example-update-asg-launch-template-specific-version"></a>

O seguinte comando [update-auto-scaling-group](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/update-auto-scaling-group.html) atualiza o grupo do Auto Scaling especificado para usar uma versão específica do modelo de execução especificado.

```
aws autoscaling update-auto-scaling-group --auto-scaling-group-name {{my-asg}} \
  --launch-template LaunchTemplateName={{my-template-for-auto-scaling}},Version='{{2}}'
```