Is there a way to connect ADLS gen2 container with sas token in Synapse notebook?

Jize Xu 10 Reputation points Microsoft Employee
2024-01-23T11:29:41.3166667+00:00

I have tried as this: https://learn.microsoft.com/en-us/azure/synapse-analytics/spark/apache-spark-secure-credentials-with-tokenlibrary?pivots=programming-language-python#adls-gen2-storage-without-linked-services But the synapse notebook said fs.azure.sas.token.provider.type is invalid. User's image

How can I solve it? By the way, I cannot link it with linked service, because I want to generate many different notebooks to connect different ADLS gen2.

Azure Synapse Analytics
Azure Synapse Analytics
An Azure analytics service that brings together data integration, enterprise data warehousing, and big data analytics. Previously known as Azure SQL Data Warehouse.
5,373 questions
{count} votes

1 answer

Sort by: Most helpful
  1. Harishga 6,000 Reputation points Microsoft External Staff
    2024-01-24T05:14:04.5166667+00:00

    Hi @Jize Xu
    Welcome to Microsoft Q&A platform and thanks for posting your question here. I'm glad that you were able to resolve your issue and thank you for posting your solution so that others experiencing the same thing can easily reference this! Since the Microsoft Q&A community has a policy that "The question author cannot accept their own answer. They can only accept answers by others ", I'll repost your solution in case you'd like to accept the answer.

    Ask:
    How to connect an ADLS Gen2 container with a SAS token in Synapse notebook without using a linked service. The user has tried a solution from a Microsoft documentation page but is receiving an error message.

    Solution:
    Finally, I solved it with these codes. Notice that we should use "fs.azure.sas.token.provider.type.<ACCOUNT>.dfs.core.windows.net" as the provider key. The document I mentioned above misses the part ".<ACCOUNT>.dfs.core.windows.net"

    %%pyspark
    spark.conf.set("fs.azure.account.auth.type.<ACCOUNT>.dfs.core.windows.net", "SAS") spark.conf.set("fs.azure.sas.token.provider.type.<ACCOUNT>.dfs.core.windows.net", "com.microsoft.azure.synapse.tokenlibrary.ConfBasedSASProvider") spark.conf.set("spark.storage.synapse.<CONTAINER>.<ACCOUNT>.dfs.core.windows.net.sas", "<SAS KEY>")
    
    

    If I missed anything please let me know and I'd be happy to add it to my answer, or feel free to comment below with any additional information.

    Hope this helps. Do let us know if you any further queries.


    If this answers your query, do click Accept Answer and Yes for was this answer helpful. And, if you have any further query do let us know.


    0 comments No comments

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.