问题标签 [azure-http-trigger]

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 回答
790 浏览

concurrency - Azure Functions 并发和缩放行为

SO上有一堆Azure Functions并发问题,但没有一个专门解决这个问题。

我正在考虑 HTTP 触发的函数应用程序的扩展方案(如果重要,运行时是 Node.js)。我来自 AWS Lambda 世界,每个并发调用都会产生一个新的 Lambda 实例:

如果在处理请求时再次调用该函数,则会分配另一个实例,这会增加该函数的并发性。

让我对 Azure Function 应用程序感到困惑的是他们文档中的这篇文章:

单个函数应用最多只能横向扩展 200 个实例。但是,单个实例一次可以处理多个消息或请求,因此对并发执行的数量没有设定限制。

在什么情况下,单个 FA 实例会一次处理多个请求?

0 投票
0 回答
880 浏览

c# - HTTP 触发 azure 函数在本地不运行时出现问题

我在 Visual Studio (C#) 中有一个基本的 HTTP 触发 azure 函数:

但我有两个问题:

(1) 我只希望它接收“发布”请求。但是当我从参数中取出时,"get"该函数不再接收我在 Azure 中的请求。我得到一个404 Not Found. 但在本地它仍然收到我的请求并且工作正常。

(2) 此外,Azure 中未收到请求正文。它是空的。再次在本地运行时不会出现此类问题。

我发现了几个人遇到问题的案例(2),但还没有找到解决方法。关于问题(1),目前还没有网上发布过类似的案例。

有谁知道为什么会这样?

0 投票
2 回答
659 浏览

azure-logic-apps - 如何禁用逻辑应用的 SAS 授权?

有没有办法为逻辑应用 HTTP 触发器禁用 SAS 授权方案?

在文档中,我读到以下内容: “对请求端点的入站调用只能使用一种授权方案,即 SAS 或 Azure Active Directory 开放式身份验证。虽然使用一种方案不会禁用另一种方案......” - 来源:https ://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-securering-a-logic-app

我正在尝试做的事情: 我想禁用 SAS 授权方案。提供正确的 SAS 参数时,不应触发逻辑应用。或者,如果无法停用 SAS 授权,则在使用 SAS 的情况下它应该返回错误。只有 OAuth 授权才能给出有效结果。这可能吗?

0 投票
1 回答
952 浏览

azure - 如何确保已在 Azure Functions 中成功处理队列消息?

我有一个使用 HTTP 触发器和队列触发器构建的 C# Azure Functions(在应用服务计划中)应用程序。该应用程序通过在客户端计算机上安装脚本来工作,该脚本使用 SQL 查询从客户端数据库中提取各种文件,将输出移动到临时 Azure Blob 存储。在每个文件完成后,将调用一个 HTTP 触发器,该触发器为队列触发器创建一个队列消息,以获取消息并将文件从临时 blob 存储移动到 blob 存储中的永久位置。在 HTTP 触发器完成并将消息放入队列后,执行返回到客户端脚本以开始处理下一个 SQL 查询。

我担心的是,当队列触发器实际上仍在工作或可能失败时,这些队列消息会堆积起来,并且客户端脚本将完成错误的成功消息,尤其是在并行处理多个客户端时。有没有办法确保在继续下一个 SQL 查询之前成功处理队列消息?

编辑:添加代码示例

我可能有 3 个客户端,他们的机器上安装了一个应用程序,每个客户端都设置为在上午 12 点执行这些脚本,并且可以同时运行,因为它们托管在客户端机器上。 客户端脚本

await当文件准备好被处理时,这首先发布到 HTTP。
Azure Functions HTTP 触发器

现在我们在“作业提交”队列中有来自多个客户端的文件。
Azure Functions 队列触发器

所以问题是,当 HTTP 触发器向队列写入消息时,我无法知道队列已经完成了对文件的处理。现在这不是一个大问题,因为这个过程发生得如此之快,以至于当我在 HTTP 触发器中向队列发送消息时,队列最多只需要几秒钟来处理文件。我想知道各个作业何时完成的原因是因为我在客户端脚本中有最后一步:
客户端脚本

然后一个单独的 Python Azure 函数在该队列上侦听以进行进一步处理:
Python QueueTrigger

Python Azure 函数在消耗计划中,batchSize设置为,1因为客户端文件有时可能很大,我不想超过 1.5GB 内存限制。所以我有两个问题,第一个是我怎么知道第一个队列触发器完成了它的工作?第二个是,如何确保 Python QueueTrigger 不会开始累积消息?我认为这两个问题都可以通过为侦听同一队列的两个队列触发器创建单独的 Azure 函数来解决。这会减轻双方的负担,但我不确定这是否是最佳做法。请在此处查看我的问题,我在此处询问有关问题 2 的更多指导:使用多个 Azure Functions QueueTriggers to listen on the same storage queue

0 投票
1 回答
73 浏览

azure-function-app - 功能在本地运行,而不是在部署到 Azure 时运行

我有一个 http 触发功能,当我向 url 发送消息时,它会根据需要在 queuestorage 上记录数据;

但是,当我在函数 url 上用天蓝色做同样的事情时

https://yyyyy.azurewebsites.net/api/xxxx?message=89000没有任何记录。

我怎样才能解决这个问题?

另一个问题; 底层代码是

预计会收到以下payload

当我这样做时 http://localhost:7071/api/xxxx?message=89000,它会很好地记录队列存储,但不会在传递此有效负载时记录。我该如何配置?

0 投票
1 回答
104 浏览

python-3.x - Http Trigger-Python-Log 特定消息不断,而不是 URL 正文或有效负载

建立在较早的问题上。以下代码是httptrigger对 gis 图层的编辑和更新列出的。它将 url 有效负载登录到队列中。我不希望加载有效负载,而是加载特定的重复消息,以便每次都将其覆盖,因为我不想时不时地出队。我该怎么办?

0 投票
1 回答
128 浏览

azure - 在 Azure 函数(Http 触发器、Python 3)中,如何控制服务器可以处理的最大并发请求数?

对所有函数都是 HTTP 触发器的 Azure 函数应用程序使用 Python 3.8。我们启用了 HTTP 2 ...

在此处输入图像描述

下面是我们的 host.json 文件

我们同时从客户端(Angular 9)应用程序向服务器发送 30 个请求(15 个是 OPTIONS 请求,另外 15 个是 GET),并注意到其中 20 个处理得相对较快,但其余的需要明显处理时间更长。以下是并排的两个请求

在此处输入图像描述 在此处输入图像描述

对于更长的请求,我已经通过 curl 和 Postman 验证了它们单独返回的时间要快得多,这让我相信服务器上有一些并发设置我可以调整,但我不知道在哪里。

编辑:这里有更多信息。我的匿名函数开始如下...

但请注意该函数响应缓慢时 Azure 日志中报告的时间......

在我被告知函数被调用和函数的第一个日志语句之间有 8 秒的延迟。下面是我的“Scale Out”的样子......

在此处输入图像描述

0 投票
1 回答
32 浏览

c# - Azure Function 记录每个调用的方法并记录到 Azure Log Analytics 工作区

目前,我有一个项目正在使用带有 .net core 3.1 的 Azure Function,我想知道如何跟踪每个调用的方法,例如:

它将记录到 Azure Log Analytics 工作区,而无需Log.Information("Function:Count Start");Log.Information("selectCount Start");

日志消息示例如下

0 投票
1 回答
577 浏览

.net-core - Azure HttpTrigger 函数中的 HttpRequest.HttpContext.User (ClaimsPrincipal) 对象不包含来自授权标头的我的身份

我还尝试在我的函数中注入 ClaimsPrincipal 对象,如下所示:

结果还是一样。为了在本地访问该功能,我将传递我的 Bearer 访问令牌,如下所示:授权:Bearer

任何想法我在这里想念什么?

0 投票
2 回答
302 浏览

azure - azure函数HttpTrigger如何编辑代码参数名称?

Azure Function HttpTrigger 默认使用code参数和令牌代码,例如:https://xxx.azurewebsites.net/api/xxxHttpTriggerCSharp?code=)#&)@^$^@#)

如何将code名称替换为token
https://xxx.azurewebsites.net/api/xxxHttpTriggerCSharp?token=)#&)@^$^@#)

我遇到的情况:
一个服务也使用了code参数,导致认证冲突。