2017-05-17 4 views
2

requête d'exécution:AWS CLI retour "option inconnue" sur les instances d'exécution-

aws ec2 run-instances --image-id ami-7a85a01a --security-group-ids sg-756ae512 --count 1 --instance-type t2.micro --tag-specifications ResourceType=instance,Tags=[{Key=webserver,Value=production}] --subnet-id subnet-cc0b0e8a

Son lancer une erreur en disant:

Unknown options: --tag-specifications, ResourceType=instance,Tags=[{Key=webserver,Value=production}]

Est-ce que quelqu'un sait si cela est depricated, ou est la syntaxe différente de prévu? J'ai couru en rond avec ça.

Solution possible avec la nouvelle syntaxe:

aws ec2 run-instances --image-id ami-xxxxxxxxxx --security-group-ids sg-ef95c791 --count 1 --instance-type m4.2xlarge --key-name mypemkey --query Reservations[*].Instances[*].[PublicIpAddress,InstanceId] 

Le mieux que je peux venir avec, semble fonctionner:

aws ec2 run-instances --image-id ami-7a85a01a --count 1 --instance-type t2.micro --key-name mykeypair --subnet-id sn-756ae512 --tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=production}]' --associate-public-ip-address --output=text

+0

Votre modification indique seulement que vous avez supprimé l'option '--tag-specification', WTF? –

+0

La bonne réponse est ci-dessous. Nécessaire de mise à niveau.Mostly les docs m'ont dit que je ne peux pas ajouter de balises lors de la création de l'instance. J'ai posté la dernière commande que j'ai eue, qui retournera l'identifiant de l'instance, qui pourrait être passé à la commande suivante, pour marquer l'instance. – Mattehicks

Répondre

3

je suis tombé sur cette question aujourd'hui et figured it out après une heure de lutte à travers la documentation AWS tristement célèbre horrible. Le problème était que les instructions d'installation (pip install et en utilisant le programme d'installation fourni) sont tout simplement fausses: bien que les commandes aient été parfaitement copiées et les exigences (en particulier le "Python 2 version 2.6.5+ ou Python 3 version 3.3+") ont été rencontrés, le package aws-cli n'installerait/ne mettrait jamais à jour 1.11.13.

La solution: use pip3 install instead of pip install. Cela l'a mis à jour à 1.11.97, qui a activé le paramètre --tag-specifications. Je ne sais pas si cela résoudra le problème pour vous, mais je pense que de nombreux utilisateurs d'Ubuntu en feront l'expérience, alors j'ai décidé de le poster quand même.

+0

Mon système exécute pip 9.0.1 et Python 2.7, et je n'ai pas eu ce problème. Donc, j'ai offert ma propre réponse. –

+0

Le manque de cohérence dans les produits aws est déroutant, donc avoir de nombreuses solutions possibles est toujours la bienvenue. Bezos travaille de manière mystérieuse. –

+0

Je ne pense pas que ce soit déroutant. L'idée est que des équipes indépendantes ont écrit leurs propres points d'entrée. Il est naturel qu'un style de codage n'ait pas coalisé jusqu'à ce qu'une grande partie du travail ait été effectuée. –

-1

Il vous manque un devis unique pour ' --tag -spécifications valeur:

par exemple. à partir de aws ec2 run-instances documentation:

aws ec2 run-instances --image-id ami-abc12345 --count 1 --instance-type t2.micro --key-name MyKeyPair --subnet-id subnet-6e7f829e --tag-specifications 'ResourceType=instance,Tags=[{Key=webserver,Value=production}]' 'ResourceType=volume,Tags=[{Key=cost-center,Value=cc123}]' 
+0

J'ai essayé ce correctif, toujours la même sortie. – Mattehicks

+0

Le guillemet simple est uniquement requis (dans certains cas) par votre shell, et non par AWS. –

0

a trouvé une réponse. Syntaxe différente dans l'appel: http://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html

modifier:

QUERY=$(aws ec2 run-instances --image-id ${AMI_ID} --count 1 --instance-type t2.micro --key-name ${KEY_PAIR} --subnet-id ${SUBNET_ID} \ 
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value='${EC2_TAG}'}]' --associate-public-ip-address --output=text) 
+2

Pouvez-vous inclure votre exemple de code correct rempli pour les futurs lecteurs? Le simple fait de créer un lien vers la documentation sans aucun commentaire sur les modifications que vous avez réellement apportées ne constitue pas une réponse suffisante sur Stack Overflow. –

+0

J'ai partagé ma solution de contournement, sans utiliser la balise "name". J'utilise l'émulateur CONemu - donc pip n'est pas installé.Je pense que la solution de Jonathan Voss était probablement la bonne réponse. La syntaxe AWS CLI peut être difficile. – Mattehicks

0

Votre syntaxe est correcte, selon la documentation; mais votre client AWS est trop ancien pour prendre en charge l'option --tag-specifications. [Sous Mac OS X, au moins], utilisez pip install --upgrade --user awscli pour mettre à niveau le client vers la version actuelle.