Azure 功能无法访问 Azure 文件共享
Posted
技术标签:
【中文标题】Azure 功能无法访问 Azure 文件共享【英文标题】:Azure function does not access to Azure files share 【发布时间】:2021-12-27 03:18:47 【问题描述】:我正在尝试从 Azure 函数的共享文件中读取文件。 在本地一切正常,但是当我部署我的测试项目时出现“connectionString”错误。代码很简单:
string connectionString = Environment.GetEnvironmentVariable("MyStorage", EnvironmentVariableTarget.Process);
string FileSharedContainer = Environment.GetEnvironmentVariable("MySharedContainer", EnvironmentVariableTarget.Process);
string InputCloudFolder = Environment.GetEnvironmentVariable("InputCloudFolder", EnvironmentVariableTarget.Process);
string ProcessedCloudFolder = Environment.GetEnvironmentVariable("ProcessedCloudFolder", EnvironmentVariableTarget.Process);
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(connectionString);
CloudFileClient cloudFileClient = cloudStorageAccount.CreateCloudFileClient();
CloudFileShare cloudFileShare = cloudFileClient.GetShareReference(FileSharedContainer);
CloudFileDirectory rootDirectory = cloudFileShare.GetRootDirectoryReference();
CloudFileDirectory InputfileDirectory = rootDirectory.GetDirectoryReference(InputCloudFolder);
CloudFileDirectory ProcessedfileDirectory = rootDirectory.GetDirectoryReference(ProcessedCloudFolder);
List<IListFileItem> fileList = GetAllFilesFromDirectory(InputfileDirectory);
string fileNames = "";
foreach (var p in fileList)
var CurrentFile = (CloudFile)p;
fileNames += CurrentFile.Name +" ";
return new OkObjectResult("N. File processed is: " + fileList.Count + ". Filenames" + fileNames);
这是一个演示 http 触发函数,即使在 Azure 上也可以从共享文件夹返回文件列表。 它在本地机器上运行良好,但在部署环境中失败并出现此错误:
值不能为空。 (参数'connectionString')
请帮帮我....!
【问题讨论】:
您在App配置中添加了MyStorage连接字符串吗? docs.microsoft.com/en-us/azure/azure-functions/…。你能放一个调试打印语句来检查你的代码是否真的在检索那个值吗?以及您使用 SDK 的 V11 旧版的任何具体原因?新的 V12 版本见nuget.org/packages/Azure.Storage.Files.Shares。 【参考方案1】:谢谢Anupam Chand。发布您的建议作为答案,以便对面临类似问题的其他社区成员有所帮助。
按照建议,您是否按照下图添加了 mystorage 连接字符串
还尝试调试语句以检查检索值的代码。并尝试使用新版本的 SDK。
dotnet add package Azure.Storage.Files.Shares
更多信息请查看My Storage application 和NuGet Packages
【讨论】:
以上是关于Azure 功能无法访问 Azure 文件共享的主要内容,如果未能解决你的问题,请参考以下文章
从 ASP.NET 应用程序访问 Azure 存储帐户文件共享
使用 python 将 azure Runbook 与 azure 中的文件共享连接起来
利用Azure存储同步服务构建垮分支机构的文件服务器资料同步