使用.net内核的Azure函数2.0中的引用文件



我正在尝试创建一个Azure函数,该函数从.mmdb文件GeoLite2 Country DB 中读取

我在函数旁边添加了geolite2文件。但是,我找不到一种以编程方式引用文件路径的方法,使其在本地计算机上以及部署/发布时保持不变。

string GeoLocationDbPath = "D:<path_to_project>FunctionsGeoLocation-Country.mmdb"
var reader = new DatabaseReader($"{GeoLocationDbPath}");

我看到了这篇文章如何将程序集引用添加到Azure Function应用程序

我希望有一种更好的方法来引用本地和部署的文件。

有什么想法吗?


我看过的其他链接:

如何在Azure Function 中添加和引用外部文件

如何添加对Azure Function C#项目的引用?

检索有关当前运行的功能的信息

Azure功能-读取文件并使用SendGrid发送电子邮件

您可以通过向函数注入ExecutionContext来获得文件夹的路径:

public static HttpResponseMessage Run(HttpRequestMessage req, ExecutionContext context)
{
var funcPath = context.FunctionDirectory; // e.g. d:homesitewwwrootHttpTrigger1
var appPath = context.FunctionAppDirectory; // e.g. d:homesitewwwroot
// ...
}

我得出的结论是,引用Azure函数的本地文件不是一个好方法。我阅读了Azure函数的最佳实践,Azure函数是无状态的。此外,部署时文件夹结构也会发生变化。

如果继续,我会将.mmdb文件上传到Azure blob容器,并使用CloudStorageAccount访问该文件。

相关内容

  • 没有找到相关文章

最新更新