.net - 具有托管标识的 Azure 函数队列触发器

标签 .net azure azure-functions azure-queues azure-functions-runtime

我为队列触发器创建了一个隔离的进程Azure Functions。基于link我使用 __queueServiceUri 创建了托管标识字符串。当我在 local.settings.json 中指定时,此属性在本地工作。但当我在 appsettings.json 中指定时它不起作用。下面是我的program.cs代码

var configuration = new ConfigurationBuilder().AddEnvironmentVariables()
    .AddCommandLine(args)
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    .Build();

var host = new HostBuilder().ConfigureHostConfiguration(config => {
config.AddConfiguration(configuration);
}).ConfigureFunctionsWorkerDefaults().Build();

函数代码:

 [Function("BlobQueueTrigger")]
    public async Task RunAsync([QueueTrigger("datablobqueue", Connection = "blobQueue")] string blobQueueItem)
    {}

应用程序设置中的属性:

"blobQueue__queueServiceUri": "https://mydatastorage.queue.core.windows.net"

最佳答案

根据documentation您在上面引用的,blobQueue__queueServiceUri 必须定义为环境变量,而不是在 appsettings.json 中。这意味着您需要将其设置为应用程序设置 in the portal 。在本地工作时,local.settings.json 中设置的值确实会加载为 Environment Variables

自从我深入研究这个问题以来已经有一段时间了,但我认为它需要在实际启动您的流程之前访问该值。因此,您在 Program.cs 中定义的自定义配置提供程序尚未加载。

关于.net - 具有托管标识的 Azure 函数队列触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74130843/

相关文章:

.net - WPF TabControl/ScrollIntoView 问题

Azure Stream Analytics有像GETDATE()或CURRENT_TIMESTAMP这样的函数吗?

azure - 尝试联系 Azure 中的认知服务时出现未经授权的异常消息

powershell - 如何使用 Function Apps 在 Azure 中使用 PowerShell 登录 AzureRmAccount

azure - 多个 Azure 函数应用程序指向一个 Blob 容器(触发器)

c# - .NET 中事件签名的代码友好版本

.net - 日期时间,日期时间?和 LINQ

c# - 在 WCF 客户端/服务器应用程序中计算 UTC/本地日期时间转换的最佳方法

azure - 嵌套资源不能出现在带有 for 表达式的资源内部

azure - 如何通过定时器触发调用Durable函数?