

# Alterar um tipo de instância do Amazon EC2 com um script bash na AWS CLI
<a name="cli-services-ec2-instance-type-script"></a>

Este exemplo de script bash para Amazon EC2 altera o tipo de instância para uma instância do Amazon EC2 usando a AWS Command Line Interface (AWS CLI). Ele interrompe a instância se ela estiver em execução, altera o tipo de instância e, em seguida, se solicitado, a reinicia. Scripts shell são programas desenvolvidos para ser executados em uma interface de linha de comando.

**nota**  
Para ver exemplos de outros comandos, consulte o [Guia de referência da AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/index.html).

**Topics**
+ [Antes de começar](#cli-services-ec2-instance-type-script-prereqs)
+ [Sobre este exemplo](#cli-services-ec2-instance-type-script-about)
+ [Parâmetros](#cli-services-ec2-instance-type-script-params)
+ [Arquivos](#cli-services-ec2-instance-type-script-files.title)
+ [Referências](#cli-services-ec2-instance-type-script-references)

## Antes de começar
<a name="cli-services-ec2-instance-type-script-prereqs"></a>

Antes que você possa executar qualquer um dos exemplos abaixo, as seguintes tarefas deverão ser concluídas.
+ Instale e configure a . AWS CLI. Para ter mais informações, consulte [Instalar ou atualizar a versão mais recente da AWS CLI](getting-started-install.md) e [Autenticação e credenciais de acesso para a AWS CLI](cli-chap-authentication.md).
+ O perfil utilizado deve ter permissões que garantem as operações da AWS realizadas pelos exemplos.
+ Uma instância do Amazon EC2 em execução na conta para a qual você tem permissão para interromper e modificar. Se você executar o script de teste, ele iniciará uma instância para você, testará alterando o tipo e encerrará a instância.
+ Como prática recomendada da AWS, conceda a esse código privilégio mínimo ou apenas as permissões necessárias para executar uma tarefa. Para obter mais informações, consulte [Conceder privilégio mínimo](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) no *Manual do usuário do AWS Identity and Access Management (IAM)*.
+ Este código não foi testado em todas as regiões da AWS. Alguns serviços da AWS só estão disponíveis em regiões específicas. Para obter mais informações, consulte [Endpoints de serviço e cotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) no *Guia de referência geral da AWS*. 
+ Executar este código pode resultar em cobranças em sua conta da AWS. É sua responsabilidade garantir que todos os recursos criados por este script sejam removidos após você terminar de usá-los. 

## Sobre este exemplo
<a name="cli-services-ec2-instance-type-script-about"></a>

Este exemplo é escrito como uma função no arquivo de script shell `change_ec2_instance_type.sh` que você pode usar como `source` a partir de outro script ou da linha de comando. Cada arquivo de script contém comentários descrevendo cada uma das funções. Uma vez que a função esteja na memória, você poderá chamá-la via linha de comando. Por exemplo, os seguintes comandos alteram o tipo de instância especificada para `t2.nano`:

```
$ source ./change_ec2_instance_type.sh
$ ./change_ec2_instance_type -i *instance-id* -t new-type
```

Para obter o exemplo completo e arquivos de script para download, consulte [Alterar tipo de instância do Amazon EC2](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/aws-cli/bash-linux/ec2/change-ec2-instance-type) no *Repositório de exemplos de código da AWS* no *GitHub*.

## Parâmetros
<a name="cli-services-ec2-instance-type-script-params"></a>

**-i**: *(string)* especifica o ID da instância a ser modificada.

**-t**: *(string)* especifica o tipo de instância do Amazon EC2 de destino.

**-r**: *(opção)* por padrão, não está definida. Se `-r` estiver definido, reiniciará a instância após a alteração do tipo.

**-f**: *(opção)* por padrão, o script solicita ao usuário que confirme o encerramento da instância antes de fazer a mudança. Se `-f` estiver definida, a função não avisará o usuário antes de encerrar a instância para realizar a alteração de tipo.

**-v**: *(opção)* por padrão, o script opera silenciosamente e exibe a saída somente em caso de erro. Se `-v` estiver definida, a função exibirá o status ao longo de sua operação.

## Arquivos
<a name="cli-services-ec2-instance-type-script-files.title"></a>

**`change_ec2_instance_type.sh`**  
O arquivo de script principal contém a função `change_ec2_instance_type()` que executa as seguintes tarefas:  
+ Verifica se a instância do Amazon EC2 especificada existe.
+ A menos que a opção `-f` esteja selecionada, avisará o usuário antes de interromper a instância.
+ Altera o tipo de instância
+ Se você definir `-r`, reiniciará a instância e confirmará que a instância está sendo executada
Visualize o código para `[change\$1ec2\$1instance\$1type.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/change_ec2_instance_type.sh)` no *GitHub*.

**`test_change_ec2_instance_type.sh`**  
O script do arquivo `test_change_ec2_instance_type.sh` testa os vários caminhos de código para a função `change_ec2_instance_type`. Se todas as etapas no script de teste funcionarem corretamente, ele removerá todos os recursos que criou.  
Você pode executar o script de teste com os seguintes parâmetros:  
+ **-v**: *(opção)* cada teste mostra um status de aprovação/falha conforme eles são executados. Por padrão, os testes são executados silenciosamente e a saída inclui apenas o status final de aprovação/falha.
+ **-i**: *(opção)* o script faz uma pausa após cada teste para permitir que você navegue pelos resultados intermediários de cada etapa. Isso permite examinar o status atual da instância usando o console do Amazon EC2. O script avançará para a próxima etapa após você pressionar *ENTER* no prompt.
Visualize o código para `[test\$1change\$1ec2\$1instance\$1type.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/test_change_ec2_instance_type.sh)` no *GitHub*.

**`awsdocs_general.sh`**  
O arquivo de script `awsdocs_general.sh` contém funções de uso geral usadas em exemplos avançados para a AWS CLI.  
Visualize o código para `[awsdocs\$1general.sh](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/aws-cli/bash-linux/ec2/change-ec2-instance-type/awsdocs_general.sh)` no *GitHub*.

## Referências
<a name="cli-services-ec2-instance-type-script-references"></a>

**AWS CLI Referência da:**
+ `[aws ec2](https://docs.aws.amazon.com/cli/v1/reference/ec2/index.html)`
+ `[aws ec2 describe-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/describe-instances.html)`
+ `[aws ec2 modify-instance-attribute](https://docs.aws.amazon.com/cli/v1/reference/ec2/modify-instance-attribute.html)`
+ `[aws ec2 start-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/start-instances.html)`
+ `[aws ec2 stop-instances](https://docs.aws.amazon.com/cli/v1/reference/ec2/stop-instances.html)`
+ `[aws ec2 wait instance-running](https://docs.aws.amazon.com/cli/v1/reference/ec2/wait/instance-running.html)`
+ `[aws ec2 wait instance-stopped](https://docs.aws.amazon.com/cli/v1/reference/ec2/wait/instance-stopped.html)`

**Outra referência:**
+ [Documentação do Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/ec2/)
+ Para visualizar e contribuir para o SDK da AWS e exemplos de código da AWS CLI, consulte o [Repositório de exemplos de código da AWS](https://github.com/awsdocs/aws-doc-sdk-examples/) no *GitHub*.