问题标签 [queuetrigger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
443 浏览

azure-functions - 带有 QueueTrigger 的 Azure 函数:是否可以仅配置存储帐户 URL 并使用托管标识访问队列?

我已经定义了这个函数:

并且AzureWebJobsStorage(在 Azure 上)包含以下内容:"DefaultEndpointsProtocol=https;AccountName=my-storage-account;AccountKey=mykey;EndpointSuffix=core.windows.net"

(请注意,对于本地开发,该值为"UseDevelopmentStorage=true"。)

我的问题是,也可以在这里定义存储帐户名称,"https://my-storage-account.queue.core.windows.net"并使用 Azure 函数中的托管标识(具有处理器权限)来读取/触发消息。

0 投票
1 回答
370 浏览

c# - 与等效的 Webjobs 相比,队列触发的 Azure Functions 的等待时间非常长

我已将队列触发的 Azure Webjobs 迁移到 Azure Functions。根据我的测量,从队列中提取消息的等待时间是函数的 5 倍到 60 倍以上(是的,真的)。

在 Webjob 领域,我观察到使用默认的 BatchSize、NewBatchThreshold 和 MaxPollingInterval,队列等待时间通常在亚秒级。

使用我的函数,我看到队列等待时间通常超过 45-60 秒。队列中的项目数和等待时间之间存在相关性。如果队列中的项目数是低个位数,则等待时间过长,即。60 秒以上。尽管我尝试了许多不同的 BatchSize 和 NewBatchThreshold 组合,但仍然如此。

一些具体细节:

  • 网络作业是 .NET Core 3.1
  • 函数是 v3 和 .NET Core 3.1
  • 我已经尝试过 Consumption Plan 和 App Service 计划中的功能,我发现等待时间没有差异

为了获得一些科学测量,我使用我的函数来记录消息排队的时间以及从队列中检索消息的时间,以便获得经过的时间。为了进一步消除变量,我创建了几个完全空的函数——也就是说,队列触发方法的主体只包含记录时间的代码。我在这里也看到了大量的等待时间。

如果我采用队列触发方法并将它们复制并粘贴到 Azure webjob 中,队列等待时间将变为 1 秒或更短。

有什么指导吗?

0 投票
1 回答
152 浏览

python-3.x - Sendgrid -Python 的 QueueTrigger 绑定

在这篇文章的指导下,我编写了以下 queuetrigger 代码,用于在消息排队时发送电子邮件。

函数.json

local.settings.json

尽管该功能在消息排队时响应消息,但它无法发送电子邮件。它抛出一个错误;

  1. 我怎样才能最好地解决这个问题?
  2. 外部绑定是否正确?
0 投票
2 回答
350 浏览

c# - 在队列触发函数中返回表数据

我一直试图在队列触发函数 URL 中返回表存储行,但未能成功。下面是我的代码。

我在发回数据时遇到问题,这种方法可行吗,队列触发器可以发回响应吗?

0 投票
1 回答
75 浏览

python-3.x - QueueTrigger 写入 Queue-Python

我有一个队列触发器,它读取一个 gis 要素图层并在它写回门户时对其进行处理。它似乎工作正常,除了消息没有记录到 outqueue 中。我说它工作正常,因为我可以在 gis 门户上看到正确编写的 gis 功能层。我怀疑我的绑定不好。我不一定需要写回生成的数据帧。我所需要的只是存放在队列中的任何消息,以便为其他进程提供资源。不能在这里发布整个代码以保护隐私,但我的主文件(init_py)可以被认为是:

我的函数.host

0 投票
2 回答
136 浏览

python-3.x - 定时器触发器不会触发队列但手动输入会-Python

我有一个队列触发器,当手动将消息添加到队列中时,它会启动并按预期运行。但是,当消息通过以下计时器触发函数写入队列时,它无法启动。我可以看到消息已由触发器成功写入。

**初始化.py**

主机.json

有什么我错过了吗?

0 投票
1 回答
52 浏览

automated-tests - AzureFunctions:如何对 QueueTrigger 函数进行同步调用以进行自动化功能测试

先介绍一下场景:

  1. 我需要使用队列触发器测试 AzureFunction:

  2. 测试需要由我的 docker-compose 测试环境中的“功能测试容器”运行,该环境由以下组成:

    a) 功能测试容器:运行 nUnit 测试套件的 .net 核心容器

    b) azure-function-container:此容器承载 azure 函数

    c) azurite-container:此容器托管队列服务器

    d) sql-server-container

    e)wiremock-container

测试逻辑如下:

  1. 清除sql数据库、队列和wiremock状态
  2. 准备wiremock存根
  3. 以某种方式触发功能
  4. 等待函数结束
  5. 对在 sql server 中生成的函数、队列中的函数以及调用了什么 wiremock 存根进行断言

据我所知,我有两种触发功能的方法:

a) 在队列中推送消息

b) 使用 azure 函数的管理 API /admin/functions/afunction

问题是它们都没有给出函数何时结束执行的任何提示。

这是我的问题:有没有办法以“同步”方式调用函数(这样我就可以知道执行何时结束)?

0 投票
2 回答
1134 浏览

azure-functions - Azure Function v3 .NET Core 3.1 ServiceBusTrigger“消息处理错误(Action=RenewLock)”,即使 autoComplete = false

我有一个运行长时间运行任务的队列触发器。遇到锁定持续时间和更新的各种问题,所以我决定在整个过程的一开始就手动完成消息。如果作业遇到错误,则将消息发送回队列。

在下面的日志数据中,您可以看到它收到消息,完成它,启动任务,记录一个lock supplied is invalid似乎没有任何影响的错误,然后完成任务。我想停止这个错误。这很烦人。

host.json文件有serviceBus这样的配置(autoComplete关闭)

在这两种情况下,代码都按预期工作,但在这两种情况下,我总是看到“无效锁定”错误

一些日志内容:

0 投票
1 回答
17 浏览

c# - queueTrigger 函数未触发

我有一个 Azure ServerLess C# 项目,我将它部署到 azure 中,其中包含 2 个函数,这两个函数都应该由它们相应的队列触发。我注意到只触发了第一个函数,而没有注意到第二个函数。我所有的设置都是正确的,但我注意到如果我对最顶部的函数重新排序是唯一会被触发的函数。是否有一些我必须编辑的文件,我已经编辑说有 2 个触发功能。

这是主要的 .CS 文件

0 投票
1 回答
451 浏览

c# - Azure 函数 QueueTrigger 和 int 消息

我想将 int 值保存到队列消息中,然后在 Azure Function QueueTrigger 上获取它。

我通过以下方式保存:

然后听队列:

但所有消息都被移到verizon-suspend-device-poison队列中。怎么了?