我构建了一个 Azure Function App (v2).所有功能所需的配置任务都在一个结构如下的 Setup 类中完成:
I build an Azure Function App (v2). Configuration tasks necessary for all functions are done in a Setup class that is structured like the following:
[assembly: WebJobsStartup(typeof(Startup))] internal class Startup : IWebJobsStartup { public void Configure(IWebJobsBuilder builder) { Configuration = new ConfigurationBuilder() .SetBasePath(<functionAppDirectory>) .AddJsonFile("local.settings.json") .Build(); builder.AddDependencyInjection(ConfigureServices); } public IConfiguration Configuration { get; set; } private void ConfigureServices(IServiceCollection services) { var connection = Configuration.GetConnectionString("<myconnection-string>"); ... } }在 ConfigureServices 我想从配置文件中读取一个连接字符串.为此,函数应用基本文件夹已使用 SetBasePath 指定.但我发现没有办法访问这条路径.根据 github/Azure/azure-functions-host/wiki/Retrieving-information-about-the-currently-running-function 可以将 ExecutionContext 注入到包含路径的函数中需要.但是如何在我的 Startup 类中访问 ExecutionContext?
In ConfigureServices I want to read a connection string from a configuration file. For that the function app base folder has be specified with SetBasePath. But I found no way to get access to this path. According to github/Azure/azure-functions-host/wiki/Retrieving-information-about-the-currently-running-function an ExecutionContext can be injected in a function, which contains the path need. But how do I access ExecutionContext in my Startup class?
推荐答案你可以在你的启动文件中使用这段代码.我今天刚刚为我的项目测试了它,它适用于云和本地.
You can use this piece of code in your startup file. I have just tested it today for my project and it works on both cloud and local.
var executioncontextoptions = builder.Services.BuildServiceProvider() .GetService<IOptions<ExecutionContextOptions>>().Value; var currentDirectory = executioncontextoptions.AppDirectory;更多推荐
获取 Azure Function App v2 的根目录
发布评论