web-dev-qa-db-fra.com

InvalidInstanceId: une erreur s'est produite (InvalidInstanceId) lors de l'appel de l'opération SendCommand

Ce qui suit est le code que j'exécute à partir de python pour exécuter des commandes dans l'instance aws ec2

import boto3
ec2 = boto3.client('ssm',region_name='us-east-1',aws_access_key_id='xxxxxxxxxxxxxxx',aws_secret_access_key='xxxxxxxxx')
a = ec2.send_command(InstanceIds=ids, DocumentName='AWS-RunShellScript', Comment='abcdabcd', Parameters={"commands":["ifconfig"]})

Mais cela donne l'erreur ci-dessous

InvalidInstanceId: An error occurred (InvalidInstanceId) when calling the SendCommand operation: 
13
Teja

Les scénarios suivants peuvent entraîner ce message d'erreur:

  • L'identifiant d'instance n'est pas valide (dans les commentaires que vous avez vérifié, il ne l'est pas)
  • L'instance se trouve dans une autre région (dans les commentaires que vous avez vérifiés, elle ne l'est pas)
  • L'instance n'est pas actuellement dans l'état En cours d'exécution
  • L'instance n'a pas AWS SSM agent installé et en cours d'exécution.

Vous devez vous connecter à la console AWS EC2/SSM et vous assurer que les instances que vous essayez de gérer s'affichent dans les SYSTEMS MANAGER SHARED RESOURCES - Liste des instances gérées , et qu'elles affichent un état Ping de En ligne . Sinon, vous devez corriger cela avant d'essayer d'envoyer des commandes aux instances en question.

10
Mark B

Assurez-vous que votre instance a configuration SSM . Pour Linux, vous devez utiliser Amazon Linux AMI ou installer manuellement.

Courir:

aws ssm describe-instance-information --output text

pour voir la version de l'agent SSM à partir de vos instances. Assurez-vous donc que votre instance figure sur cette liste.

Voir aussi: Échec de la commande d'envoi SSM vers l'instance EC2 .

5
kenorb

J'ai eu exactement le même message d'erreur et le problème était la version de boto3 dans aws.

Lorsque j'ai ajouté boto3 en tant que couche lambda, le code lambda a parfaitement fonctionné.

0
chrisd