Como resolver erros “Net::OpenTimeout” no CodeDeploy?

2 minuto de leitura
0

Quero executar uma instância de imagem de máquina da Amazon (AMI) para Windows no AWS CodeDeploy. No entanto, recebo o seguinte erro no arquivo de log do agente do AWS CodeDeploy: “Serviço do agente da instância do CodeDeploy: erro durante inicialização ou execução: Net::OpenTimeout - o tempo limite da execução expirou - C:/Windows/TEMP/ocrFxxx.tmp/lib/ruby/2.3.0/net/http.rb:880:em ‘initialize’”.

Breve descrição

Para instâncias da AMI do Windows Server 2016 fornecida pela AWS, o EC2Launch define estatisticamente os metadados ou as rotas do AWS Key Management Service (AWS KMS) na primeira inicialização. Se você criar uma AMI personalizada a partir dessas instâncias, as rotas serão capturadas como parte da configuração do sistema operacional. Todas as novas instâncias que você executar a partir da AMI reterão as mesmas rotas, não importa o posicionamento da sub‑rede.

Essas rotas estáticas não são atualizadas quando você executa uma instância a partir de uma AMI personalizada, a não ser que uma das afirmações a seguir seja verdadeira:

  • Você usa o Sysprep para sua AMI personalizada.
  • Você programa as tarefas de inicialização do Amazon Elastic Compute Cloud (Amazon EC2) antes de criar a AMI.

Ao executar uma instância a partir de uma AMI personalizada em uma Amazon Virtual Private Cloud (Amazon VPC), sub‑rede ou bloco CIDR diferente, os seguintes problemas ocorrem:

  • As rotas configuradas não são mais válidas.
  • A instância não consegue acessar o serviço de metadados ou os servidores do AWS KMS necessários para a ativação.

Resolução

1.    Crie uma AMI personalizada no Windows.

2.    Use a AMI personalizada criada na etapa 1 para executar uma nova instância.

Importante: Se você já estiver usando o Sysprep, use-o depois de executar a nova instância.

3.    Conecte-se à instância do Windows.

4.    Faça login no Windows PowerShell como administrador.

5.    No PowerShell, navegue até C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts. Em seguida, digite o comando a seguir:

.\InitializeInstance.ps1 -Schedule

6.    Pressione Enter.

7.    Encerre a instância criada na etapa 3. Em seguida, crie uma nova AMI a partir da instância que você encerrou.

8.    Use a nova AMI para executar a instância no CodeDeploy.


AWS OFICIAL
AWS OFICIALAtualizada há um ano