Configureer omgevingsvariabelen voor serverless jobs

Omgevingsvariabelen bieden implementatie-specifieke configuratie voor applicatiecode in serverless Lakeflow Jobs-taken. Definieer vermeldingen van benoemde omgevingsvariabelen op een taak en selecteer vervolgens een invoer voor elke taak die deze nodig heeft. Tijdens de bèta configureer je omgevingsvariabelen via de Jobs API.

Belangrijk

Deze functie bevindt zich in de bètaversie. Om het te gebruiken, moet een werkruimtebeheerder Omgevingsvariabelen inschakelen in Lakeflow Jobs vanaf de pagina Voornemen. Zie Azure Databricks previews beheren.

Deze pagina beschrijft omgevingsvariabelen voor serverless jobs. Serverless compute ondersteunt geen init-scripts. Als je workload op classic compute draait, raadpleeg dan Omgevingsvariabelen instellen en gebruiken met init-scripts.

Hoe omgevingsvariabelen werken

Invoer van omgevingsvariabelen wordt op functieniveau gedefinieerd. Elke invoer heeft een unieke sleutel, bevat inline variabelen en werkt met alle serverless taaktypes. Een invoersleutel kan alleen letters, cijfers, koppeltekens en onderstrepen bevatten. Elke inline-variabelenaam moet beginnen met een letter of onderstreep en mag alleen letters, cijfers en onderstreepjes bevatten.

Elke taak selecteert een enkele omgevingsvariabele-invoer met environment_variables_key en ontvangt alleen de variabelen van die invoer. Vermeldingen worden nooit gecombineerd en één vermelding kan niet van een andere erven. Een taak die weglaat environment_variables_key ontvangt geen omgevingsvariabelen.

Omgevingsvariabelen zijn alleen beschikbaar voor applicatiecode die in het taakproces draait. Ze zijn niet beschikbaar voor de uitvoeringslogica van Spark.

Requirements

  • Een workspace-beheerder heeft Omgevingsvariabelen ingeschakeld in Lakeflow Jobs vanaf de pagina Previews . Zie Azure Databricks previews beheren.
  • Taken die worden uitgevoerd in serverloze omgeving versie 5 of hoger.

Limitations

Gebruikersgedefinieerde functies (UDF's) kunnen omgevingsvariabelen niet lezen, omdat UDF's draaien in Spark-uitvoeringslogica in plaats van in het taakproces.

De volgende limieten gelden:

Configuration Limit
Invoer van omgevingsvariabelen per taak 10
Toegangssleutel 1–100 tekens; Moet overeenkomen ^[\w-_]+$
Inline variabelen per invoer 100
Naam van inline variabele 1–256 tekens; Moet overeenkomen ^[A-Za-z_][A-Za-z0-9_]*$
Waarde van inline variabelen 512 tekens

Configureer omgevingsvariabelen met de Jobs API

Gebruik het environment_variables veld in een POST /api/2.2/jobs/create verzoek om omgevingsvariabele-entries te definiëren. Zet environment_variables_key op elke taak die een invoer gebruikt.

Het volgende voorbeeld definieert aparte omgevingsvariabele-invoeren voor een notebooktaak en een JAR-taak. Elke taak selecteert zijn entry met environment_variables_key, en elk serverless task-type kan een entry op dezelfde manier gebruiken:

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

Je kunt ook vermeldingen voor omgevingsvariabelen configureren met de bewerkingen een taak bijwerken, alle instellingen voor een taak overschrijven en een eenmalige uitvoering indienen.

Lees omgevingsvariabelen in applicatiecode

Applicatiecode leest geconfigureerde variabelen uit de procesomgeving.

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")

Aanvullende bronnen