Azure python webapp 部署显示为正在运行,即使它成功了

问题描述 投票:0回答:1

当我使用 azure CLI 部署 Web 应用程序时,命令会一直运行直到超时,但应用程序本身会成功且快速地部署。有时,看似随机,cli 命令会正确检测到这一点并显示部署成功。

命令:

az webapp up --subscription <subscription> --name <webapp-name> --resource-group  <rg> --plan  <app-service-plan> --runtime PYTHON:3.11 --debug --verbose --launch-browser --location northeurope

Web 应用程序代码(已简化,但问题仍然存在):

from dotenv import load_dotenv
load_dotenv()
from fastapi import FastAPI

app = FastAPI()

@app.get("/version")
async def version():
    print('Hit version endpoint')
    return {"version": "1.0.0"}

应用程序配置了变量

SCM_DO_BUILD_DURING_DEPLOYMENT
和启动命令
python -m uvicorn main:app --host 0.0.0.0 --workers 4

如上所示,我尝试尽可能地简化应用程序,但没有成功或清楚地理解为什么它随机没有发现部署成功。

如果有用,我知道部署成功,因为我更新了

/version
端点,并且从 Azure Web 门户的“部署”>“部署中心”>“日志”下,我可以看到成功的运行: enter image description here

调试和详细日志不提供任何有用的反馈,它只是一个无限循环:

cli.azure.cli.core.util: Request URL: 'https://management.azure.com/subscriptions/...'
<request details>
cli.azure.cli.core.util: Response status: 202
<answer details indicating instancesInProgress: 1 and successfulInstances: 0>
cli.azure.cli.command_modules.appservice.custom: Status: Starting the site... Time: 623(s)
cli.azure.cli.command_modules.appservice.custom: InprogressInstances: 1, SuccessfulInstances: 0

有人发现这个问题并找到一种方法使部署始终显示成功吗?

python azure azure-web-app-service
1个回答
0
投票
使用

az webapp up

 CLI 命令进行的 
Azure python webapp 部署显示
In progress
状态,即使它已从主机成功运行,这可能是 CLI 部署命令的临时问题。当 CLI 控制台在部署后未从 Web 应用程序实例接收到准确的部署状态检查时,可能会发生这种情况。

检查以下内容以解决问题:

Azure 开发中提供了一个名为 az webapp 部署源 config-zip 的替代部署命令。您可以使用此命令成功部署 Web 应用程序。在这里,您还可以包含一个

--timeout
参数来增加超时而不是默认时间,以避免与状态检查相关的冲突。

还要在部署期间清楚地检查门户网站中

LogStream
下的
Monitoring
以及
app service logs
,因为调试日志仅显示应用程序卡住并处于
progress
状态检查。

enter image description here

通过参考MSDoc,我尝试部署一个示例Fast API Python应用程序,并能够成功执行部署,如下所示。

注意:添加

--logs
参数以及检索日志信息的命令,您也可以使用它来比较日志流中门户中显示的日志。

az webapp up --runtime PYTHON:3.11 --sku B1 --logs

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.