Utiliser les données utilisateur d'instance - Amazon Elastic Compute Cloud

Utiliser les données utilisateur d'instance

Lorsque vous utilisez des données utilisateur d'instance, ayez les points suivants à l'esprit :

  • Les données utilisateur doivent être codées en base64. La console Amazon EC2 peut effectuer l'encodage base64 pour vous ou accepter les entrées codées en base64.

  • Les données d'utilisateur sont limitées à 16 Ko en format brut, avant qu'elles soient encodées en base64. La taille d'une chaîne de longueur n après l'encodage base64 est ceil(n/3)*4.

  • Les données utilisateur doivent être décodées en base64 lorsque vous les récupérez. Si vous les récupérez à l'aide des métadonnées d'instance ou de la console, les données sont décodées automatiquement.

  • Les données utilisateur sont traitées comme des données opaques : ce que vous donnez est ce que vous obtenez en retour. Il appartient à l'instance d'être capable de l'interpréter.

  • Si vous arrêtez une instance, modifiez ses données utilisateur et démarrez l'instance, les données utilisateur mises à jour ne sont pas exécutées lorsque vous démarrez l'instance.

Spécification des données utilisateur d'instance au moment du lancement

Vous pouvez spécifier des données utilisateur lorsque vous lancez une instance. Pour plus d'informations, consultez Lancer une instance à l'aide de l'assistant de lancement d'instance et Exécuter des commandes au lancement sur votre instance Linux.

Modification des données utilisateur d'instance

Vous pouvez modifier les données utilisateur pour une instance à l'état arrêté si le volume racine est un volume EBS. Pour plus d'informations, consultez Affichage et mise à jour des données utilisateur d'instance.

Récupération des données utilisateur d'instance

Pour récupérer des données utilisateur depuis une instance en cours d'exécution, utilisez l'URI ci-après.

http://169.254.169.254/latest/user-data

Une demande de données utilisateur renvoie les données telles qu'elles sont (type de contenu application/octet-stream).

Cet exemple renvoie les données utilisateur qui ont été fournies sous la forme de texte séparé par des virgules.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,

Cet exemple renvoie des données utilisateur qui ont été fournies sous la forme d'un script.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/user-data #!/bin/bash yum update -y service httpd start chkconfig httpd on
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/user-data #!/bin/bash yum update -y service httpd start chkconfig httpd on

Pour récupérer des données utilisateur pour une instance à partir de votre ordinateur, consultez Données utilisateur et AWS CLI