Configurar variáveis de ambiente para tarefas sem servidor

Variáveis de ambiente fornecem configuração específica de implantação para o código de aplicação em tarefas sem servidor de Trabalhos do Lakeflow. Defina entradas nomeadas de variáveis de ambiente em um trabalho e selecione uma entrada para cada tarefa que precise disso. Durante a Beta, você configura variáveis de ambiente pela API Jobs.

Importante

Esse recurso está em Beta. Para usá-lo, um administrador do espaço de trabalho deve ativar variáveis de ambiente em Jobs do Lakeflow na página Prévias. Consulte Gerenciar visualizações do Azure Databricks.

Esta página descreve variáveis de ambiente para trabalhos serverless. A computação serverless não oferece suporte a scripts de inicialização. Se sua carga de trabalho roda em computação clássica, veja Definir e usar variáveis de ambiente com scripts de init.

Como funcionam as variáveis do ambiente

As entradas das variáveis de ambiente são definidas no nível do trabalho. Cada entrada possui uma chave única, contém variáveis inline e funciona com todos os tipos de tarefas serverless. Uma chave de entrada pode conter apenas letras, números, hífens e sublinhatões. Cada nome de variável em linha deve começar com uma letra ou sublinhado e pode conter apenas letras, números e sublinhas.

Cada tarefa seleciona uma única entrada de variável de ambiente com environment_variables_key e recebe apenas as variáveis dessa entrada. As entradas nunca são combinadas, e uma entrada não pode herdar de outra. Uma tarefa que omite environment_variables_key não recebe variáveis de ambiente.

Variáveis de ambiente estão disponíveis apenas para o código da aplicação que executa no processo da tarefa. Eles não estão disponíveis para a lógica de execução do Spark.

Requirements

  • Um administrador de espaço de trabalho ativou variáveis de ambiente no Lakeflow Jobs a partir da página de Prévias . Consulte Gerenciar visualizações do Azure Databricks.
  • Tarefas que são executadas na versão 5 ou posterior do ambiente serverless.

Limitações

Funções definidas pelo usuário (UDFs) não conseguem ler variáveis de ambiente, porque as UDFs rodam na lógica de execução do Spark em vez do processo de tarefa.

Os seguintes limites se aplicam:

Configuration Limit
Entradas de variáveis de ambiente por trabalho 10
Chave de entrada 1–100 caracteres; Deve ser compatível ^[\w-_]+$
Variáveis inline para cada entrada 100
Nome da variável inline 1–256 caracteres; Deve ser compatível ^[A-Za-z_][A-Za-z0-9_]*$
Valor da variável em linha 512 caracteres

Configure variáveis de ambiente com a API Jobs

Use o environment_variables campo em uma POST /api/2.2/jobs/create solicitação para definir entradas de variáveis de ambiente. Defina environment_variables_key em cada tarefa que use uma entrada.

O exemplo a seguir define entradas separadas para variáveis de ambiente para uma tarefa de notebook e uma tarefa JAR. Cada tarefa seleciona sua entrada com environment_variables_key, e qualquer tipo de tarefa serverless pode usar uma entrada da mesma forma:

{
  "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"
      }
    }
  ]
}

Você também pode configurar entradas de variáveis de ambiente com o Atualizar um trabalho, Sobrescrever todas as configurações de um trabalho e Enviar uma operação de execução única .

Leia variáveis de ambiente no código da aplicação

O código da aplicação lê variáveis configuradas do ambiente do processo.

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 adicionais