gpt4 book ai didi

azure - HTTP 触发器 Azure Function 上支持的单例scopeId 绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 03:53:09 24 4
gpt4 key购买 nike

我不清楚 SingletonAttributescopeId 参数如何工作。具体来说,当您将 scopeId 参数绑定(bind)到路由参数时,该参数是否适用于 HTTP 触发器 Azure Functions?绑定(bind)是如何工作的?我可以绑定(bind)哪些变量/值?

例如:

[Singleton("{input}", Mode = SingletonMode.Listener)]
public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "v1/{input:length(1,30)}")] Microsoft.AspNetCore.Http.HttpRequest req, string input, ILogger log) {
return new OkObjectResult(input + " world");
}

使用 URI 'v1/hello' 对此函数发出 HTTP POST 请求将返回:“Hello world”。

但是 Singleton 属性是否可以使所有对“v1/hello”的请求都串行运行,而两个同时请求(一个对“v1/first”,另一个对“v1/second”)的请求将并行运行?

我从this answer看到对于服务总线触发器,您可以直接绑定(bind)到消息对象内的属性。
也在 the documentation有一个队列触发器函数的示例,其中scopeId绑定(bind)到WorkItem对象中的属性。
目前尚不清楚 HTTP 触发器函数支持哪些内容。

最佳答案

有两种方法可以在Azure函数中实现单例模式。

第一个:

您可以通过设置 WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUTmaxConcurrentCalls 来实现此目的。

Singleton Azure function running as separate instances

第二种:

创建一个完整的Function项目,类似于webapp,并在Configure中实现。

Use dependency injection in .NET Azure Functions

public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddHttpClient();

builder.Services.AddSingleton<IMyService>((s) => {
return new MyService();
});

builder.Services.AddSingleton<ILoggerProvider, MyLoggerProvider>();
}
}

关于azure - HTTP 触发器 Azure Function 上支持的单例scopeId 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65745130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com