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