问题标签 [azure-function-async]

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 投票
2 回答
3092 浏览

azure-functions - 如何从 blob 存储中读取数据并使用 azure 函数应用程序访问它

我的 Blob 存储中有一个 CSV 文件,我需要每天触发它所以我在 azure 函数应用程序中使用计时器触发器 我能够在我的 azure 函数应用程序中获取 Csv 文件数据

  • 如何读取和写入 CSV 文件数据并将其存储在.xlsx 文件中

  • 我是否需要使用绑定我是这个概念的新手,请通过一些示例指导我

我的功能应用程序:

0 投票
2 回答
1242 浏览

azure - 如何在 azure 存储帐户中创建子文件夹并使用 azure function App 复制文件

我的存储帐户中有两个文件夹源文件夹和目标文件夹我想在我的源文件夹中添加演示文件夹,我想将我的源文件夹文件复制到演示文件夹并在复制到存档文件夹后删除我的所有源文件夹文件

  1. 如何在另一个文件夹中创建一个文件夹
  2. 如何将文件从一个文件夹复制到另一个文件夹

如何添加我以这种方式传递的文件夹:

  1. 容器名称-csv 文件
  2. 文件夹源
  3. 子文件夹-归档
0 投票
2 回答
125 浏览

azure - 如何使用函数应用将文件从源文件夹复制到目标文件夹并删除 Azure 存储帐户中的源文件夹文件

我能够将源文件夹 blob 复制到目标文件夹 blob 并删除源 blob 如何将多个 blob 复制到源文件夹到目标文件夹并删除源 blob

  1. 当我将源 blob 复制到目标文件夹时,我无法为目标文件夹中的 blob 命名

0 投票
1 回答
1002 浏览

node.js - 正确测试 Azure Functions

我想知道如何用 Jest 正确测试 Azure Functions。我已经阅读了 MSoft 提供的在线文档,但它非常模糊和简短。还有一些我发现的过时的文章并没有真正解释太多。这是我的理解:我理解如何用 Jest 测试普通的 JS 异步函数。而且我了解如何测试非常简单的 Azure Functions。但是,我不确定如何正确测试进行多个 API 调用等的更复杂的 Azure 函数。

