首页 > 解决方案 > 使用依赖注入在 Azure Functions 中传递配置和初始化客户端

问题描述

我正在Azure FunctionsQueue触发器创建一个新的。我的一个关键要求是使用我在我的应用程序中创建的现有类库,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

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

public IConfiguration Configuration { get; }

标签: azuredependency-injectionazure-functions

解决方案


看起来这不是推荐的方法: https ://github.com/Azure/azure-functions-host/issues/4464#issuecomment-513017446

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


推荐阅读