1

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

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

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

我遇到了这篇文章如何将程序集引用添加到 Azure 函数应用程序

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

有任何想法吗?


我看过的其他链接:

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

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

检索有关当前正在运行的函数的信息

Azure 函数 - 读取文件并使用 SendGrid 发送电子邮件

4

2 回答 2

1

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

public static HttpResponseMessage Run(HttpRequestMessage req, ExecutionContext context)
{
    var funcPath = context.FunctionDirectory; // e.g. d:\home\site\wwwroot\HttpTrigger1
    var appPath = context.FunctionAppDirectory; // e.g. d:\home\site\wwwroot
    // ...
}
于 2018-07-24T18:03:30.957 回答
0

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

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

于 2018-07-24T19:59:19.303 回答