gpt4 book ai didi

azure - 部署新函数应用程序时,azure 函数是否会正常关闭现有函数调用?

转载 作者:行者123 更新时间:2023-12-03 01:04:00 25 4
gpt4 key购买 nike

我想了解部署新版本的 azure 函数应用程序的含义,因为它与现有函数调用/线程相关。据我所知,对于像 asp.net 这样的框架,有一些选项,例如将 app_office.htm 添加到根目录。

我们如何确保不会终止事件线程并允许应用程序在部署之前正常关闭?

最佳答案

选项 1:使用 cancellation tokens 实现正常关闭。我似乎无法确定的一件事是发出取消 token 后您拥有的宽限期:(

public static class AsyncExample
{
[FunctionName("BlobCopy")]
public static async Task RunAsync(
[BlobTrigger("sample-images/{blobName}")] Stream blobInput,
[Blob("sample-images-copies/{blobName}", FileAccess.Write)] Stream blobOutput,
CancellationToken token,
ILogger log)
{
log.LogInformation($"BlobCopy function processed.");
await blobInput.CopyToAsync(blobOutput, 4096, token);
}
}

选项 2 是使用 durable functions extensions 。这些扩展通过 maintaining state and using checkpoints 提供可靠的执行允许您的函数在关闭或失败后重新启动执行过程。简而言之,持久函数在每个等待语句处检查函数的状态,并启用从最后一个成功的等待语句重放。

选项 3 是使用部署插槽并拥有 Prod1 和 Prod2 插槽以及备用部署。这将允许您构建一个排水停止方法来保留正在运行的实例直至完成。您仍然需要使用持久函数或取消 token 来应对失败的实例和未知异常。

选项 4 是使用两个函数应用实例并使用负载均衡器来管理它们之间的流量。

关于azure - 部署新函数应用程序时,azure 函数是否会正常关闭现有函数调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54317344/

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