小编Ale*_*llo的帖子

Azure 函数 - 从 Azure 密钥保管库获取服务总线连接字符串

我有一个在 Docker 容器中运行的 Azure 函数。该功能需要使用Azure服务总线。所以我的函数是使用属性“ServiceBusAccount”来获取服务总线连接字符串

    [FunctionName("MyFunc")]
    [ServiceBusAccount("ServiceBusConnectionString")]
    public async Task MyFunc(...)
    ...
Run Code Online (Sandbox Code Playgroud)

在配置生成器中,我运行以下代码以从 Azure Key Vault 获取一些值(包括服务总线连接字符串):

     var configBuilder = new ConfigurationBuilder();

     var config = configBuilder.AddAzureKeyVault($"https://{config["keyVaultName"]}.vault.azure.net", config["keyVaultClientId"], config["keyVaultSecret"])
                .Build();
Run Code Online (Sandbox Code Playgroud)

问题是,当主机启动时,我首先收到警告:

“警告:找不到名为“ServiceBusConnectionString”的值”

然后在我的函数被发现后我得到了这个错误:

发生主机错误。Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus 连接字符串“ServiceBusConnectionString”丢失或为空

我的理解是,主机环境正在尝试在启动函数之前以及在项目的启动类中调用配置生成器之前获取服务总线连接字符串。

有没有办法在运行时设置服务总线连接字符串?

编辑

如果您使用的是 Azure DevOps,这应该有助于解决此问题https://daniel-krzyczkowski.github.io/How-to-inject-Azure-Key-Vault-secrets-in-the-Azure-DevOps-CICD-pipelines /

connection-string azureservicebus azure-keyvault azure-functions

5
推荐指数
1
解决办法
4564
查看次数