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?
- Anonymous1 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