为什么我在创建QueueTrigger WebJob函数时看到FunctionIndexingException? [英] Why do I see a FunctionIndexingException when creating a QueueTrigger WebJob Function?

查看:18
本文介绍了为什么我在创建QueueTrigger WebJob函数时看到FunctionIndexingException?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个这样的函数

public static Task HandleStorageQueueMessageAsync(
    [QueueTrigger("%QueueName%", Connection = "%ConnectionStringName%")] string body,
    TextWriter logger)
    {
        if (logger == null)
        {
            throw new ArgumentNullException(nameof(logger));
        }

        logger.WriteLine(body);
        return Task.CompletedTask;
    }
队列名称和连接字符串名称来自我的配置,该配置使用INameResolver来获取值。连接字符串本身,我在应用程序启动时将其从我的秘密存储放入应用程序配置中。如果连接字符串是授予整个帐户所有权限的普通存储连接字符串,则该方法按预期工作。

但是,在我的场景中,我从一个合作伙伴团队获得了一个SA,该团队只提供对单个队列的读访问权限。我用类似于

的字符串创建了一个存储连接字符串
QueueEndpoint=https://accountname.queue.core.windows.net;SharedAccessSignature=st=2017-09-24T07%3A29%3A00Z&se=2019-09-25T07%3A29%3A00Z&sp=r&sv=2018-03-28&sig=token

(我尝试在Microsoft Azure Storage Explorer中使用此连接字符串成功连接)

QueueTrigger属性中使用的队列名称也是从SAS

收集的

但是,现在我收到以下异常

$exception  {"Error indexing method 'Functions.HandleStorageQueueMessageAsync'"}    Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException
InnerException  {"No blob endpoint configured."}    System.Exception {System.InvalidOperationException}

如果查看连接字符串,可以看到异常是正确的。我没有配置BLOB终结点。但是,我也不能使用它,我也不想使用它。我仅为此QueueTrigger使用存储帐户。

我使用的是Microsoft.Azure.WebJobs v2.2.0。其他依赖项使我无法升级到v3.x

当只有对单个队列具有读取访问权限的SAS URI可用时,建议使用哪种方式消费存储队列中的消息?如果我已经在正确的道路上,我需要做什么才能消除该异常?

推荐答案

如您所见,v2WebJobs SDK还需要访问BLOB端点。恐怕是设计出来的,像SAS这样没有完全访问权限的连接字符串an improvement已经被跟踪,但是还没有实现。

这里是v2 SDK需要的权限。它需要获取Blob服务属性(Blob、Service、Read)以及队列元数据和处理消息(队列、容器&;对象、读取&;进程)。

队列触发器获取消息,处理后删除,因此SAS需要有进程权限。这表示即使SDK不需要BLOB访问,您获得的SAS字符串也没有正确授权。

您可以要求合作伙伴团队使用上述最低权限在Azure门户上生成SAS连接字符串。如果他们不能提供BLOB访问,v3 SDK似乎是一个可以尝试的选择。

但有一些问题1.其他依赖关系会阻止您提到的更新2.V3SDK基于.NET Core,这意味着代码更改是不可避免的。3.V3 SDK文档和示例目前仍为under construction

这篇关于为什么我在创建QueueTrigger WebJob函数时看到FunctionIndexingException?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