使用 Azure 函数和 Web API 的 EF 核心连接字符串设置



我有 2 个项目 1.ASP.NET 核心网页接口 2. 蔚蓝函数

两者都托管在 Azure 上。 我也有不同的开发和生产帐户,我需要根据部署应用程序的环境使用不同的连接字符串。

对于实体框架,我使用2应用程序引用的单独项目。

当从 weba api 使用单独的项目时,我可以通过这种方式读取连接字符串

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
var envName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Path.Combine(Directory.GetCurrentDirectory()))
.AddJsonFile("appsettings.json", optional: false)
.AddJsonFile($"appsettings.{envName}.json", optional: false)
.Build();
var cs = configuration.GetConnectionString("DefaultConnection");
optionsBuilder.UseSqlServer(cs);
}
}

但是没有用于触发器的appsettings.json文件。在这种情况下我该怎么办?

对于本地开发,请使用Environment Variable来存储连接字符串。 (右键单击Visual StudioAzure Function Project选择propertiesDebug,您将能够在那里添加Environment Variable。这将存储在launchsettings.json( 例如,您可以将其称为MSSQL_CONN_STR

部署到Azure使用Application Settings(转到Function app单击"Configuration",可以使用与上述相同的键(MSSQL_CONN_STR(添加新的应用程序设置/环境变量,但使用连接字符串的production值(

在 C# 代码中,您可以获得与上述相同的Environment Variable

Environment.GetEnvironmentVariable("MSSQL_CONN_STR");

来自 MS 关于 Azure 函数应用的应用程序设置

应用程序

设置作为环境变量公开,供应用程序在运行时访问

最新更新