Tous les produits
Search
Centre de documentation

Function Compute:Configurer des variables d'environnement

Dernière mise à jour :Aug 12, 2026

Les variables d'environnement permettent d'ajuster le comportement d'une fonction FC sans modifier son code. Il s'agit de paires clé-valeur de type chaîne stockées dans la configuration de la fonction. Chaque fonction dispose de son propre jeu de variables d'environnement. Cette rubrique présente les principes fondamentaux des variables d'environnement ainsi que leur configuration.

Sécurité

Lors de la création ou de la mise à jour des variables d'environnement, Function Compute les chiffre au repos à l'aide de l'algorithme Advanced Encryption Standard 256 (AES-256). Lors de l'initialisation d'une instance de fonction, ces variables sont déchiffrées et injectées dans l'environnement de l'instance.

Limites

  • Règles relatives au jeu de caractères

    • Une clé doit commencer par une lettre et ne contenir que des lettres, des chiffres et des traits de soulignement (_).

  • Limite de taille

    La taille totale de toutes les variables d'environnement ne doit pas dépasser 4 Ko.

  • Variables d'environnement système réservées

    Pour éviter tout conflit système, vous ne pouvez pas utiliser de variables d'environnement portant le préfixe réservé FC_*.

    Function Compute prend en charge les variables d'environnement système suivantes :

    • FC_FUNC_CODE_PATH : répertoire de déploiement du code.

    • ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET et ALIBABA_CLOUD_SECURITY_TOKEN : identifiants temporaires obtenus via le rôle d'exécution de la fonction, comprenant l'AccessKey ID, l'AccessKey secret et le token temporaire.

    • FC_ACCOUNT_ID : ID utilisateur.

    • FC_FUNCTION_HANDLER : handler de la fonction.

    • FC_FUNCTION_MEMORY_SIZE : taille mémoire configurée pour la fonction, exprimée en Mo.

    • FC_FUNCTION_NAME : nom de la fonction.

    • FC_REGION : région où réside la fonction.

    • FC_CUSTOM_LISTEN_PORT : port d'écoute personnalisé de la fonction.

    • FC_INSTANCE_ID : ID de l'instance de fonction.

    • FC_VER_ID : ID de version de la fonction. Cette variable est disponible pour les environnements d'exécution intégrés sous Debian 10 et versions antérieures.

    • FC_FUNCTION_VERSION : ID de version de la fonction. Cette variable est disponible pour les environnements d'exécution intégrés sous Debian 11 et versions ultérieures.

Cas d'utilisation

  • Partage de code entre plusieurs plateformes ou services

    Les variables d'environnement facilitent la gestion de configurations distinctes pour les environnements de test et de production, par exemple en spécifiant différents buckets Object Storage Service (OSS), bases de données ou tables. Vous pouvez ainsi déployer la même base de code sur plusieurs plateformes sans aucune modification.

  • Configuration des identifiants

    Définissez les identifiants de connexion à une base de données, votre AccessKey Alibaba Cloud ou toute autre information d'authentification sensible via des variables d'environnement.

  • Paramétrage des variables système

    Configurez des répertoires tels que PATH et HOME afin d'utiliser les bibliothèques système avec plus de flexibilité.

Configurer des variables d'environnement

Console

Prérequis

Une fonction est créée. Pour plus d'informations, consultez Créer une fonction.

Procédure

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, choisissez Function Management > Functions.

  2. Dans la barre de navigation supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.

  3. Sur la page de détails de la fonction, cliquez sur l'onglet Configuration, puis dans la section Advanced Settings, cliquez sur Modify.

  4. Dans le panneau Advanced Settings, sous Environment Variables, configurez les variables selon l'une des méthodes suivantes, puis cliquez sur Deploy.

    • Via l'éditeur de formulaire

      1. Cliquez sur + Add Variable.

      2. Configurez une paire clé-valeur pour la variable d'environnement :

        • Variable : saisissez une clé personnalisée.

        • Value : saisissez une valeur personnalisée.

    • Via l'éditeur JSON

      1. Cliquez sur Use JSON format to edit.

      2. Dans la zone de texte, saisissez les paires clé-valeur au format JSON, comme illustré dans l'exemple suivant :

        {
            "key": "value"
        }

        Exemple :

        {
            "BUCKET_NAME": "MY_BUCKET",
            "TABLE_NAME": "MY_TABLE"
        }
  5. Vérifiez que les variables d'environnement ont bien pris effet.

    1. Sur la page de détails de la fonction, cliquez sur l'onglet Code.

    2. Dans l'éditeur de code, écrivez votre code, puis cliquez sur Deploy. Une fois le déploiement terminé, cliquez sur Test Function.

      L'exemple de code suivant pour une fonction événementielle Python montre comment vérifier les variables d'environnement :

      # -*- coding: utf-8 -*-
      import logging
      import os
      
      def handler(event, context):
          logger = logging.getLogger()
          value = os.environ.get('BUCKET_NAME')
          logger.info('BUCKET_NAME: {}'.format(value))
          value = os.environ.get('TABLE_NAME')
          logger.info('TABLE_NAME: {}'.format(value))
          return "done"
    3. Sous l'onglet Code, consultez la section Log Output. Après l'exécution réussie de la fonction, les variables d'environnement configurées apparaissent dans les journaux.

Serverless Devs

Prérequis

Serverless Devs est installé et configuré. Pour plus d'informations, consultez Démarrage rapide.

Procédure

  1. Créez un répertoire de code pour les tests, par exemple test.

  2. Accédez au répertoire test et créez un fichier index.py ainsi qu'un fichier s.yaml.

    Le répertoire de code présente la structure suivante :

    .
    ├── code
    │   └── index.py
    └── s.yaml

    Le fichier index.py contient le code de votre fonction. Pour obtenir un exemple de code, reportez-vous à l'exemple fourni dans la section Console.

    Le fichier s.yaml correspond au fichier de configuration de la fonction. Voici un exemple :

    edition: 3.0.0
    name: hello-world-app
    # access: specifies the required credential information for the application.
    # For more information about how to configure credentials, see https://www.serverless-devs.com/serverless-devs/command/config
    # For more information about the credential priority, see https://www.serverless-devs.com/serverless-devs/tool#credential-priority-and-specifications
    access: "default"
    
    vars: # Global variables
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        # To perform an operation only on a specific service like hello_world, specify its name in the command. Example:
        # Build only for the hello_world service: s hello_world build
        # If you run the s build command without specifying a service, Serverless Devs performs the build operation on all services that are at the same level as hello_world in the YAML file.
        component: fc3 # The component name. Serverless Devs uses components to extend its capabilities. This component enables Function Compute features.
        # actions: # Custom execution logic. For more information, see https://docs.serverless-devs.com/serverless-devs/yaml#actions.
        props:
          region: ${vars.region} # For more information about how to use variables, see https://docs.serverless-devs.com/serverless-devs/yaml#variable-assignment.
          functionName: envdemo # Declares a function named envdemo.
          description: 'hello world by serverless devs'
          runtime: python3 # Specifies the function runtime.
          code: ./code
          handler: index.handler # Specifies the function handler.
          memorySize: 128
          timeout: 30
          environmentVariables: # Configures two environment variables for the function.
              BUCKET_NAME: MY_BUCKET
              TABLE_NAME: MY_TABLE
          codeUri: ./ # Deploys the function from the current directory "./". During deployment, Serverless Devs packages and uploads the current directory.
  3. Exécutez la commande s deploy pour déployer le projet.

    Après un déploiement réussi, connectez-vous à la console Function Compute pour consulter la fonction créée ainsi que ses variables d'environnement.

SDK

Les exemples suivants utilisent le SDK Python. Le paramètre environmentVariables, qui accepte un dictionnaire, permet de spécifier les variables d'environnement. L'extrait de code ci-dessous montre comment créer, mettre à jour et récupérer ces variables.

  • Création de variables d'environnement

    # coding: utf-8
    import fc2
    import os
    
    client = fc2.Client(
        endpoint='your endpoint', # The endpoint.
        # We recommend not storing your AccessKey ID and AccessKey secret in your code.
        # Leaking this sensitive information can compromise the security of your resources.
        # This example uses environment variables for authentication.
        # Before running this code, set the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables locally.
        accessKeyID=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), # Your AccessKey ID, used for authentication. You can create and manage it in the RAM console.
        accessKeySecret=os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET') # Your AccessKey secret, used for authentication. You can create and manage it in the RAM console.
    )
    
    client.create_service('test')
    
    client.create_function(
        'test', # The service name.
        'test_env', # The function name.
        'python3',  # The runtime.
        'main.handler', # The handler.
        codeDir='/path/to/code/', # The code directory.
        environmentVariables={'testKey': 'testValue'} # The environment variables to configure.
    )
    
    res = client.get_function('test', 'test_env')
    
    print(res.data)
      
  • Mise à jour des variables d'environnement

    client.update_function(
        'test', 'test_env', 'python3',  'main.handler',
        codeDir='/path/to/code/', environmentVariables={'newKey': 'newValue'})
    res = client.get_function('test', 'test_env')
    print(res.data)           
  • Récupération des variables d'environnement

    resp = client.get_function('test', 'test_env')
    env = func['environmentVariables']

Utiliser des variables d'environnement dans votre code

Si vous avez configuré la variable d'environnement {"key":"val"}, les exemples suivants montrent comment lire sa valeur dans différents environnements d'exécution.

var value = process.env.key
console.log(value)
import os
value = os.environ.get('key')
print(value)
$value = getenv('key');
System.out.println("value: "+ System.getenv("key"));
string value = Environment.GetEnvironmentVariable("key");
Console.WriteLine("value: {0}", value);
var value = os.Getenv("key")
fmt.Printf("value: %s\n", value)

FAQ

Puis-je définir des variables d'environnement différentes pour chaque version de fonction ?

Oui. Après avoir défini des variables d'environnement pour la version LATEST et publié une nouvelle version, vous pouvez modifier les variables de la version LATEST. Cela entraîne une différence de paramètres entre la version LATEST et la version publiée.

Comment empêcher l'affichage en clair des valeurs de variables d'environnement dans la console ? Comment chiffrer les données sensibles ?

Stockez vos variables d'environnement dans Key Management Service pour garantir le chiffrement des informations sensibles. Avant l'exécution de la fonction, votre code peut appeler l'API KMS afin de déchiffrer ces informations et les définir dans l'environnement d'exécution de la fonction. Pour plus d'informations, consultez Qu'est-ce que Key Management Service (KMS) ?.

Comment changer le fuseau horaire à l'aide d'une variable d'environnement ?

Lors de la création d'une fonction, vous pouvez sélectionner un fuseau horaire. Par défaut, les instances de fonction s'exécutent en temps universel coordonné (UTC). Une fois la fonction créée, modifiez le fuseau horaire en définissant la variable d'environnement TZ. Par exemple, pour utiliser l'heure normale de Chine (UTC+8), attribuez la valeur Asia/Shanghai à la variable TZ.