gpt4 book ai didi

Azure 耐用功能 : Can I use a startup. cs?

转载 作者:行者123 更新时间:2023-12-02 08:30:21 24 4
gpt4 key购买 nike

我有几个函数想要重构为 Azure 持久函数,其中编排器调用不同的 ActivityFunction(之前单独的 Azure Functions)。单独的函数使用启动,我在其中配置依赖项注入(inject)和一些其他配置。是否可以在持久功能方案中使用启动类?我在 documentation 中找不到任何似乎表明这一点的内容。 .

如果不可能,还有哪些其他替代方案,例如定义数据库连接字符串和依赖项注入(inject)?

谢谢

最佳答案

持久函数中也可以进行依赖注入(inject)。

从 Nuget 安装并添加对以下包的引用:

Microsoft.Azure.Functions.Extensions.DependencyInjection

这是完成依赖注入(inject)的启动文件的工作示例:

using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Azure.WebJobs.Host.Bindings;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
using System;


[assembly: FunctionsStartup(typeof(MyDurableFunction.Startup))]

namespace MyDurableFunction
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
var executioncontextoptions = builder.Services.BuildServiceProvider()
.GetService<IOptions<ExecutionContextOptions>>().Value;
var currentDirectory = executioncontextoptions.AppDirectory;
var environment = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT");

var config = new ConfigurationBuilder()
.SetBasePath(currentDirectory)
.AddJsonFile($"settings.{environment}.json", optional: false, reloadOnChange: false)
.AddEnvironmentVariables()
.Build();

builder.Services.AddSingleton<IMyBusinessService1>(sp =>
{
var secretFromAppSettings = config["secretKey"];
var passwordFromAppSettings = config["secretPassword"];
return new MyBusinessService1(secretFromAppSettings, passwordFromAppSettings);
});

builder.Services.AddSingleton<IDatabaseHelper, DatabaseHelper>();

builder.Services.AddLogging();
}

}
}

希望这有帮助!

关于Azure 耐用功能 : Can I use a startup. cs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61395849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com