问题标签 [azure-webjobs-triggered]
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.
c# - 集成 webjob 和 botframework c#
我使用 Microsoft bot framework V4(c#) 创建了一个 bot 和一个每天都会触发的 webjob。我想让我的机器人知道这个网络作业被触发了,我不知道该怎么做。
有我可以遵循的样本吗?
提前致谢。
azure-webjobs - 在 Webjobs SDK 3.x 中使用 ServiceBusTrigger,Singleton 属性可以使用 UserProperty 作为范围吗?
我ServiceBusTrigger
在收到消息时使用 a 来执行代码。我想使用Singleton 属性来限制可以并行执行的消息。该属性允许指定绑定到传入消息属性的范围,这样具有不同值的消息可以并行执行,但具有相同值的消息必须串行执行。
这在使用传入消息对象(如 CorrelationId)的顶级属性时有效。
例子
我正在努力弄清楚的是如何使用消息上的用户属性实现相同的行为。这些都存储在对象的UserProperties
字典中Message
。我没有看到用Singleton
属性中的绑定语句来引用这些的方法,但是当Singleton
与ServiceBusTrigger
azure - Azure WebJob 未向 Azure SignalR 服务发送 SignalR 消息
我有一个 Asp.Net Core Api 3.1 和一个 Azure WebJob,它们都在 Azure 应用服务上运行。他们俩都需要发送通知,并且都不会收到消息。分解它:
我在云中有一个 Azure SignalR 服务实例,每个应用程序都指向该实例。
我创建的 Hub 类位于 Api 和 WebJob 项目都引用的库中。
客户端只能通过 Api 连接到 Hub。
当 Api 向连接发送消息时,一切正常,但 WebJob 没有。
我真的不想将 WebJob 作为客户端运行,因为那样我就必须处理身份验证。我只是希望它作为同一个集线器的另一个实例运行,它将消息发送到 API 所做的相同组。此外,此 WebJob 不适合作为 Azure 函数运行,因为它需要的时间太长。
我在配置 WebJob 时遗漏了一些东西,因为它似乎没有连接到 Azure SignalR。
当 WebJob 尝试发送消息时,我收到以下错误:(我尚未发布到 Azure,所以这一切都发生在我的本地计算机上)
Microsoft.Azure.SignalR.ServiceLifetimeManager[100] 发送消息失败(空)。Microsoft.Azure.SignalR.Common.AzureSignalRNotConnectedException:尚未连接 Azure SignalR 服务,请稍后重试。在 Microsoft.Azure.SignalR.ServiceConnectionManager 1.WriteAsync(ServiceMessage serviceMessage) at Microsoft.Azure.SignalR.ServiceLifetimeManagerBase
1.<>c__DisplayClass22_0 1.<WriteAsync>b__0(T m) at Microsoft.Azure.SignalR.ServiceLifetimeManagerBase
1.WriteCoreAsync[T](T 消息,Func`2 任务)
网络作业主要:
应用主机服务:
WebJob 触发代码:
通知服务:
集线器类:
appsettings.json:
包版本:
azure - HTTP 触发 Azure 函数上的 Singleton scopeId 支持的绑定
我不清楚scopeId
参数的SingletonAttribute
工作原理。具体来说,scopeId
当您将其绑定到路由参数时,该参数是否适用于 HTTP Trigger Azure Functions?绑定是如何工作的?我可以绑定哪些变量/值?
例如:
使用 URI 'v1/hello' 对该函数的 HTTP POST 请求将返回:“Hello world”。
但是,Singleton 属性是否会起作用,使得对“v1/hello”的所有请求都将串行运行,而两个同时请求,一个对“v1/first”,另一个对“v1/second”将并行运行?
我从这个答案中看到,对于服务总线触发器,您可以直接绑定到Message 对象中的属性。
此外,在文档中还有一个 Queue Trigger Function 示例,其中 scopeId 绑定到 WorkItem 对象中的属性。
目前还不清楚 HTTP 触发器函数支持什么。
c# - 如果我每隔一小时运行一次 azure WebJob,我会在印度标准时区收到 30 分钟的延迟通知
我在 UTC 时区每隔一小时运行一次 azure webjob。由于在印度标准时区,我会在 30 分钟后收到通知。
例如:如果除了下午 6 点的通知,那么我将获得下午 6:30,就像晚上 7 点一样意味着晚上 7:30。
我知道 UTC 和 IST 时区之间的时差问题。因为,30 分钟是不同的(05:30 小时)问题。
例如:如果 webjob 在下午 12:00 运行,那么这次在印度/IST(下午 5:30),下一个 webjob 将在下午 1:00 运行,那么这次在印度/IST(下午 6:30)我我收到通知,但我需要准确的下午 6 点。
您能否建议如何解决该解决方案?
我们可以运行 azure webjob IST 时区吗?
我检查了我们可以在 IST 时区运行 azure webjob,但它不支持 LINUX。
谢谢你。
.net - 在 Azure 存储中使用队列
我试图通过在 .NET 中使用 AzureStorage.Queue 来解决 1 个问题。
首先,我有 2 个项目,1 个 Web API 项目,1 个 WebJob 项目。(全部写在 .NET Core 2.2 中)
我的项目 API 在创建新产品时,会将产品的 1 个消息存储 ID 插入 Azure 中的消息队列(队列名称:产品)
同时在我的项目 Web Job 中,当新消息插入我的“产品”队列时,我有 1 个函数使用 [QueueTrigger["product"]] 来监听。但我不知道为什么将消息插入“产品”队列后,我的消息会自动删除并插入另一个队列名称“产品毒药”?
我在 2 Project 中使用与 Azure 存储相同的连接字符串。我尝试使用不同的连接字符串,但结果是一样的。
谢谢你支持我。
azure - 将 .net 核心服务迁移到 Azure 如何仅在需要时运行
我是 Azure 的新手,我正在审查大量不同的服务以供选择以处理 blob 存储文件夹中的各种文件。我有一个 .net 核心 Windows 服务,该服务当前处理这些文件,在本地运行(也可以在本地运行文件),但需要在进行一些重构后迁移到云以使用新的 Db 模式。将文件放入 blob 存储是很容易的部分。
该服务只会在预定时间运行。我想如果我将这些服务方法公开为 http 端点,我可以通过预定的天蓝色函数调用它的方法。我在正确的道路上吗?
问题:
- 如何将服务托管在不必连续运行的容器中,并在有文件要处理时唤醒它?不确定我是否问对了问题
- 我如何确保如果 Azure 函数调用这些方法之一,它是即发即弃的,并且不必等待它完成。
- 我看到 Webjobs 有一个带有“连续”或“按需”选项的 runMode,这会不会像我想的那样,因为即使不处理文件,它也会降低一直运行的成本?
azure - 不能创建超过 20 个 webjobs(全部被触发)
我一直试图找出为什么会发生这种情况,但基本上我们有 20 个被触发的 webjob 工作者,每当我们尝试添加更多时,创建都会通过 azure 门户失败。
以前我们通过门户添加了所有这些。新的几乎与现有的相同(我们有 15 个称为 queueWorker1 - 15),当尝试添加更多时它总是失败。请注意,我们正在从 Visual Studio 创建一个 zip 并将其上传到门户
一个应用服务可以添加多少个网络作业有限制吗?
似乎找不到任何关于此的文档或讨论
.net-core - Azure 函数 http 触发器找不到 Microsoft.Extensions.Primitives.StringValues
我正在构建一个带有 http 触发器的 Azure Functions v3 .NET Core 3.1 应用程序。我创建了从请求的 Authorization 标头中检索 jwt 并使用JwtSecurityTokenHandler
. 如果我创建一个从 FunctionsStartup 继承的启动类,这将起作用。但是,如果我从 WebJobStartup 继承,我会遇到错误。应用找不到Microsoft.Extensions.Primitives.StringValues Microsoft.AspNetCore.Http.IHeaderDictionary.get_Item
。我可以单步执行代码,但是任何尝试访问request.Headers
字典中条目的函数都不会被执行并产生错误(下面的屏幕截图)。
这是代码。如果引用存在,调试器将不会进入GetJwtFromHeader
函数:req.Headers
调试器永远不会进入GetJwtFromHeader
函数。如果我删除对 req.Headers 的引用,那么调试器将进入它。似乎任何试图通过代码访问 Header 字典的函数都找不到它。但是,如果我在监视窗口中检查对象,我会看到正确的值。
这可能是我的包中的版本控制问题吗?我尝试安装其他版本,Microsof.Extensions.Primitives
但在降级到 5.0 以下的版本时遇到问题。为什么我的 Header 字典有问题?