Configurar variables de entorno para trabajos sin servidor

Las variables de entorno proporcionan una configuración específica para el despliegue del código de la aplicación en tareas de Lakeflow Jobs sin servidor. Define entradas de variables de entorno nombradas en un trabajo y luego selecciona una entrada para cada tarea que la necesite. Durante la Beta, configuras las variables de entorno a través de la API de Empleos.

Importante

Esta característica se encuentra en su versión beta. Para usarlo, un administrador de espacio de trabajo debe activar las variables de Entorno en Lakeflow Jobs desde la página de Previsualizaciones . Consulte Administrar versiones preliminares de Azure Databricks.

Esta página describe variables de entorno para trabajos sin servidor. El computo serverless no soporta scripts de init. Si tu carga de trabajo funciona en computación clásica, consulta Establecer y usar variables de entorno con scripts de init.

Cómo funcionan las variables de entorno

Las entradas de variables de entorno se definen a nivel de trabajo. Cada entrada tiene una clave única, contiene variables en línea y funciona con todos los tipos de tareas sin servidor. Una clave de registro solo puede contener letras, números, guiones medios y guiones bajos. El nombre de cada variable en línea debe comenzar con una letra o un guion bajo y puede contener solo letras, números y guiones bajos.

Cada tarea selecciona una única entrada de variable de entorno con environment_variables_key y recibe solo las variables de esa entrada. Las entradas nunca se combinan, y una entrada no puede heredar de otra. Una tarea que omite environment_variables_key no recibe ninguna variable de entorno.

Las variables de entorno solo están disponibles para el código de aplicación que se ejecuta en el proceso de la tarea. No están disponibles para la lógica de ejecución de Spark.

Requisitos

  • Un administrador de espacio de trabajo ha activado las variables de Entorno en Lakeflow Jobs desde la página de Previsualizaciones . Consulte Administrar versiones preliminares de Azure Databricks.
  • Tareas que se ejecutan en entornos sin servidor de la versión 5 o posteriores.

Limitations

Las funciones definidas por el usuario (UDFs) no pueden leer variables de entorno, porque las UDF se ejecutan en la lógica de ejecución de Spark en lugar del proceso de tarea.

Se aplican los siguientes límites:

Configuración Limit
Entradas de variables de entorno por trabajo 10
Clave de entrada 1–100 caracteres; Debe coincidir ^[\w-_]+$
Variables en línea por entrada 100
Nombre de la variable en línea 1–256 caracteres; Debe coincidir ^[A-Za-z_][A-Za-z0-9_]*$
Valor de la variable en línea 512 caracteres

Configurar variables de entorno con la API Jobs

Utiliza el environment_variables campo en una POST /api/2.2/jobs/create petición para definir entradas de variables de entorno. Establece environment_variables_key en cada tarea que use una entrada.

El siguiente ejemplo define entradas separadas para variables de entorno para una tarea de notebook y una tarea JAR. Cada tarea selecciona su entrada con environment_variables_key, y cualquier tipo de tarea sin servidor puede usar una entrada del mismo modo:

{
  "name": "serverless-environment-variables-example",
  "tasks": [
    {
      "task_key": "process_orders",
      "notebook_task": {
        "notebook_path": "/Workspace/Shared/process-orders"
      },
      "environment_key": "default",
      "environment_variables_key": "production"
    },
    {
      "task_key": "summarize",
      "spark_jar_task": {
        "main_class_name": "com.company.main"
      },
      "environment_key": "summary_env",
      "environment_variables_key": "summary_vars"
    }
  ],
  "environments": [
    {
      "environment_key": "default",
      "spec": {
        "environment_version": "5",
        "dependencies": []
      }
    },
    {
      "environment_key": "summary_env",
      "spec": {
        "environment_version": "5",
        "java_dependencies": ["/Volumes/company/default/prod/summarize.jar"]
      }
    }
  ],
  "environment_variables": [
    {
      "environment_variables_key": "production",
      "variables": {
        "APP_ENV": "production",
        "REGION": "us-west-2"
      }
    },
    {
      "environment_variables_key": "summary_vars",
      "variables": {
        "APP_ENV": "production",
        "LOG_LEVEL": "INFO",
        "LOG_FILE": "service.log"
      }
    }
  ]
}

También puedes configurar entradas de variables de entorno con Actualizar un trabajo, Sobrescribir todos los ajustes de un trabajo y Enviar una operación de ejecución única .

Leer variables de entorno en el código de la aplicación

El código de la aplicación lee variables configuradas del entorno del proceso.

Python

import os

app_environment = os.environ["APP_ENV"]
region = os.environ["REGION"]

Scala

val appEnvironment = sys.env("APP_ENV")
val region = sys.env("REGION")

Recursos adicionales