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 门户 -> 功能应用 -> 开发工具 -> SSH
wwwroot
检查 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 资源并重新部署它
在 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 门户 -> 功能应用 -> 开发工具 -> SSH
wwwroot
检查wwwroot
文件夹来检查是否发布了正确的文件
- 您可以通过 Azure 门户 -> 功能应用 -> 开发工具 -> SSH
cd /home/site/wwwroot
dir
检查部署日志
- 通过 link 在部署期间显示为输出
- 应该类似于“https://func-app-name.net/api/deployments/someid/log”
- 通过开发工具 -> 高级工具
- 通过 link 在部署期间显示为输出
如果到目前为止的步骤没有帮助,它可以帮助通过门户(开发工具 -> 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 资源并重新部署它