例如,我有一个 HTTP 函数,它应该进行一些 API 调用并改变数据,然后返回输出。如何在测试中正确模拟 API 调用?该函数只有一个入口点。(意味着一个被导出的函数module.exports = async function(context,req)。所以我们所有的测试都通过那里进入。如果我有子函数进行调用,我无法从测试中访问它们。那么有没有一些巧妙的方法来模拟 API 调用?(因为实际调用测试期间的 API 是不好的做法/设计)

这是一个代码示例来说明我的意思

0 投票
1 回答
484 浏览

javascript - 异步函数完成后 Azure 函数不返回响应

我正在尝试在 VS Code 中开发一个函数,该函数将 url 作为输入并在处理完成后返回响应。然而,当这个函数运行时,它什么也不返回。我尝试在 Webstorm 中测试类似的代码,并确认它 console.logs 结果很好。我是节点新手并承诺,所以不确定我做错了什么。

编辑 - 根据@hellikiam 的建议,在 driver.get 之前添加了 return 关键字。还添加了一个简单的日志语句,以确认结果可用但未在正文中返回。

0 投票
1 回答
269 浏览

c# - 如何在 C# 中优化 Time-Trigger Azure Function 的性能?

我有一个时间触发的 Azure 函数,每秒钟运行一次。该函数从 API 服务器读取数据并将其存储到 ADLS。如何优化函数的性能,使其可以进行超过 500 次 API 调用,并在 SECOND 中为每个调用存储每秒数据。

每秒准确获取所有 ID 数据的最佳方法是什么?我尝试了一些并行编程/ TPL 方法,但如果我只使用一个 ID,它仍然可以提供预期的准确性,而不是全部。

0 投票
0 回答
214 浏览

c# - 门户中的 Azure Functions 应用程序开发人员脚本编译失败。异步

我在 Portal 中使用 Developer启动了实现功能 API , 尝试将 SSH.NET 包添加到当前功能 API 中,以将文件上传到 SFTP。按照以下步骤仍然无法连接 SFTP。

  1. 创建一个名为 function.proj 的新文件并将其上传到函数应用文件夹

单击保存按钮后,这里是日志。

  1. 在 run.csx 中创建了一个新的 HTTPtrigger 函数。

执行时出现以下错误。

cs : 193 2021-03-13T16:50:11.642 [错误] run.csx(2,1): 错误 CS0006: 找不到元数据文件 'Renci.SshNet' 2021-03-13T16:50:11.672 [警告] run.csx(2,1):警告 AF005:引用“Renci.SshNet”是引用的 NuGet 包“SSH.NET”的一部分。包程序集由您的函数自动引用,不需要“#r”指令。2021-03-13T16:50:11.672 [警告] 警告 CS1702:假设“Microsoft.AspNetCore.Mvc”使用的程序集引用“Microsoft.AspNetCore.Mvc.Abstractions,Version=3.1.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”。 Core' 匹配身份 'Microsoft.AspNetCore.Mvc.Abstractions, Version=3.1.12.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' of 'Microsoft.AspNetCore.Mvc.Abstractions', 您可能需要提供运行时策略 2021-03-13T16:50:11.673 [警告] run.csx(24,5): 警告 CS1702: 假设程序集引用 'Microsoft.AspNetCore.Mvc.Abstractions, Version=3.1.0.0, Culture =neutral,PublicKeyToken=adb9793829ddae60' 使用的'Microsoft.AspNetCore.Mvc.Core' 匹配身份'Microsoft.AspNetCore.Mvc.Abstractions,Version=3.1.12.0,Culture=neutral,PublicKeyToken=adb9793829ddae60' 的'Microsoft.AspNetCore.Mvc' .Abstractions',您可能需要提供运行时策略 2021-03-13T16:50:11.673 [警告] run.csx(10,41): 警告 CS1998:此异步方法缺少“等待”运算符并将同步运行。考虑使用 'await' 运算符来等待非阻塞 API 调用,或使用 'await Task.Run(...)' 在后台线程上执行 CPU 密集型工作。2021-03-13T16:50:11。

0 投票
1 回答
325 浏览

.net - 如何检查用 .NET 编写的 Azure 函数的日志和使用情况(CPU/RAM/DB)?

我编写了一个每天凌晨 4 点触发的 Azure 函数。我发布了它,它今天凌晨 4 点首次成功运行。我确信它运行成功,因为它把预期的数据放到了数据库中。

我正在使用日志对象在函数体中记录信息和错误日志:

如果我在函数运行时连接到 Azure 中的日志流,我会看到日志。我以后在哪里可以找到它们?只是现在我将诊断设置设置为将 FunctionAppLogs 发送到 Log Analytics 工作区:

将函数应用日志发送到 Analytics 工作区

它会解决我的问题吗?

我在哪里可以看到我的函数的执行细节(成功/失败/时间,也许还有资源消耗)?如果我转到 Function 应用程序,然后选择函数,从列表中选择 MyFunction 并转到“Monitor”刀片,我只看到几天前的两个失败(在很多中!)。当函数通过 HTTP GET 触发(现在它由计时器触发)时,会记录此故障。

只有两个失败可见

编辑

这是我的 hosts.json 文件的内容:

我的理解是 Application Insights 应该显示一些数据(samplingSettings已启用)并且我应该有我的函数的日志(defaultInformation)。我不确定Function: Error设置。在文档中,它以下列方式解释:

我在代码中创建的日志是“用户日志”还是“函数日志”?

0 投票
0 回答
91 浏览

python-3.x - Python aiohttp Azure Function ClientConnector 错误(在本地工作)

我正在 python 中开发 TimerTrigger Azure 函数,该函数大量使用 aiohttp 库向文件缓存发出并发请求,获取约 8K JSON 文件,并准备将它们加载到数据库中。我已经能够在我的本地机器(OSX)上端到端地运行该过程而不会出现问题。也就是说,使用 Azure Functions Core Tools,我已经能够func start处理,通过 POST 请求开始工作http://localhost:7071/admin/functions/NameOfMyFunction,并且一切正常。

但是,当我将此函数发布到我的 Azure Functions 应用程序时,TimerTrigger 会按预期启动,但在“同时获取 JSON 文件”的过程中不太远的地方,函数执行失败并出现此错误(我已经编辑了出于保密原因,我正在访问的实际 url 和 IP 地址):

Result: Failure Exception: ClientConnectorError: Cannot connect to host https://FILE-CACHE-URL:443 ssl:default [Connect call failed ('XX.XXX.XXX.XXX', 443)] Stack: File "/azure-functions-host/workers/python/3.8/LINUX/X64/azure_functions_worker/dispatcher.py", line 370, in _handle__invocation_request call_result = await self._loop.run_in_executor( File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run result = self.fn(*self.args, **self.kwargs) File "/azure-functions

以下是我正在运行的实际代码的一些关键摘录

run.py Azure Function 的入口点

doctor_info.py文件中,导入的辅助函数获取配置文件:给定我需要从缓存中获取的大约 8K 文件的大列表,这会将它们分成 50 个批次,并同时从每个批次中获取文件,允许中间停顿。

正如您可能在上面的摘录中看到的那样,我最初认为这可能是 SSL 握手问题,并尝试禁用 SSL 验证但没有运气:托管在我的笔记本电脑上时一切正常,但在 Azure 中中断.

鉴于这在本地总是可以正常工作,但在部署中从来没有工作过,我认为这个问题的根源是一旦这个过程托管在云中,环境就会有所不同,但我对如何准确诊断出这种差异是什么?

很高兴提供更多细节,但认为这足以开始。非常感谢,任何帮助将不胜感激!

0 投票
2 回答
181 浏览

c# - 在dotnet core中批量使用Parallel.For

我在 dotnet 核心中使用 httptrigger 函数,我在其中获取 Json 格式的 httprequest 数据。我需要在 Google Merchant Center 帐户中插入此值。几乎有 9000 行(每次都是动态数据)需要插入。我如何实现执行速度更快的 Parallel.for 逻辑。目前我正在为每个循环使用如下所示,但它需要更多时间。下面是代码。