Pular para o conteúdo principal

Configure variáveis de ambiente para jobs serverless

As variáveis de ambiente fornecem configuração específica de implantação para o código do aplicativo em tarefas serverless do Lakeflow Jobs. Defina entradas de variáveis de ambiente nomeadas em um job e, em seguida, selecione uma entrada para cada tarefa que precise dela. Durante a versão Beta, você configura variáveis de ambiente por meio da API de Jobs.

info

Beta

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

This page describes environment variables for serverless jobs. Serverless compute doesn't support init scripts. If your workload runs on classic compute, see Set and use environment variables with init scripts.

Como as variáveis de ambiente funcionam

As entradas de variável de ambiente são definidas no nível do job. Cada entrada possui uma unique key, contém variáveis inline e funciona com todos os tipos de tarefa serverless. Uma chave de entrada pode conter apenas letras, números, hifens e underscores. Cada nome de variável inline deve começar com uma letra ou underscore e pode conter apenas letras, números e underscores.

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 nenhuma variável de ambiente.

Environment variables are available only to application code that runs in the task process. They aren't available to Spark execution logic.

Requisitos

  • A workspace admin has turned on Environment variables in Lakeflow Jobs from the Previews page. See Manage Databricks previews.
  • Tarefas que são executadas em ambiente serverless versão 5 ou posterior.

Limitations

Funções definidas pelo usuário (UDFs) não podem ler variáveis de ambiente, pois as UDFs são executadas na lógica de execução do Spark em vez de no processo da tarefa.

Aplicam-se os seguintes limites:

Configuração

Limite

Entradas de variáveis de ambiente por job

10

Chave de entrada

1–100 caracteres; deve corresponder ^[\w\-_]+$

Variáveis embutidas por entrada

100

Nome da variável em linha

1–256 caracteres; deve corresponder ^[A-Za-z_][A-Za-z0-9_]*$

Inline variable value

512 caracteres

Configuração

Limite

Entradas de variáveis de ambiente por job

10

Chave de entrada

1–100 caracteres; deve corresponder ^[\w\-_]+$

Variáveis embutidas por entrada

100

Nome da variável em linha

1–256 caracteres; deve corresponder ^[A-Za-z_][A-Za-z0-9_]*$

Inline variable value

512 caracteres

Configure variáveis de ambiente com a API de Tarefas.

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

The following example defines separate environment variable entries for a notebook task and a JAR task. Each task selects its entry with environment_variables_key, and any serverless task type can use an entry the same way:

JSON
{
"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ável de ambiente com as operações Atualizar um job, Substituir todas as configurações de um job e Enviar uma execução única.

Ler variáveis de ambiente no código do aplicativo

Application code reads configured variables from the process environment.

Python
import os

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

Outros recursos