Como executar um comando em uma instância existente do EC2 Windows ao reinicializar ou iniciar a instância?
Quero executar um script personalizado na minha instância Windows existente do Amazon Elastic Compute Cloud (Amazon EC2) ao reinicializar ou iniciar a instância.
Breve descrição
Adicione um script aos dados do usuário e, em seguida, configure-o para ser executado após a reinicialização de uma instância ou quando uma instância for iniciada. EC2Config (Windows Server 2012 R2 e versões anteriores), EC2Launch (Windows Server 2016 e 2019) ou EC2LaunchV2 (Windows Server 2022) processam dados do usuário.
Resolução
Ao adicionar o script aos dados do usuário, você deve incluí-lo em uma tag especial. Essa tag determina se os comandos são executados em uma janela do prompt de comando ou no Windows PowerShell. Para obter mais informações, consulte Executar comandos em sua instância do Windows na inicialização.
Você não pode adicionar nem alterar dados do usuário quando a instância está em execução, mas você pode visualizá-los. Para adicionar ou alterar dados do usuário, a instância deve estar no estado interrompido. Os scripts de dados do usuário não são executados automaticamente quando você reinicializa ou inicia a instância. Você pode configurar os dados do usuário para serem executados na próxima vez ou sempre que você reinicializar ou iniciar a instância.
Importante:
- Se você não estiver usando um endereço IP elástico, o endereço IP público será liberado quando você interromper a instância.
- Se a instância tiver um volume de armazenamento de instâncias, todos os dados nela contidos serão perdidos quando a instância for interrompida.
- Se o comportamento de desligamento da instância estiver definido como Encerrar, a instância será encerrada quando for interrompida.
- Se a instância fizer parte de um grupo do Auto Scaling, primeiro desconecte a instância do grupo do Auto Scaling. Depois de parar e iniciar a instância, anexe a instância novamente ao grupo do Auto Scaling. Para mais informações, consulte Interromper e iniciar sua instância.
1. Conecte-se à sua instância do EC2 Windows.
2. Para Windows Server 2012 R2 ou anterior, abra C:\Arquivos de programas\Amazon\Ec2ConfigService\Ec2ConfigServiceSetting.exe. Em seguida, em Dados do usuário, selecione Ativar execução de UserData para o próximo início do serviço.
Observação: o comando anterior altera a senha do administrador local da instância a cada reinicialização. Se você usar uma AMI com a opção Sem par de chaves selecionada, poderá perder o acesso à sua instância ao reiniciar.
Para o Windows Server 2016 e 2019, abra uma janela de comando do Windows PowerShell e execute o seguinte comando:
C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 –Schedule
Para o Windows Server 2022, execute UserData como um script e defina a frequência para sempre ser executada em cada inicialização. Para ober mais informações, consulte executeScripts para ver a sintaxe e os exemplos.
3. No console do Amazon EC2, interrompa a instância.
4. Selecione a instância e escolha Ações. Escolha Configurações de Instância e, em seguida, Editar dados do usuário.
5. Adicione ou atualize os dados do usuário e escolha Salvar.
Observação: para executar scripts de dados do usuário sempre que reinicializar ou reiniciar a instância, adicione a seguinte configuração:
<persist>true</persist>
6. Inicie a instância. Os scripts de dados do usuário são executados como parte do processo de início da instância.
Para soluções de problemas adicionais, os arquivos de log EC2Config, EC2Launch e EC2LaunchV2 contêm a saída e os fluxos de erro padrão. Os arquivos de log estão localizados da seguinte forma:
- EC2Config: C:\Arquivos de programas\Amazon\Ec2ConfigService\Logs\Ec2Config.log
- EC2Launch: C:\ProgramData\Amazon\EC2-Windows\Launch\Log\UserdataExecution.log
- EC2LaunchV2: C:\ProgramData\Amazon\EC2Launch\log\agent.log
Informações relacionadas
Como executo um comando em uma nova instância do EC2 Windows na inicialização?
Conteúdo relevante
- AWS OFICIALAtualizada há 8 meses
- AWS OFICIALAtualizada há 10 meses