¿Cómo puedo resolver los errores de «Net::OpenTimeout» en CodeDeploy?

2 minutos de lectura
0

Quiero lanzar una instancia de Amazon Machine Image (AMI) de Windows en AWS CodeDeploy. Sin embargo, recibo el siguiente error en el archivo de registro del agente de AWS CodeDeploy: «CodeDeploy Instance Agent Service: error during start or run: Net::OpenTimeout - execution expired - C:/Windows/TEMP/ocrFxxx.tmp/lib/ruby/2.3.0/net/http.rb:880:in 'initialize'.»

Descripción breve

Para las instancias de AMI de Windows Server 2016 proporcionadas por AWS, EC2Launch establece estadísticamente los metadatos o las rutas de AWS Key Management Service (AWS KMS) en el primer arranque. Si crea una AMI personalizada a partir de estas instancias, las rutas se capturan como parte de la configuración del sistema operativo. Todas las instancias nuevas que lance desde la AMI conservan las mismas rutas, independientemente de la ubicación de la subred.

Al lanzarse desde una AMI personalizada, estas rutas estáticas no se actualizan a menos que se cumpla una de las siguientes configuraciones:

  • Utiliza Sysprep para su AMI personalizada.
  • Programa las tareas de inicialización del lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2) antes de crear la AMI.

Al iniciar desde una AMI personalizada a otro bloque CIDR, Amazon Virtual Private Cloud (Amazon VPC) o subred, se producen los siguientes problemas:

  • Las rutas configuradas ya no son válidas.
  • La instancia no puede acceder al servicio de metadatos ni a los servidores de AWS KMS necesarios para la activación de la instancia.

Resolución

1.Cree una AMI personalizada en Windows.

2.Use la AMI personalizada que creó en el paso 1 para lanzar una nueva instancia.

Importante: Si usa Sysprep, utilice Sysprep después de lanzar la nueva instancia.

3.Conéctese a la instancia de Windows lanzada.

4.Inicie sesión en Windows PowerShell como administrador.

5.En PowerShell, vaya a C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts. A continuación, introduzca el siguiente comando:

.\InitializeInstance.ps1 -Schedule

6.Pulse Intro.

7.Detenga la instancia que creó en el paso 3. A continuación, cree una AMI nueva a partir de la instancia que ha cancelado.

8.Utilice la nueva AMI para lanzar la instancia en CodeDeploy.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año