Pour effectuer des configurations système ou exécuter des scripts métier spécifiques lors de la création d'une instance ECS (par exemple, préinstaller des logiciels tels que Nginx et Docker ou modifier le nom d'hôte), utilisez le paramètre User Data.
Présentation des données personnalisées
Les données utilisateur sont constituées de scripts, d'instructions ou de fichiers de configuration que vous pouvez charger sur une instance pour effectuer des tâches d'initialisation ou de configuration. Par exemple, au premier démarrage d'une instance, celle-ci peut exécuter automatiquement des scripts de démarrage de service, installer des logiciels ou générer des journaux. Les données utilisateur s'exécutent automatiquement lors du premier démarrage d'une instance. Certains formats de données utilisateur permettent également une exécution à chaque démarrage d'une instance Linux. Pour plus d'informations, consultez la section Formats de données utilisateur et fréquences d'exécution.
Limites
L'instance doit se trouver dans un réseau privé virtuel (VPC).
-
L'instance doit utiliser une image publique ou une image personnalisée créée à partir d'une image publique. Le système d'exploitation doit être l'un des suivants :
Alibaba Cloud Linux, CentOS, CentOS Stream, Ubuntu, SUSE Linux Enterprise Server, Red Hat Enterprise Linux, OpenSUSE, Debian, AlmaLinux, Rocky Linux ou Fedora
Windows Server 2008 R2 ou version ultérieure
Parmi les types d'instance retirés, seules les instances optimisées pour les E/S prennent en charge la fonctionnalité de données utilisateur. Cette fonctionnalité n'est pas disponible sur les instances non optimisées pour les E/S. Pour plus d'informations, consultez la rubrique Types d'instance retirés.
Utiliser les données utilisateur lors de la création d'une instance
1. Préparer les données personnalisées
Lors de l'initialisation de l'instance, un outil lit les données utilisateur fournies pour appliquer les configurations personnalisées. Les instances Linux et Windows utilisent des outils d'initialisation différents, qui prennent en charge plusieurs formats de données utilisateur. Pour plus d'informations sur les formats de données et leurs fréquences d'exécution, consultez les sections suivantes.
Format des données personnalisées et fréquence d'exécution
Instances Linux
Les instances Linux utilisent le composant cloud-init pour effectuer les actions d'initialisation. L'exécution des configurations varie selon que l'instance démarre pour la première fois ou non. Certaines instances utilisant des versions d'image antérieures utilisent également Upstart Job pour l'initialisation.
L'outil cloud-init prend en charge les types de données utilisateur permettant de configurer directement les instances, tels que les formats User-Data et Cloud Config. Il prend également en charge d'autres formats, notamment les fichiers include et le contenu compressé Gzip. En plus de l'outil cloud-init, certaines instances utilisant des versions d'image antérieures utilisent également Upstart Job pour l'initialisation.
Pour plus d'informations sur les formats de données utilisateur, consultez la page User-Data Formats de la documentation cloud-init.
Si la taille de votre script User-Data, des données Cloud Config ou du fichier Include dépasse 32 Ko, sélectionnez Gzip compressed content comme type de données.
Si une tâche doit s'exécuter à chaque démarrage de l'instance, sélectionnez Cloud Config data ou Upstart Job comme type de données.
Scripts User-Data
-
Présentation
Lorsqu'un script User-Data est transmis à une instance Linux, il s'exécute en tant que script shell. Le script ne s'exécute qu'une seule fois, lors du premier démarrage de l'instance.
-
Fréquence d'exécution
Démarrage de l'instance : s'exécute uniquement lors du premier démarrage. Le script ne s'exécute pas lors des redémarrages suivants.
Remplacement du système d'exploitation : s'exécute automatiquement.
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
Format
La première ligne doit commencer par un shebang (
#!). -
Exemples de scripts User-Data
-
Exécuter un script personnalisé
#!/bin/sh echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txtCet exemple de script User-Data écrit l'heure système dans le fichier userdata_test.txt lors du premier démarrage de l'instance.
-
Personnaliser les sources logicielles, les configurations DNS et les services de synchronisation horaire
Lors de la création d'une instance, vous pouvez utiliser un script User-Data pour personnaliser les sources logicielles, les configurations DNS et les services de synchronisation horaire. L'exemple suivant utilise CentOS Stream 9. Adaptez les configurations à votre système d'exploitation.
ImportantAu démarrage d'une instance, le système configure automatiquement le dépôt yum par défaut, le service Network Time Protocol (NTP) et le service DNS. Vous pouvez utiliser les données utilisateur pour modifier ces paramètres par défaut. Notez les points suivants :
Si vous personnalisez le dépôt yum, Alibaba Cloud ne fournit plus de support pour ce dépôt.
Si vous personnalisez le service NTP, Alibaba Cloud ne fournit plus de services de synchronisation horaire.
#!/bin/sh # Modify DNS echo "nameserver 114.114.114.114" | tee /etc/resolv.conf # Modify yum repo and update cp /etc/yum.repos.d/centos.repo /etc/yum.repos.d/centos.repo.bak cp /etc/yum.repos.d/centos-addons.repo /etc/yum.repos.d/centos-addons.repo.bak sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos.repo sed -i "s@http://mirrors.cloud.aliyuncs.com/centos-stream/@https://mirror.stream.centos.org/@g" /etc/yum.repos.d/centos-addons.repo yum update -y # Modify NTP Server echo "server ntp1.aliyun.com" | tee /etc/ntp.conf systemctl restart ntpd.serviceRemarqueDans le code précédent,
114.114.114.114est l'adresse du serveur DNS,https://mirror.stream.centos.orgest l'adresse du dépôt yum pour CentOS Stream, etserver ntp1.aliyun.comest l'adresse du serveur NTP d'Alibaba Cloud. Remplacez ces valeurs selon vos besoins.Vous pouvez également utiliser les données Cloud Config pour modifier le dépôt yum. Cependant, cette méthode est moins flexible et ne s'adapte pas aux cas où Alibaba Cloud a préconfiguré certains dépôts yum. Nous vous recommandons d'utiliser un script User-Data.
-
Personnaliser le compte administrateur
Par défaut, les instances Linux utilisent l'utilisateur root comme administrateur. Vous pouvez utiliser les données utilisateur pour spécifier un autre utilisateur comme administrateur.
#!/bin/sh useradd test-user echo "test-user ALL=(ALL) NOPASSWD:ALL" | tee -a /etc/sudoers mkdir /home/test-user/.ssh touch /home/test-user/.ssh/authorized_keys echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis****" | tee -a /home/test-user/.ssh/authorized_keysRemarqueRemplacez la clé publique d'exemple ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis par votre propre clé publique.
-
En cas de problème lors de l'exécution d'un script User-Data, exécutez la commande Cloud Assistant commune ACS-ECS-UserData-Check-for-linux.sh pour obtenir les journaux d'erreur. La présence d'un message d'erreur indique un échec d'exécution du script. En l'absence de message d'erreur, le script s'est exécuté correctement ; vous devez alors investiguer d'autres causes potentielles. Pour plus d'informations sur les commandes Cloud Assistant communes, consultez la rubrique Afficher et exécuter des commandes publiques.
Données Cloud Config
-
Présentation
Cloud-init utilise une série de modules fonctionnels pour effectuer des tâches telles que l'installation de packages logiciels et la configuration des réseaux. Les modules à exécuter et leur logique sont déterminés par les données Cloud Config, récupérables depuis les données du fournisseur, les données utilisateur ou les paramètres du noyau. Lors de la création d'une instance ECS, vous pouvez personnaliser les données Cloud Config pour spécifier les modules et les tâches à exécuter. Au démarrage, cloud-init lit et analyse ces données, exécute les modules correspondants et effectue les tâches de configuration spécifiées pour déployer automatiquement l'instance ECS.
-
Fréquence d'exécution
-
Démarrage de l'instance : l'exécution des tâches dépend des paramètres de fréquence de leurs modules correspondants. Pour plus d'informations sur les modules, consultez la page Modules.
Fréquence
once-per-instance: s'exécute uniquement lors du premier démarrage. Par exemple, si vous configurez des modules tels que Apt et Set Passwords, ils ne s'exécutent pas lors des redémarrages.Fréquence
always: s'exécute à chaque démarrage. Par exemple, si vous configurez des modules tels que Bootcmd et Update Etc Hosts, ils s'exécutent à chaque démarrage de l'instance.
Remplacement du système d'exploitation : s'exécute automatiquement.
-
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
-
Format
La première ligne doit être
#cloud-config, sans espace avant.Le contenu doit respecter la syntaxe YAML.
-
Exemples de données Cloud Config
-
Personnaliser les sources logicielles de l'instance
Dans la section User Data, saisissez le contenu suivant pour configurer des sources logicielles personnalisées. L'exemple utilise une image Ubuntu. Si vous utilisez une image différente, adaptez la configuration au module approprié.
#cloud-config apt: preserve_sources_list: false disable_suites: - $RELEASE-updates - backports - $RELEASE - mysuite primary: - arches: - amd64 - i386 - default uri: http://us.archive.ubuntu.com/ubuntu -
Configurer l'installation automatique du service Nginx
Dans la section User Data, saisissez le contenu suivant pour installer automatiquement le service Nginx.
#cloud-config packages: - nginx runcmd: - systemctl start nginx.service -
Configurer un nom d'hôte personnalisé
Dans la section User Data, saisissez le contenu suivant pour définir un nom d'hôte personnalisé.
#cloud-config hostname: my-instance fqdn: my-instance.localdomain -
Configurer l'exécution automatique d'un script personnalisé
Dans la section User Data, saisissez le contenu suivant pour exécuter automatiquement un script shell à chaque démarrage de l'instance.
#cloud-config bootcmd: - echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt
-
Fichiers Include
-
Présentation
Un fichier Include contient des liens vers un ou plusieurs scripts User-Data ou fichiers de données Cloud Config. Séparez les liens par des sauts de ligne. Au démarrage, cloud-init analyse et lit séquentiellement le contenu de chaque lien. En cas d'erreur de lecture, cloud-init interrompt le traitement des liens restants.
RemarqueVous pouvez utiliser Alibaba Cloud Object Storage Service (OSS) pour charger des scripts User-Data ou des données Cloud Config, récupérer les liens et définir leur période de validité. Pour plus d'informations, consultez la rubrique Prise en main de la console OSS.
-
Fréquence d'exécution
Démarrage de l'instance : la fréquence dépend du contenu du lien. Par exemple, si le lien pointe vers un script User-Data, celui-ci s'exécute uniquement lors du premier démarrage. S'il pointe vers des données Cloud Config, il suit la fréquence d'exécution de ces données.
Remplacement du système d'exploitation : s'exécute automatiquement.
-
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
Format
La première ligne doit être
#include, sans espace avant. -
Exemple de fichier Include
#include https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.shL'exemple de fichier Include contient un lien vers un script. Comme il s'agit d'un script User-Data, il s'exécute uniquement lors du premier démarrage de l'instance.
RemarqueSi vous utilisez un fichier Include ou du contenu compressé Gzip, vous devez utiliser un service de stockage pour charger le script, récupérer son lien et définir la période de validité de ce lien. Nous vous recommandons d'utiliser Alibaba Cloud OSS. Pour plus d'informations, consultez la rubrique Prise en main de la console OSS.
Contenu compressé Gzip
-
Présentation
Si la taille de votre script User-Data, de vos données Cloud Config ou de votre fichier Include dépasse 32 Ko, utilisez du contenu compressé Gzip (format
.gz). Créez un lien vers le contenu compressé et insérez-le dans un fichier Include. cloud-init décompresse automatiquement le contenu Gzip. L'exécution du contenu décompressé produit le même résultat que l'exécution directe du contenu original.RemarqueVous pouvez utiliser Alibaba Cloud OSS pour charger des scripts User-Data ou des données Cloud Config, récupérer les liens et définir leur période de validité. Pour plus d'informations, consultez la rubrique Prise en main de la console OSS.
-
Fréquence d'exécution
Démarrage de l'instance : déterminée par le type de script et de module. Par exemple, si le lien pointe vers un script User-Data compressé, celui-ci s'exécute uniquement lors du premier démarrage.
Remplacement du système d'exploitation : s'exécute automatiquement.
-
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
Format
La première ligne doit être
#include, sans espace avant. -
Exemple de contenu compressé Gzip
#include https://ecs-image-test.oss-cn-hangzhou.aliyuncs.com/userdata/myscript.gzCet exemple montre un fichier Include contenant un lien vers du contenu compressé Gzip. Après lecture, cloud-init décompresse et exécute automatiquement le contenu. Comme il s'agit d'un script User-Data compressé, il s'exécute uniquement lors du premier démarrage de l'instance.
Upstart Job
Pour utiliser Upstart Job, vous devez installer le service upstart sur l'instance. Les systèmes d'exploitation prenant en charge upstart pour gérer le démarrage incluent CentOS 6, Ubuntu 10/12/14 et Debian 6/7.
-
Présentation
Upstart est un système d'initialisation piloté par les événements. Un Upstart Job est un fichier de configuration définissant le démarrage, l'arrêt et le mode d'exécution d'un service ou d'une tâche. Il se trouve généralement dans le répertoire
/etc/init/avec l'extension.conf. -
Fréquence d'exécution
Démarrage de l'instance : s'exécute automatiquement à chaque démarrage.
Remplacement du système d'exploitation : s'exécute automatiquement.
-
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
Format
La première ligne doit être
#upstart-job, sans espace avant. -
Exemple de contenu Upstart Job
#upstart-job description "upstart test" start on runlevel [2345] # Executes at run levels 2, 3, 4, and 5 stop on runlevel [!2345] # Does not execute at run levels other than 2, 3, 4, and 5 exec echo "Hello World. The time is now $(date -R)!" | tee /root/output.txtL'exemple d'Upstart Job affiche un message horodaté lorsque le système atteint les niveaux d'exécution spécifiés et enregistre le message dans le fichier
/root/output.txt. La tâche s'arrête lorsque le système quitte ces niveaux.
Fichiers MIME multi-parties
-
Présentation
Un fichier MIME multi-parties permet de transmettre plusieurs types d'instructions. Par exemple, vous pouvez inclure à la fois
text/cloud-config(pour la configuration cloud-init) ettext/x-shellscript(script shell) dans les données utilisateur. Cloud-init analyse et exécute séparément ces différents types d'instructions. -
Fréquence d'exécution
Démarrage de l'instance : dépend du type de chaque partie du message MIME et de la configuration cloud-init. Par exemple, si le type de contenu est un script User-Data, il s'exécute uniquement lors du premier démarrage. S'il s'agit de données Cloud Config, il suit la fréquence d'exécution de ces données.
Remplacement du système d'exploitation : s'exécute automatiquement.
-
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
Format
La première ligne est
Content-Type: multipart/mixed; boundary="****". La limite (boundary) est personnalisable et ne doit comporter aucun espace au début de la ligne.La deuxième ligne spécifie la version
MIME-Version: 1.0. Ce champ est généralement requis dans chaque message MIME.
-
Exemple de fichier MIME multi-parties
Content-Type: multipart/mixed; boundary="//" MIME-Version: 1.0 --// Content-Type: text/cloud-config; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cloud-config.txt" #cloud-config runcmd: - [ mkdir, /test-cloudinit ] write_files: - path: /test-cloudinit/cloud-init.txt content: | Created by cloud-init append: true --// Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash mkdir test-userscript touch /test-userscript/userscript.txt echo "Created by bash shell script" >> /test-userscript/userscript.txt --//--L'exemple de fichier MIME multi-parties contient des instructions cloud-init et un script shell Bash :
Les instructions cloud-init créent un fichier (
/test-cloudinit/cloud-init.txt) et y écriventCreated by cloud-init.Le script shell Bash crée un fichier (
/test-userscript/userscript.txt) et y écritCreated by bash shell script.
Instances Windows
Les instances Windows exécutent les scripts de données utilisateur via le plugin Plugin_Main_CloudinitUserData de l'outil Vminit. Ce plugin prend en charge l'exécution de scripts uniquement lors du premier démarrage de l'instance. Il accepte les scripts Bat et PowerShell.
Scripts Bat
-
Fréquence d'exécution
Démarrage de l'instance : s'exécute uniquement lors du premier démarrage. Le script ne s'exécute pas lors des redémarrages suivants.
Remplacement du système d'exploitation : s'exécute automatiquement.
-
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
Format
La première ligne doit être
[bat], sans espace avant.Utilisez uniquement des caractères demi-largeur. Ne saisissez pas de caractères supplémentaires.
-
N'écrivez pas de données dans le répertoire
C:\Users, sinon l'exécution des données utilisateur échouera.RemarqueSous Windows,
C:\Userset ses sous-répertoires ne sont accessibles qu'après la connexion. Les données utilisateur s'exécutant lors de l'initialisation du système, avant la connexion, toute écriture dansC:\Userséchoue.
-
Exemple de script Bat
-
Exécuter un script personnalisé
[bat] echo "bat test" > C:\userdata_test.txtCet exemple de script Bat écrit
"bat test"dans le fichier userdata_test.txt lors du premier démarrage de l'instance.
-
Scripts PowerShell
-
Fréquence d'exécution
Démarrage de l'instance : s'exécute uniquement lors du premier démarrage. Le script ne s'exécute pas lors des redémarrages suivants.
Remplacement du système d'exploitation : s'exécute automatiquement.
-
Réinitialisation du disque système : s'exécute automatiquement.
ImportantLe script ne s'exécute pas automatiquement dans les cas suivants :
Si vous utilisez une image personnalisée créée à partir de l'instance source pour remplacer le système d'exploitation, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
Si vous utilisez une image personnalisée pour créer une instance, le disque système contient déjà des données. Lors de l'initialisation du disque système, le système considère que l'instance ne démarre pas pour la première fois et n'exécute pas le script.
-
Format
La première ligne doit être
[powershell], sans espace avant.Utilisez uniquement des caractères demi-largeur. Ne saisissez pas de caractères supplémentaires.
-
N'écrivez pas de données dans le répertoire
C:\Users, sinon l'exécution des données utilisateur échouera.RemarqueSous Windows,
C:\Userset ses sous-répertoires ne sont accessibles qu'après la connexion. Les données utilisateur s'exécutant lors de l'initialisation du système, avant la connexion, toute écriture dansC:\Userséchoue.
-
Exemple de script PowerShell
-
Exécuter un script personnalisé
[powershell] write-output "powershell test" | Out-File C:\userdata_test.txtCet exemple de script PowerShell écrit
powershell testdans le fichier userdata_test.txt lors du premier démarrage de l'instance.
-
2. Utiliser les données utilisateur lors de la création d'une instance
-
Créer une instance dans la console
Sur la page d'achat d'instance, développez la section Advanced Options. Dans la section User Data, saisissez les données utilisateur.
ImportantSi vos données utilisateur sont déjà encodées en Base64, sélectionnez The user data is Base64-encoded. Les données originales non encodées ne doivent pas dépasser 32 Ko. Si vous fournissez du texte brut, ne sélectionnez pas cette option : le système encode automatiquement le contenu.
-
Créer une instance en appelant une API
Si vous créez une instance via une API, spécifiez le paramètre
UserDatadans l'opération RunInstances ou CreateInstance.
3. Vérifier que les données utilisateur s'exécutent comme prévu
Vérifiez que le script personnalisé s'exécute correctement selon son contenu. L'exemple suivant montre comment vérifier l'exécution d'un script User-Data transmis à une instance Linux.
#!/bin/sh
echo "Hello World. The time is now $(date -R)!" | tee /root/userdata_test.txt
Dans cet exemple, le script User-Data écrit l'heure système dans le fichier userdata_test.txt lors du premier démarrage. Pour vérifier l'exécution, exécutez la commande cat userdata_test.txt et consultez le résultat. L'heure système doit apparaître dans le fichier userdata_test.txt.

En cas de problème lors de l'exécution d'un script User-Data, exécutez la commande Cloud Assistant commune ACS-ECS-UserData-Check-for-linux.sh pour obtenir les journaux d'erreur. La présence d'un message d'erreur indique un échec d'exécution du script. En l'absence de message d'erreur, le script s'est exécuté correctement ; vous devez alors investiguer d'autres causes potentielles. Pour plus d'informations sur les commandes Cloud Assistant communes, consultez la rubrique Afficher et exécuter des commandes publiques.
Autres opérations
Afficher les données utilisateur d'une instance existante
Après transmission des données utilisateur à une instance, vous pouvez les afficher via le service de métadonnées ou dans la console.
Service de métadonnées (mode de sécurité renforcée)
-
Instance Linux
TOKEN=`curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:180"` curl -H "X-aliyun-ecs-metadata-token: $TOKEN" http://100.100.100.200/latest/user-data -
Instance Windows
$token = Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token-ttl-seconds" = "180"} -Method PUT -Uri http://100.100.100.200/latest/api/token Invoke-RestMethod -Headers @{"X-aliyun-ecs-metadata-token" = $token} -Method GET -Uri http://100.100.100.200/latest/user-data
Dans les exemples précédents, la période de validité du jeton est de 180 secondes. Ajustez-la selon votre scénario.
Cet exemple utilise le mode de sécurité renforcée du service de métadonnées. Pour plus d'informations sur la récupération d'informations, consultez la rubrique Métadonnées d'instance.
Pour plus d'informations sur les métadonnées, consultez la rubrique Métadonnées d'instance.
Console
-
Assurez-vous que l'instance est à l'état Stopped.
ImportantSi l'instance est en paiement à l'utilisation et se trouve dans un VPC, nous vous recommandons de définir le Stop Mode sur Standard Mode lors de l'arrêt. Si vous sélectionnez Economical Mode, les ressources de calcul (vCPU et mémoire) sont libérées, ce qui peut empêcher le redémarrage en cas de stock insuffisant. Pour plus d'informations, consultez la rubrique Mode économique.
Cliquez sur l'ID de l'instance cible pour accéder à sa page de détails. Cliquez sur All Actions pour développer le panneau des opérations. Recherchez et cliquez sur . Consultez ensuite les données utilisateur configurées dans la section User Data.
API
Appelez l'opération DescribeUserData pour interroger les données utilisateur d'une instance ECS. Pour plus d'informations, consultez la rubrique DescribeUserData.
Modifier les données utilisateur d'une instance existante
Pour modifier les données utilisateur d'une instance existante, effectuez les opérations suivantes dans la console.
-
Assurez-vous que l'instance est à l'état Stopped.
ImportantSi l'instance est en paiement à l'utilisation et se trouve dans un VPC, nous vous recommandons de définir le Stop Mode sur Standard Mode lors de l'arrêt. Si vous sélectionnez Economical Mode, les ressources de calcul (vCPU et mémoire) sont libérées, ce qui peut empêcher le redémarrage en cas de stock insuffisant. Pour plus d'informations, consultez la rubrique Mode économique.
Cliquez sur l'ID de l'instance cible pour accéder à sa page de détails. Cliquez sur All Actions pour développer le panneau des opérations. Recherchez et cliquez sur . Saisissez ensuite les nouvelles données utilisateur dans la section User Data.
Après modification des données utilisateur, l'exécution du script au démarrage dépend de son format et de sa fréquence d'exécution. Clarifiez vos besoins avant toute modification. Pour plus d'informations, consultez la section Formats de données utilisateur et fréquences d'exécution.
Références
Vous pouvez également utiliser la fonctionnalité de données utilisateur d'Auto Scaling pour permettre à plusieurs instances ECS d'exécuter automatiquement des scripts ou des commandes configurés au démarrage. Cela garantit la cohérence des configurations et simplifie les opérations et la maintenance (O&M). Pour plus d'informations, consultez la rubrique Utiliser les données utilisateur d'instance pour configurer automatiquement les instances ECS.
Pour assurer la reprise rapide d'un service ou d'un script interrompu par une exception, un redémarrage ou une panne de courant, utilisez le plugin Cloud Assistant
ecs-tool-servicekeepalive. Pour plus d'informations, consultez la rubrique Utiliser un plugin Cloud Assistant pour maintenir les services actifs.Pour plus d'informations sur la gestion de l'initialisation des instances, consultez la rubrique Présentation des outils d'initialisation.