Connect Databricks App to Databricks App
This recipe demonstrates how to connect from a Databricks App to an API hosted as another Databricks App.
This is another type of Machine-to-Machine (M2M) connectivity. As each Databricks App is assigned a dedicated service principal upon creation, you should use this service principal's credentials when interacting with any Databricks service, including other Databricks Apps.
Code snippet
In the Databricks Apps environment, environment variables for DATABRICKS_HOST
, DATABRICKS_CLIENT_ID
, and DATABRICKS_CLIENT_SECRET
are are automatically set based on the app's workspace and assigned service principal. Therefore, you do not need to explicitly specify these values in the following code:
from databricks.sdk import WorkspaceClient
import requests
# DATABRICKS_HOST, DATABRICKS_CLIENT_ID, DATABRICKS_CLIENT_SECRET available in environemnt
wc = WorkspaceClient()
headers = wc.config.authenticate() # Contains Bearer Token
response = requests.get(
"https://your-app-url/api/v1/healthcheck", headers=headers
)
print(response.json())
Permissions
For Databricks App connectivity and authentication, the connecting App service principal needs the following permissions:
CAN USE
on the target app
Dependencies
- Databricks SDK for Python -
databricks-sdk
- Requests -
requests
databricks-sdk
requests