gpt4 book ai didi

azure - 部署后预热 Azure Web App(不使用部署槽)

转载 作者:行者123 更新时间:2023-12-02 06:09:46 25 4
gpt4 key购买 nike

我们有许多 Azure Web 应用程序,我们会定期部署(每周几次)。使用 Zip Push Deploy 方法 ( https://learn.microsoft.com/en-us/azure/azure-functions/deployment-zip-push ) 执行部署,效果非常好。

我们的问题是,在向服务器发出第一个请求之前,不同的网络应用程序无法正确启动,这意味着第一个用户会受到很大的性能损失。我们尝试通过在部署完成后立即发出请求来解决此问题,但似乎我们经常使用旧版本的 Web 应用程序,而不是预热新版本。

我知道我们可以使用部署槽及其预热功能,但由于多种原因,部署槽目前不是我们的选择。

有什么方法可以让我们知道部署何时完成,以便我们在新代码启动并运行之前不会触发预热调用(例如,使用 Powershell 脚本)?

目前,我们使用类似于下面的 Powershell 查询来访问应用服务,但由于部署尚未完成,它们通常会很快返回:

# Warmup Azure service
$warmupUrl = "https://$appName.azurewebsites.net/"
Write-Output "Making request to $warmupUrl"
$stopwatch = [Diagnostics.Stopwatch]::StartNew()

Try {
# Allow redirections on the warm up
$response = Invoke-WebRequest -UseBasicParsing $warmupUrl -
MaximumRedirection 10 -TimeoutSec 240
$stopwatch.Stop()
$statusCode = [int]$response.StatusCode
Write-Output "$statusCode Warmed Up Site $TestUrl in
$($stopwatch.ElapsedMilliseconds)s ms"
} catch {
#$_.Exception|format-list -force
} Finally
{
$stopwatch.Stop()
Write-Output "Warmed Up Site $warmupUrl in
$($stopwatch.ElapsedMilliseconds)s ms"
}

最佳答案

您是否有可能正在使用 async zipdeploy 并且没有等待它?如果你耐心等待,新的部分应该很快就会生效。为了安全起见,部署后等待 10 秒(以允许文件更改通知传播),我不希望您会遇到旧版本。

关于azure - 部署后预热 Azure Web App(不使用部署槽),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51858636/

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