Tous les produits
Search
Centre de documentation

Elastic Compute Service:Initialiser une instance à l'aide des données utilisateur

Dernière mise à jour :Oct 10, 2026

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.

Remarque
  • 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.

    Important

    Le 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.txt

      Cet 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.

      Important

      Au 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.service
      Remarque

      Dans le code précédent, 114.114.114.114 est l'adresse du serveur DNS, https://mirror.stream.centos.org est l'adresse du dépôt yum pour CentOS Stream, et server ntp1.aliyun.com est 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_keys
      Remarque

      Remplacez la clé publique d'exemple ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCRnnUveAis par votre propre clé publique.

Remarque

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.

      Important

      Le 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.

    Remarque

    Vous 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.

      Important

      Le 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.sh

    L'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.

    Remarque

    Si 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.

    Remarque

    Vous 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.

      Important

      Le 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.gz

    Cet 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

Remarque

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.

      Important

      Le 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.txt

    L'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) et text/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.

      Important

      Le 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 écrivent Created by cloud-init.

    • Le script shell Bash crée un fichier (/test-userscript/userscript.txt) et y écrit Created 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.

      Important

      Le 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.

      Remarque

      Sous Windows, C:\Users et 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 dans C:\Users échoue.

  • Exemple de script Bat

    • Exécuter un script personnalisé

      [bat]
      echo "bat test" > C:\userdata_test.txt

      Cet 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.

      Important

      Le 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.

      Remarque

      Sous Windows, C:\Users et 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 dans C:\Users échoue.

  • Exemple de script PowerShell

    • Exécuter un script personnalisé

      [powershell]
      write-output "powershell test" | Out-File C:\userdata_test.txt

      Cet exemple de script PowerShell écrit powershell test dans 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.

    Important

    Si 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 UserData dans 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.

view-result

Remarque

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
Remarque
  • 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

  1. Assurez-vous que l'instance est à l'état Stopped.

    Important

    Si 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.

  2. 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 Set User Data. 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.

  1. Assurez-vous que l'instance est à l'état Stopped.

    Important

    Si 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.

  2. 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 Set User Data. Saisissez ensuite les nouvelles données utilisateur dans la section User Data.

Important

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