Python Azure Functions on Premium Plan:发布/部署函数失败...

Python Azure Function on Premium Plan: Publishing / deployment of functions fails…

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

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

  • 发布后等待几分钟,以便功能(App)反映更新

  • 重启函数应用

  • 确保在“配置”下设置了以下 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 门户 -> 功能应用 -> 开发工具 -> SSHwwwroot 检查 wwwroot 文件夹来检查是否发布了正确的文件
cd /home/site/wwwroot
dir
  • 检查部署日志

    • 通过 link 在部署期间显示为输出
      • 应该类似于“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 资源并重新部署它