在具有依赖项注入的Azure功能中传递配置并初始化客户端

时间:2019-09-12 22:08:21

标签: azure dependency-injection azure-functions

我正在使用Azure Functions触发器创建一个新的Queue。对我来说,关键的要求是使用在ASP.NET Core应用程序中创建的现有类库,以便可以访问Repository方法。我也有自己的客户,负责处理与某些第三方服务的通信。

我需要有关创建客户端实例并将配置传递给IConfiguration的帮助。

这是我的Startup.cs项目中的Azure Functions的样子:

using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using MyApp.Infrastructure.Clients;
using MyApp.Infrastructure.Interface;
using MyApp.Infrastructure.Repositories;

[assembly: FunctionsStartup(typeof(MyTestFunction.Startup))]
namespace MyTestFunction
{
    public class Startup : FunctionsStartup
    {
        public IConfiguration Configuration { get; }

        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddSingleton(new MyApp.Infrastructure.Clients.MyClient123(Configuration));
            builder.Services.AddTransient<ICommunicationsRepository, CommunicationsRepository>();
        }
    }
}

在我的ASP.NET Core应用的Startup.cs中,我确实有一个constructor可以处理配置-参见下文-但不确定如何处理此Azure Functions。 / p>

public Startup(IConfiguration configuration)
{
     Configuration = configuration;
}

public IConfiguration Configuration { get; }

1 个答案:

答案 0 :(得分:1)

看起来不建议这样做: https://github.com/Azure/azure-functions-host/issues/4464#issuecomment-513017446

我已决定在ASP.NET Core应用程序中更新类库,以便在Azure KeyVaultAPI应用程序中都使用Azure Functions