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 values vereist 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 uit te voeren of parameters om verbinding te maken met een SQL-warehouse. Voor de aangepaste configuratie parameters, gebruik het app.yaml-bestand.

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 table ziet u de instellingen die u kunt definiëren in het app.yaml-bestand, gevolgd door voorbeeldconfiguratiebestanden.

app.yaml -instellingen
command

Type: sequence

Een optioneel aantal 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 standaard values zijn [python, app.py].

De opdracht wordt niet uitgevoerd in een shell, dus alle valuesset in de omgeving worden niet doorgegeven aan uw app. Als uw app extra parameters nodig heeft om te draaien, gebruik dan de env-structuur.

Deze instelling is optioneel.
env

Type: list

Een optionele topniveausleutel voor list sleutel-waarde paren die omgevingsvariabelen definiëren en aan uw app doorgeven. De value kan een werkelijke parameterwaarde zijn of een verwijzing naar where waarin de waarde wordt opgeslagen. De geldige items in de list 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 database table 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 voorbeeld app.yaml configuratiebestand 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, setvalueFrom: <dependency_name> in de sectie env van uw app.yaml-configuratie. 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 set in de Databricks Apps-omgeving en beschikbaar voor alle apps. Als u aanvullende omgevingsvariabelen wilt set, 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 set tot 0.0.0.0 en mag niet worden overschreven.
STREAMLIT_SERVER_PORT De poort voor gebruik door Streamlit. Deze waarde is set voor DATABRICKS_APP_PORT en mag niet worden overschreven.
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION Omdat de omgekeerde proxy van Databricks Apps bescherming biedt tegen XSRF (Cross-Site Request Forgery), is dit set tot false.
STREAMLIT_SERVER_ENABLE_CORS Omdat de reverse proxy van Databricks-apps tegen CORS (Cross-Origin Resource Sharing) beschermt, is dit van set naar false.
STREAMLIT_SERVER_HEADLESS Dit is set naar true, zodat Streamlit wordt uitgevoerd zonder een browser window te openen bij het opstarten.
STREAMLIT_BROWSER_GATHER_USAGE_STATS Dit is set aan false om te voorkomen dat gebruikersstatistieken naar Streamlit worden verzonden.