簡體   English   中英

從 azure 函數連接到 Azure 數據湖 Gen 2

[英]Connection to Azure data lake Gen 2 from azure function

我正在嘗試從 Azure 函數連接到 Azure Data Lake Storage Gen2 以導入一些 XML 文件並將它們轉換為 JSON。 但我的代碼不起作用:

var creds = ApplicationTokenProvider.LoginSilentAsync(tenantId, applicationId, secretKey).Result;  
var adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds);
var result = adlsFileSystemClient.FileSystem.Open(adlsAccountName, "/Test/xml.xml");

這將返回一個錯誤: The remote name could not be resolved +“azuredatalakestore.net”,而實際上 DNS 后綴應該不同。

截至目前,ADLS Gen2 不支持 SDK,但您可以使用ADLS Gen2 rest api代替,執行一些創建/讀取/刪除操作。

例如,您可以使用 sas 令牌身份驗證編寫如下代碼(或者您也可以使用共享密鑰身份驗證):

            string sasToken = "?sv=2018-03-28&ss=b&srt=sco&sp=rwdl&st=2019-04-15T08%3A07%3A49Z&se=2019-04-16T08%3A07%3A49Z&sig=xxxx";
            string url = "https://xxxx.dfs.core.windows.net/myfilesys1/app.JPG" + sasToken;
            var req = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));

            //you can specify the Method as per your operation as per the api doc
            req.Method = "HEAD"; 
            var res = (HttpWebResponse)req.GetResponse();

            //your other code

取自Azure Data Lake Storage Gen2 的已知問題

對 Data Lake Storage Gen2 帳戶的 SDK 支持
沒有可用於 Data Lake Storage Gen2 帳戶的 SDK。

SDK 現在可用: https : //docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-directory-file-acl-dotnet

我的例子:

StorageSharedKeyCredential credential = new StorageSharedKeyCredential(_configuration["AccountName"], _configuration["AccountKey"]);

serviceClient = new DataLakeServiceClient(new Uri(_configuration["DFSURL"]), credential);

usage_container = serviceClient.GetFileSystemClient(_configuration["BlobContainer"]);


DataLakeDirectoryClient directoryClient = usage_container.GetDirectoryClient(country);
directoryClient.CreateFileAsync(xmlFileName, headers);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM