gpt4 book ai didi

azure - Azure Linux Web 应用程序上交换插槽速度缓慢

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

我已在 Azure DevOps 中设置了一个部署管道,它将 .NET 5 Web API 部署到 Azure Linux Web 应用部署槽。部署完成后,它将部署槽与生产槽交换。

交换按其应有的方式工作,但速度相当慢 - 交换大约需要 5 分钟。看起来预热很快,但占用时间的却是交换。

我的管道 yaml 任务如下所示:

- task: AzureWebApp@1
displayName: "Deploy My webapp"
inputs:
azureSubscription: <azureSubscriptionName>
appType: 'webAppLinux'
deployToSlotOrASE: true
appName: 'my-web-app'
slotName: 'my-web-app-slot'
package: '$(PIPELINE.WORKSPACE)/MyWebApp/MyWebApp.zip'

- task: AzureAppServiceManage@0
inputs:
azureSubscription: <AzureSubscriptionName>
Action: 'Swap Slots'
WebAppName: 'my-web-app'
ResourceGroupName: 'MyResourceGroup'
SourceSlot: 'my-web-app-slot'

在执行Swap Slots任务时查看管道的日志,执行了以下“任务”:

  1. 热身时段
  2. 交换应用服务“my-web-app”插槽 -“my-web-app-slot”和“生产”

热身时段几乎是即时的。它执行三次 GET 请求,其中第三次请求返回应用服务状态代码:“302”。状态消息:“找到” 表示插槽确实已启动/已预热。

交换应用程序服务“my-web-app”插槽 -“my-web-app-slot”和“生产” 是所有时间都被使用的地方。我首先向 URL 发送 POST 请求:https://management.azure.com/subscriptions/mysubscription/resouceGroups/myresourcegroup/providers/Microsoft.Web/sites/my-web -app/slots/my-web-app-slot/slotsswap?api-version=2016-08-01

POST之后,它开始对URL执行GET请求:https://management.azure.com/subscriptions/mysubscription/resouceGroups/myresourcegroup/providers/Microsoft.Web/sites/my-web-app/slots/my-web-app-slot/operationresults/some-guid?api-version=2016-08-01 ==> undefined 返回状态代码202

从上述 GET 请求中获取 202 后 4 - 5 分钟,最终收到 200 http 响应,交换完成。

问题是:在交换期间,GET 请求不断返回 202 http 状态代码,到底发生了什么?还有:有什么方法可以加快这个过程吗?

提前非常感谢。

最佳答案

谢谢@dixitarora-msft ,您需要根据状态代码进行交换,方法是在应用设置中添加 WEBSITE_SWAP_WARMUP_PING_PATHWEBSITE_SWAP_WARMUP_PING_STATUSES

交换操作期间,暂存槽中的站点通过向以下位置发出 HTTP 请求来预热:它的根目录。引用这里How to warm up Azure Web App during deployment slots swap .

默认情况下,一旦网站响应任何状态代码交换就会继续。如果应用程序无法预热交换无法继续,那么您可以使用以下应用程序设置进行配置:

WEBSITE_SWAP_WARMUP_PING_PATH:发出预热请求的路径。将其设置为以斜线开头的 URL 路径作为值。例如,“/warmup.php”。默认值为/。

WEBSITE_SWAP_WARMUP_PING_STATUSES:预热操作的预期 HTTP 响应代码。将其设置为以逗号分隔的 HTTP 状态代码列表。例如:“200,202”。如果返回的状态码不在列表中,则交换操作将无法完成。默认情况下,所有响应代码均有效。

引用here

关于azure - Azure Linux Web 应用程序上交换插槽速度缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69802490/

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