Voir la documentation EC2 sur le sujet .
Courir:
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
Si vous avez besoin d'un accès programmatique à l'ID d'instance à partir d'un script,
die() { status=$1; shift; echo "FATAL: $*"; exit $status; }
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
Un exemple d'une utilisation plus avancée (récupérer l'ID d'instance ainsi que la zone et la région de disponibilité, etc.):
EC2_INSTANCE_ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
test -n "$EC2_INSTANCE_ID" || die 'cannot obtain instance-id'
EC2_AVAIL_ZONE="`wget -q -O - http://169.254.169.254/latest/meta-data/placement/availability-zone || die \"wget availability-zone has failed: $?\"`"
test -n "$EC2_AVAIL_ZONE" || die 'cannot obtain availability-zone'
EC2_REGION="`echo \"$EC2_AVAIL_ZONE\" | sed -e 's:\([0-9][0-9]*\)[a-z]*\$:\\1:'`"
Vous pouvez également utiliser curl
au lieu de wget
, selon ce qui est installé sur votre plate-forme.
169.254.169.254
dans/etc/hosts
si cela vous fait sentir plus en sécurité, si vous ... soins.$
), trouvez un ou plusieurs chiffres suivis par une ou plusieurs lettres minuscules. Remplacez par les chiffres uniquement. ( Entre parenthèses Backslash + DITES sed de se rappeler une sous - chaîne, qui est rappelée avec\1
.) Je trouve cela un peu plus facile à lire - les seuls antislashs sont celles requises par sed:EC2_REGION="$(echo "$EC2_AVAIL_ZONE" | sed -e 's:\([0-9][0-9]*\)[a-z]*$:\1:')"
.http://instance-data/
au lieu de169.254.169.254
Sur les AMI Amazon Linux, vous pouvez faire:
Ou, sur Ubuntu et quelques autres versions de Linux,
ec2metadata --instance-id
(Cette commande peut ne pas être installée par défaut sur Ubuntu, mais vous pouvez l'ajouter avecsudo apt-get install cloud-utils
)Comme son nom l'indique, vous pouvez également utiliser la commande pour obtenir d'autres métadonnées utiles.
la source
-
aprèsec2
. Il estec2metadata --instance-id
ec2-metadata
, sur Ubuntu cela semble être le casec2metadata
.Sur Ubuntu, vous pouvez:
Et puis vous pouvez:
Vous pouvez obtenir la plupart des métadonnées associées à l'instance de cette façon:
la source
apt-get install
récupère la version 0.11-0ubuntu1 qui ne contient pas cet utilitaire. Il a été ajouté au package juste après .Utilisez l'
/dynamic/instance-identity/document
URL si vous devez également interroger plus que votre ID d'instance.wget -q -O - http://169.254.169.254/latest/dynamic/instance-identity/document
Cela vous donnera des données JSON comme celle-ci - avec une seule demande .
la source
Pour les
.NET
personnes:la source
sur AWS Linux:
ec2-metadata --instance-id | cut -d " " -f 2
Production:
i-33400429
Utilisation de variables:
la source
Pour les personnes PowerShell:
la source
$instanceId=(Invoke-WebRequest -Uri 'http://169.254.169.254/latest/meta-data/instance-id').Content
Pour Python:
qui se résume au one-liner:
Au lieu de local_hostname, vous pouvez également utiliser public_hostname, ou:
la source
new AWS.MetadataService().request('instance-id',function(error,data) { myInstanceId = data; })
Pour toutes les machines ec2, l'ID-instance peut être trouvé dans le fichier:
Vous pouvez également obtenir l'ID d'instance en exécutant la commande suivante:
la source
C:\ProgramData\Amazon\EC2-Windows\Launch\Log\Ec2Launch.log
contient l'ID d'instance, mais a également beaucoup d'autres ordures.Voir cet article - notez que l'adresse IP dans l'URL donnée est constante (ce qui m'a dérouté au début), mais les données retournées sont spécifiques à votre instance.
la source
Pour Ruby:
la source
Une solution plus contemporaine.
Depuis Amazon Linux, la commande ec2-metadata est déjà installée.
Depuis le terminal
Vous donnera les options disponibles
reviendra
la source
ec2-metadata
avec vosmotd
documents ici: coderwall.com/p/hr_9pw/motds-on-amazon-amisTapez simplement:
la source
Vous pouvez essayer ceci:
la source
Une classe c # .net que j'ai écrite pour les métadonnées EC2 à partir de l'API http. Je vais le construire avec des fonctionnalités au besoin. Vous pouvez courir avec si vous l'aimez.
la source
Le dernier SDK Java a
EC2MetadataUtils
:En Java:
À Scala:
la source
Pour C ++ (en utilisant cURL):
la source
Vérifiez simplement le
var/lib/cloud/instance
lien symbolique, il devrait indiquer/var/lib/cloud/instances/{instance-id}
où se{instance_id}
trouve votre ID d'instance.la source
Si vous souhaitez obtenir la liste des identifiants de toutes les instances en python, voici le code:
la source
FWIW J'ai écrit un système de fichiers FUSE pour donner accès au service de métadonnées EC2: https://bitbucket.org/dgc/ec2mdfs . Je l'exécute sur toutes les AMI personnalisées; cela me permet d'utiliser cet idiome: cat / ec2 / meta-data / ami-id
la source
Dans Go, vous pouvez utiliser le package goamz .
Voici la source GetMetaData.
la source
Dans la question que vous avez mentionnée en tant qu'utilisateur root, une chose que je dois mentionner est que l'ID d'instance ne dépend pas de l'utilisateur.
Pour les développeurs de nœuds ,
la source
Pour obtenir les métadonnées d'instance, utilisez
la source
Vous pouvez simplement faire une requête HTTP pour obtenir des métadonnées en passant les paramètres de vos métadonnées.
ou
Vous ne serez pas facturé pour les demandes HTTP pour obtenir les métadonnées et les données utilisateur.
Autre
Vous pouvez utiliser l'outil de requête de métadonnées d'instance EC2 qui est un simple script bash qui utilise curl pour interroger les métadonnées d'instance EC2 à partir d'une instance EC2 en cours d'exécution, comme indiqué dans la documentation.
Téléchargez l'outil:
exécutez maintenant la commande pour obtenir les données requises.
Référer:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
https://aws.amazon.com/items/1825?externalID=1825
Heureux d'aider.. :)
la source
Approche alternative pour PHP:
Cela fournira beaucoup de données sur l'instance, toutes joliment emballées dans un tableau, sans dépendances externes. Comme c'est une demande qui n'a jamais échoué ou retardé pour moi, il devrait être prudent de le faire de cette façon, sinon j'irais pour curl ()
la source
Pour PHP:
Modifier par @John
la source
Lance ça:
Vous pourrez voir différents types d'attributs fournis par aws.
Utilisez ce lien pour en voir plus
la source
Toutes les métadonnées liées à la ressource EC2 sont accessibles par l'instance EC2 elle-même à l'aide de la commande suivante en cours d'exécution:
CURL:
Pour votre cas: " métadonnées demandées " doit être id-instance , " api-version " est généralement le dernier qui peut être utilisé.
Remarque supplémentaire: vous pouvez également obtenir des informations sur les attributs EC2 ci-dessous à l'aide de la commande ci-dessus.
ami-id, ami-launch-index, ami-manifest-path, block-device-mapping /, hostname, iam /, instance-action, instance-id, instance-type, local-hostname, local-ipv4, mac, métriques /, réseau /, emplacement /, profil, public-hostname, public-ipv4, public-keys /, reservation-id, security-groups, services /,
Pour plus de détails, veuillez suivre ce lien: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
la source
Pour une instance Windows:
ou
la source
Pour AWS élastique beanstalk eb cli run
eb tags --list
la source