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

Date de la dernière mise à jour : 07/04/2020

Lorsque je tente de lancer mon instance Amazon Machine Image (AMI) Windows, un message d'erreur similaire au suivant s'affiche dans le fichier 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 remédier à ce problème ?

Courte description

Lorsque vous lancez une instance à partir d'une AMI Windows Server 2016 fournie 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 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.

Si vous lancez une instance EC2 à partir d'une telle AMI, dans un autre Amazon Virtual Private Cloud (Amazon VPC), sous-réseau ou bloc CIDR, les situations suivantes se produisent :

  • 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, si vous en faites usage.

3.    Connectez-vous à votre instance 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, puis saisissez ce qui suit :

.\InitializeInstance.ps1 -Schedule

6.    Appuyez sur Entrée.

7.    Stoppez l'instance que vous avez créée à l'étape 3, puis créez une nouvelle instance à partir de celle interrompue.

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


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

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?