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. |