我正在尝试将我的函数应用程序连接到 keyvault 并获取队列名称和连接机密。这与使用 FunctionStartup 中的 ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder) 方法的 .netcore3.1 应用程序配合得很好。
升级到 .net5 dotnet-isolated 后,绑定不起作用。我在 Program.cs 中配置了 azurekeyvault,但它仍然没有从 keyvault 中选择。
队列函数
public static void Run([QueueTrigger("%QueueName%", Connection = "QueueConnection")] string message, string id)
Startup.cs (.netcore3.1) - 工作
public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
var azureKeyVaultURL = Environment.GetEnvironmentVariable("AzureKeyVaultURL");
var azureKeyVaultADAppID = Environment.GetEnvironmentVariable("AzureKeyVaultMIAppID");
builder.ConfigurationBuilder
.SetBasePath(Environment.CurrentDirectory)
.AddAzureKeyVault(new Uri(azureKeyVaultURL), new ManagedIdentityCredential(azureKeyVaultADAppID))
.AddEnvironmentVariables()
.Build();
}
Program.cs (.net5) - 不工作
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults()
.ConfigureAppConfiguration(config =>{
var azureKeyVaultURL = Environment.GetEnvironmentVariable("AzureKeyVaultURL");
var azureKeyVaultADAppID = Environment.GetEnvironmentVariable("AzureKeyVaultMIAppID");
config
.SetBasePath(Environment.CurrentDirectory)
.AddAzureKeyVault(new Uri(azureKeyVaultURL), new ManagedIdentityCredential(azureKeyVaultADAppID))
.AddEnvironmentVariables()
.Build();
})