Comment dois-je procéder si le message d'erreur « Net::OpenTimeout » s'affiche dans CodeDeploy ?

Date de la dernière mise à jour : 15/03/2022

J'essaie de lancer une instance Windows Amazon Machine Image (AMI) dans AWS CodeDeploy. Toutefois, lorsque je tente de lancer l’instance, je reçois le message d'erreur suivant dans le fichier de journal de mon agent 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' ». Comment puis-je résoudre cette erreur ?

Brève description

Pour les instances AMI Windows Server 2016 fournies par AWS, les métadonnées ou les routes AWS Key Management Service (AWS KMS) sont définies statiquement lors du premier démarrage. Si vous créez une AMI personnalisée à partir d'une telle instance, ces routes sont intégrées à la configuration du système d'exploitation. Toutes les nouvelles instances que vous lancez à partir de l'AMI conservent les mêmes routes, quel que soit le placement du sous-réseau.

Ces routes statiques ne sont pas mises à jour lors du lancement à partir d'une AMI personnalisée, sauf si l'une des conditions suivantes se vérifie :

  • Vous utilisez Sysprep avec votre AMI personnalisée.
  • Les tâches d'initialisation de lancement d'Amazon Elastic Compute Cloud (Amazon EC2) ont été planifiées avant la création de l'AMI.

Les situations suivantes se produisent si les instances EC2 sont lancées à partir d'une telle AMI dans un autre Amazon Virtual Private Cloud (Amazon VPC), sous-réseau ou bloc d’adresse CIDR :

  • Les routes configurées ne sont plus valides.
  • L'instance ne peut pas communiquer avec le service de métadonnées ou les serveurs AWS KMS nécessaires à son activation.

Solution

1.    Créez une AMI personnalisée sous Windows.

2.    Utilisez l'AMI personnalisée que vous avez créée à l'étape 1 pour lancer une nouvelle instance.

Important : utilisez Sysprep après le lancement de votre nouvelle instance, le cas échéant.

3.    Connectez-vous à votre instance Windows lancée.

4.    Connectez-vous à Windows PowerShell en tant qu'administrateur.

5.    Dans PowerShell, accédez à l'emplacement C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts. Ensuite, saisissez les éléments suivants :

.\InitializeInstance.ps1 -Schedule

6.    Appuyez sur Entrée.

7.    Arrêtez l'instance que vous avez créée lors de l'étape 3. Ensuite, créez une nouvelle instance à partir de l'instance que vous avez arrêtée.

8.    Utilisez la nouvelle AMI pour lancer l'instance dans CodeDeploy.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?