c# - 从 azure 函数连接到 Azure 数据湖 Gen 2
问题描述
我正在尝试从 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
推荐阅读
- mongodb - nosql中的层次关系
- php - PHP,symfony 列出表中的数据
- jquery - 第一个列表中的所有元素都是可排序的,但只有某些元素可以与第二个列表交换
- ios - podfile 中单个目标的多平台支持
- javascript - async 和 await 支持的 ES 版本?
- visual-studio-2008 - VS 2008 SP1 无法在 MC9200 上部署 Windows CE 7.0
- wordpress - 有没有办法添加自定义 onclick 图标
- php - 在 Symfony3 的多对多关系表中“检查是否存在”的最佳方法是什么?
- sql - 根据每条记录的多列查找重复项
- java - 无法使用 Jexcel API 读取单元格值