Todos los productos
Search
Centro de documentos

Function Compute:Configuración de variables de entorno

Última actualización: Sep 06, 2026

Las variables de entorno permiten ajustar el comportamiento de una función de FC sin modificar su código. Se almacenan como pares clave-valor de tipo cadena en la configuración de la función, y cada función cuenta con su propio conjunto. En este tema se explican los conceptos básicos de las variables de entorno y cómo configurarlas.

Seguridad

Al crear o actualizar variables de entorno, Function Compute las cifra en reposo mediante el estándar Advanced Encryption Standard 256 (AES-256). Cuando se inicializa una instancia de la función, las variables se descifran y se inyectan en el entorno de dicha instancia.

Límites

  • Reglas del conjunto de caracteres

    • La clave debe comenzar con una letra y solo puede contener letras, dígitos y guiones bajos (_).

  • Límite de tamaño

    El tamaño total de todas las variables de entorno no puede superar los 4 KB.

  • Variables de entorno del sistema reservadas

    Para evitar conflictos con el sistema, no es posible usar variables de entorno que tengan el prefijo reservado FC_*.

    Function Compute admite las siguientes variables de entorno del sistema:

    • FC_FUNC_CODE_PATH: el directorio de despliegue del código.

    • ALIBABA_CLOUD_ACCESS_KEY_ID, ALIBABA_CLOUD_ACCESS_KEY_SECRET y ALIBABA_CLOUD_SECURITY_TOKEN: las credenciales temporales obtenidas del rol de ejecución de la función, que incluyen el AccessKey ID, el secreto del AccessKey y el token temporal.

    • FC_ACCOUNT_ID: el identificador del usuario.

    • FC_FUNCTION_HANDLER: el controlador de la función.

    • FC_FUNCTION_MEMORY_SIZE: el tamaño de memoria configurado para la función, en MB.

    • FC_FUNCTION_NAME: el nombre de la función.

    • FC_REGION: la región donde reside la función.

    • FC_CUSTOM_LISTEN_PORT: el puerto de escucha personalizado de la función.

    • FC_INSTANCE_ID: el identificador de la instancia de la función.

    • FC_VER_ID: el identificador de la versión de la función. Esta variable está disponible para los entornos de ejecución integrados en Debian 10 y versiones anteriores.

    • FC_FUNCTION_VERSION: el identificador de la versión de la función. Esta variable está disponible para los entornos de ejecución integrados en Debian 11 y versiones posteriores.

Casos de uso

  • Compartir código entre plataformas o servicios

    Las variables de entorno facilitan la gestión de distintas configuraciones para los entornos de prueba y producción. Por ejemplo, permiten especificar buckets de Object Storage Service (OSS), bases de datos o tablas diferentes. De este modo, es posible desplegar la misma base de código en varias plataformas sin modificarla.

  • Configurar credenciales

    Mediante variables de entorno se pueden establecer las credenciales de conexión a la base de datos, el AccessKey de Alibaba Cloud u otra información de autenticación confidencial.

  • Configurar variables del sistema

    Si configura directorios como PATH y HOME, podrá utilizar las bibliotecas del sistema con mayor flexibilidad.

Configuración de variables de entorno

Console

Requisitos previos

Debe tener una función creada. Para obtener más información, consulte Create a function.

Procedimiento

  1. Inicie sesión en la consola de Function Compute. En el panel de navegación izquierdo, seleccione Function Management > Functions.

  2. En la barra de navegación superior, seleccione una región. En la página Functions, haga clic en la función de destino.

  3. En la página de detalles de la función, haga clic en la pestaña Configuration. Después, en la sección Advanced Settings, haga clic en Modify.

  4. En el panel Advanced Settings, dentro de Environment Variables, configure las variables con uno de los métodos a continuación y haga clic en Deploy.

    • Con el editor de formularios

      1. Haga clic en + Add Variable.

      2. Configure un par clave-valor para la variable de entorno:

        • Variable: introduzca una clave personalizada.

        • Value: introduzca un valor personalizado.

    • Con el editor JSON

      1. Haga clic en Use JSON format to edit.

      2. En el cuadro de texto, introduzca los pares clave-valor en formato JSON, tal como se muestra en el siguiente ejemplo:

        {
            "key": "value"
        }

        Ejemplo:

        {
            "BUCKET_NAME": "MY_BUCKET",
            "TABLE_NAME": "MY_TABLE"
        }
  5. Compruebe que las variables de entorno hayan surtido efecto.

    1. En la página de detalles de la función, haga clic en la pestaña Code.

    2. En el editor de código, escriba su código y haga clic en Deploy. Una vez completado correctamente el despliegue, haga clic en Test Function.

      El siguiente código de ejemplo de una función de evento en Python muestra cómo comprobar las variables de entorno:

      # -*- 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. En la pestaña Code, consulte la salida en Log Output. Si la función se ejecuta correctamente, las variables de entorno configuradas aparecerán en los registros.

Serverless Devs

Requisitos previos

Serverless Devs debe estar instalado y configurado. Para obtener más información, consulte Quick start.

Procedimiento

  1. Cree un directorio de código para pruebas, por ejemplo, test.

  2. Acceda al directorio test y cree un archivo index.py junto con un archivo s.yaml.

    La estructura del directorio de código es la siguiente:

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

    El archivo index.py contiene el código de la función. Para ver el código de ejemplo, consulte el apartado Console.

    El archivo s.yaml corresponde a la configuración de la función. A continuación se muestra un ejemplo:

    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. Ejecute el comando s deploy para desplegar el proyecto.

    Una vez completado correctamente el despliegue, inicie sesión en la consola de Function Compute para consultar la función creada y sus variables de entorno.

SDK

Los siguientes ejemplos utilizan el SDK de Python. El parámetro environmentVariables, que acepta un diccionario, define las variables de entorno. El código de ejemplo muestra cómo crearlas, actualizarlas y obtenerlas.

  • Crear variables de entorno

    # 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)
      
  • Actualizar variables de entorno

    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)           
  • Obtener variables de entorno

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

Uso de variables de entorno en el código

Si configuró la variable de entorno {"key":"val"}, los siguientes ejemplos muestran cómo leer su valor en distintos entornos de ejecución.

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)

Preguntas frecuentes

¿Es posible establecer variables de entorno distintas para cada versión de una función?

Sí. Después de definir las variables de entorno para la versión LATEST y publicar una nueva versión, puede modificar las variables de la versión LATEST. Así, esta última tendrá una configuración distinta a la de la versión publicada.

¿Cómo evito que los valores de las variables de entorno se muestren en texto plano en la consola? ¿De qué manera cifro los datos confidenciales?

Guarde las variables de entorno en Key Management Service para garantizar que la información confidencial permanezca cifrada. Antes de que la función se ejecute, su código puede llamar a la API de KMS para descifrar la información y establecerla en el entorno de ejecución de la función. Para obtener más información, consulte What is Key Management Service (KMS)?.

¿Cómo cambio la zona horaria mediante una variable de entorno?

Al crear una función, es posible seleccionar una zona horaria. De forma predeterminada, las instancias de la función se ejecutan en tiempo universal coordinado (UTC). Una vez creada la función, cambie la zona horaria estableciendo la variable de entorno TZ. Por ejemplo, para usar la hora estándar de China (UTC+8), establezca TZ en Asia/Shanghai.