Forum Discussion
yongshao
1 year agoHelper III
Fabric API to create ADLS gen2 connection
I've tried to create a connection to ADLS gen2 account, but always got the "request has an invalid input" error, could someone please provide a correct playload template? import sempy.fabric as ...
yongshao
1 year agoHelper III
We can manually setup such connection via Fabric UI, but for production we have to use Fabric API to create a connection with ADLS gen2 account
I cannot find any payload template or format for such connection creation from https://learn.microsoft.com/en-us/rest/api/fabric/core/connections/create-connection?tabs=HTTP
it'll be helpful if you could provide the followings:
for SQL, it's
"connectionDetails": {
"type": "SQL",
"creationMethod": "SQL"
}
what's the values of type and creationMethod for Azure Data Lake Storage Gen2?
for basic authentication, it's
"credentials": {
"credentialType": "Basic",
"username": "admin",
"password": "********"
}
what's the syntax of credentials for Service principal authentication?
Anonymous
1 year agoNot applicable
Hi yongshao,
Perhaps you can tried to use "tenant_id", "client_id","client_secret", "storage_account_name",
"container_name" and "file_path" as the configuration that use in requests:
import requests
# configuration
tenant_id = "your-tenant-id"
client_id = "your-client-id"
client_secret = "your-client-secret"
storage_account_name = "your-storage-account-name"
container_name = "your-container-name"
file_path = "path/to/your/file"
# Get an access token
url = f"https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token"
payload = {
'grant_type': 'client_credentials',
'client_id': client_id,
'client_secret': client_secret,
'scope': 'https://storage.azure.com/.default'
}
response = requests.post(url, data=payload)
access_token = response.json().get('access_token')
# Access data from Azure Data Lake Storage Gen2
storage_url = f"https://{storage_account_name}.dfs.core.windows.net/{container_name}/{file_path}"
headers = {
'Authorization': f'Bearer {access_token}'
}
response = requests.get(storage_url, headers=headers)
Regards,
Xiaoxin Sheng