-
Notifications
You must be signed in to change notification settings - Fork 111
Expand file tree
/
Copy pathSample-REST-API-To-Databricks.sh
More file actions
52 lines (43 loc) · 2.47 KB
/
Sample-REST-API-To-Databricks.sh
File metadata and controls
52 lines (43 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/bash
# https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/latest/aad/service-prin-aad-token
# Create a service principal and a secret
# Make the service principal a contributor of the resource group or databricks workspace
# Note: This uses "jq" for JSON parsing
tenant_id="<<REPLACE-ME>>"
client_id="<<REPLACE-ME>>"
client_secret="<<REPLACE-ME>>"
subscription_id="<<REPLACE-ME>>"
resourceGroup="<<REPLACE-ME>>"
workspaceName="<<REPLACE-ME>>"
resourceId="/subscriptions/$subscription_id/resourceGroups/$resourceGroup/providers/Microsoft.Databricks/workspaces/$workspaceName"
azure_databricks_resource_id="2ff814a6-3304-4ab8-85cb-cd0e6f879c1d"
######################################################################################
# Get access tokens for Databricks API
######################################################################################
accessToken=$(curl -X POST https://login.microsoftonline.com/$tenant_id/oauth2/token \
-F resource=$azure_databricks_resource_id \
-F client_id=$client_id \
-F grant_type=client_credentials \
-F client_secret=$client_secret | jq .access_token --raw-output)
managementToken=$(curl -X POST https://login.microsoftonline.com/$tenant_id/oauth2/token \
-F resource=https://management.core.windows.net/ \
-F client_id=$client_id \
-F grant_type=client_credentials \
-F client_secret=$client_secret | jq .access_token --raw-output)
######################################################################################
# Get Databricks workspace URL (e.g. adb-5946405904802522.2.azuredatabricks.net)
######################################################################################
workspaceUrl=$(curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $managementToken" \
https://management.azure.com/subscriptions/$subscription_id/resourcegroups/$resourceGroup/providers/Microsoft.Databricks/workspaces/$workspaceName?api-version=2018-04-01 \
| jq .properties.workspaceUrl --raw-output)
echo "Databricks workspaceUrl: $workspaceUrl"
######################################################################################
# Sample Databricks REST API call
######################################################################################
curl -X GET \
-H "Authorization:Bearer $accessToken" \
-H "X-Databricks-Azure-SP-Management-Token: $managementToken" \
-H "X-Databricks-Azure-Workspace-Resource-Id: $resourceId" \
https://$workspaceUrl/api/2.0/clusters/list