高级计划中的 Python Azure 函数:函数的发布/部署失败……

Posted

技术标签:

【中文标题】高级计划中的 Python Azure 函数:函数的发布/部署失败……【英文标题】:Python Azure Function on Premium Plan: Publishing / deployment of functions fails… 【发布时间】:2020-07-24 08:32:10 【问题描述】:

在使用在 Linux 和高级计划上运行的 Python Azure Functions 时,我遇到了多个有关函数发布/部署的问题。以下是在失败或成功但功能(在 Azure 上)不反映应该发布/部署的内容的情况下可以执行的选项。

以下选项也可能适用于非 Linux/非 Python/非高级计划功能(应用程序)。

【问题讨论】:

【参考方案1】:

在发布后等待几分钟,以便函数(应用)反映更新

重启函数应用

确保在“配置”下设置了以下 AppSettings(请根据您当前的上下文进行调整)

[ 
  
    "name": "AzureWebJobsStorage",
    "value": "<KeyVault reference to storage account connection string>",
    "slotSetting": false
  ,
  
    "name": "ENABLE_ORYX_BUILD",
    "value": "true",
    "slotSetting": false
  ,
  
    "name": "FUNCTIONS_EXTENSION_VERSION",
    "value": "~3",
    "slotSetting": false
  ,
  
    "name": "FUNCTIONS_WORKER_RUNTIME",
    "value": "python",
    "slotSetting": false
  ,
  
    "name": "SCM_DO_BUILD_DURING_DEPLOYMENT",
    "value": "true",
    "slotSetting": false
  ,
  
    "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
    "value": "<storage account connection string>",
    "slotSetting": false
  ,
  
    "name": "WEBSITE_CONTENTSHARE",
    "value": "<func app name>",
    "slotSetting": false
  
]

使用 Azure DevOps Pipelines 时使用标准的 Azure Function 任务 (https://github.com/Microsoft/azure-pipelines-tasks/blob/master/Tasks/AzureFunctionAppV1/README.md) 发布函数,分别设置 AppSettings。

此任务也适用于 Python,即使它没有在“运行时堆栈”下明确提供选项(只需将其留空)。

确保发布正确的文件(如果您通过 ZipDeploy 发布,zip 文件夹的根目录应包含 host.json

您可以通过 Azure Portal -> Function App -> Development Tools -> SSH 检查wwwroot 文件夹来检查是否发布了正确的文件
cd /home/site/wwwroot
dir

检查部署日志

通过在部署期间显示为输出的链接 应该看起来像“https://func-app-name.net/api/deployments/someid/log” 通过开发工具 -> 高级工具

如果到目前为止的步骤没有帮助,它可以帮助通过门户(开发工具 -> SSH)SSH 到主机并删除

# The deployments folder (and then republish)
cd /home/site
rm -r deployments

# The wwwroot folder (and then republish)
cd /home/site
rm -r wwwroot
删除 Function App 资源并重新部署它

【讨论】:

以上是关于高级计划中的 Python Azure 函数:函数的发布/部署失败……的主要内容,如果未能解决你的问题,请参考以下文章

Azure 函数很慢

应用服务计划的 Azure 函数应用超时

在事件中心接收消息时未触发 ASE 中的 Azure 函数

按计划删除 Azure 存储中的所有文件

使用 Python 脚本的 ADF 管道中的 Azure 函数

无法在 azure 函数应用程序中创建 python 函数