Come posso risolvere gli errori "Net::OpenTimeout" in CodeDeploy?

2 minuti di lettura
0

Voglio lanciare un'istanza Windows Amazon Machine Image (AMI) in AWS CodeDeploy. Tuttavia, ricevo il seguente errore nel mio file di log dell'agente 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'."

Breve descrizione

Per le istanze AMI di Windows Server 2016 fornite da AWS, EC2Launch imposta statisticamente i metadati o i percorsi del Servizio di gestione delle chiavi AWS (AWS KMS) al primo avvio. Se crei un'AMI personalizzata da queste istanze, i percorsi vengono acquisiti come parte della configurazione del sistema operativo. Tutte le nuove istanze lanciate dall'AMI mantengono gli stessi percorsi, indipendentemente dal posizionamento della sottorete.

Quando avvii da un'AMI personalizzata, questi percorsi statici non si aggiornano a meno che non sia vera una delle seguenti configurazioni:

  • Utilizzi Sysprep per l'AMI personalizzata.
  • È necessario pianificare le attività di inizializzazione di avvio di Amazon Elastic Compute Cloud (Amazon EC2) prima di creare l'AMI.

Quando avvii da un'AMI personalizzata in un altro Amazon Virtual Private Cloud (Amazon VPC), sottorete o blocco CIDR, si verificano i seguenti problemi:

  • I percorsi configurati non sono più validi.
  • L'istanza non può raggiungere il servizio di metadati o i server AWS KMS necessari per l'attivazione dell'istanza.

Soluzione

1.    Crea un'AMI personalizzata in Windows.

2.    Usa l'AMI personalizzata che hai creato nel passaggio 1 per avviare una nuova istanza.

Importante: Se utilizzi Sysprep, usalo dopo aver avviato la nuova istanza.

3.    Connettiti all'istanza Windows avviata.

4.    Accedi a Windows PowerShell come amministratore.

5.    In PowerShell, vai a C:\ProgramData\Amazon\EC2 -Windows\ Launch\ Scripts. Quindi, inserisci il seguente comando:

.\InitializeInstance.ps1 -Schedule

6.    Premi Invio.

7.    Termina l'istanza che hai creato nel passaggio 3. Quindi, crea una nuova AMI dall'istanza che hai terminato.

8.    Usa la nuova AMI per avviare l'istanza in CodeDeploy.


AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa