Delen via


Configuratie van Databricks-apps

Belangrijk

Databricks-apps is beschikbaar als openbare preview.

In dit artikel worden de instellingen beschreven die automatisch zijn geconfigureerd in de Databricks Apps-omgeving en wordt uitgelegd hoe u aangepaste configuratie definieert die vereist is voor uw apps.

De Databricks Apps-omgeving stelt verschillende omgevingsvariabelen in, zoals de URL van de Azure Databricks-werkruimte waarop de app wordt uitgevoerd en de waarden die nodig zijn om verificatie voor uw app uit te voeren. Soms hebben uw apps echter aanvullende aangepaste variabelen nodig. U hebt bijvoorbeeld een aangepaste opdracht nodig om uw app of parameters uit te voeren om verbinding te maken met een SQL Warehouse. Gebruik het app.yaml bestand voor deze aangepaste configuratieparameters.

Uw Databricks-apps configureren met het app.yaml bestand

Notitie

Uw app-configuratiebestand kan de .yaml of .yml extensie gebruiken.

Als u aangepaste configuratie voor uw app wilt definiëren, voegt u een app.yaml bestand toe aan uw project. In de volgende tabel ziet u de instellingen die u in het app.yaml bestand kunt definiëren, gevolgd door voorbeeldconfiguratiebestanden.

app.yaml -instellingen
command

Type: sequence

Een optionele set argumenten om uw app uit te voeren. Gebruik deze instelling wanneer u een aangepaste opdracht nodig hebt om uw app uit te voeren. De standaardwaarden zijn [python, app.py].

De opdracht wordt niet uitgevoerd in een shell, dus alle waarden die in de omgeving zijn ingesteld, worden niet doorgegeven aan uw app. Als voor uw app aanvullende parameters moeten worden uitgevoerd, gebruikt u de env structuur.

Deze instelling is optioneel.
env

Type: list

De sleutel op het hoogste niveau voor een optionele lijst met sleutel-waardeparen die omgevingsvariabelen definiëren die aan uw app moeten worden doorgegeven. Dit value kan een werkelijke parameterwaarde zijn of een verwijzing naar waar de waarde wordt opgeslagen. De geldige items in de lijst zijn:

- name: De naam van de omgevingsvariabele.
- Een van:
- value: De waarde voor de omgevingsvariabele.
- valueFrom: Voor een extern gedefinieerde waarde, de naam van de bron die de waarde bevat. Bijvoorbeeld de naam van een geheim of een databasetabel die de waarde bevat.

Deze instelling is optioneel.

Voorbeeld app.yaml voor een Streamlit-app

In het volgende voorbeeldconfiguratiebestand app.yaml wordt een Streamlit-app uitgevoerd, waarbij een SQL-warehouse-id en een waarde voor de STREAMLIT_GATHER_USAGE_STATS parameter worden doorgegeven:

command: [
  "streamlit",
  "run",
  "app.py"
]
env:
  - name: "DATABRICKS_WAREHOUSE_ID"
    value: "quoz2bvjy8bl7skl"
  - name: "STREAMLIT_GATHER_USAGE_STATS"
    value: "false"

Voorbeeld app.yaml voor een Flask-app

In het volgende voorbeeldconfiguratiebestand app.yaml wordt een Flask-app uitgevoerd met de Gunicorn-server en wordt een omgevingsvariabele ingesteld die het pad naar een Unity Catalog-volume bevat:

command:
  - gunicorn
  - app:app
  - -w
  - 4
env:
  - name: "VOLUME_URI"
    value: "/Volumes/catalog-name/schema-name/dir-name"

Verwijzen naar een Databricks-geheim

Als u wilt verwijzen naar een geheim dat is geconfigureerd als een resourceafhankelijkheid voor uw app, stelt u valueFrom: <dependency_name> in het env gedeelte van uw app.yaml configuratie in. Vervang door dependency_name de waarde van de resourcesleutel uit de configuratie voor de geheime resource. Zie Hoe kan ik mijn Databricks-app integreren met Azure Databricks-services voor meer informatie over resourceafhankelijkheden van Databricks-apps. Zie Geheimen beheren voor meer informatie over het beheren van Databricks-geheimen.

In het volgende voorbeeld app.yaml wordt verwezen naar een geheim dat is geconfigureerd als een resourceafhankelijkheid:

command: [
  "python",
  "app.py"
]
env:
  - name: "SECRET_KEY"
    valueFrom: "secret-name"

Omgevingsvariabelen voor Databricks Apps

De volgende variabelen worden automatisch ingesteld in de Databricks Apps-omgeving en beschikbaar voor alle apps. Als u extra omgevingsvariabelen wilt instellen, voegt u deze toe aan het bestand app.yaml.

Variabele Beschrijving
DATABRICKS_APP_NAME De naam van de actieve app.
DATABRICKS_WORKSPACE_ID De unieke id voor de Databricks-werkruimte waartoe de app behoort.
DATABRICKS_HOST De URL van de Databricks-werkruimte waartoe de app behoort.
DATABRICKS_APP_PORT De netwerkpoort waarop de app moet luisteren.
DATABRICKS_CLIENT_ID De client-id voor de Databricks-service-principal die is toegewezen aan de app.
DATABRICKS_CLIENT_SECRET Het OAuth-geheim voor de Databricks-service-principal die is toegewezen aan de app.

Standaardomgevingsvariabelen voor Streamlit

De volgende Streamlit-specifieke variabelen worden automatisch geconfigureerd in de Databricks Apps-omgeving en beschikbaar voor uw Databricks-apps die gebruikmaken van het Streamlit-framework:

Variabele Beschrijving
STREAMLIT_SERVER_ADDRESS Het serveradres voor gebruik door Streamlit. Deze waarde is ingesteld op 0.0.0.0 en mag niet worden overschreven.
STREAMLIT_SERVER_PORT De poort voor gebruik door Streamlit. Deze waarde is ingesteld op DATABRICKS_APP_PORT en mag niet worden overschreven.
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION Omdat de omgekeerde proxy van Databricks-apps wordt beschermd tegen XSRF (Cross-Site Request Forgery), is dit ingesteld op false.
STREAMLIT_SERVER_ENABLE_CORS Omdat de omgekeerde proxy van Databricks-apps wordt beveiligd tegen CORS (Cross-Origin Resource Sharing), is dit ingesteld op false.
STREAMLIT_SERVER_HEADLESS Dit is zo ingesteld true dat Streamlit wordt uitgevoerd zonder een browservenster te openen wanneer u begint.
STREAMLIT_BROWSER_GATHER_USAGE_STATS Dit is ingesteld om te false voorkomen dat gebruikersstatistieken naar Streamlit worden verzonden.