Azure函数-发布失败-RequestTimeout

时间:2018-11-01 15:01:44

标签: deployment timeout azure-functions

我有一个基本的Azure Function应用。当我尝试发布该应用程序时,收到一条错误消息:“错误:尝试通过https:// ...发布ZIP文件的操作失败,并显示HTTP状态代码RequestTimeout。”。

此应用是.NET Standard应用。我遵循了说明here。区别在于,我的应用程序具有事件中心触发器,而不是文档中显示的Http触发器。我不明白为什么在部署期间会出现超时。我也不知道该如何克服。

我在做什么错了?

更新

这是日志。

1>------ Build started: Project: MyProject.Functions, Configuration: Release Any CPU ------
1>MyProject.Functions -> C:\MyProject\MyProject.Functions\bin\Release\netcoreapp2.1\bin\MyProject.Functions.dll
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
  Publish Started
  MyProject.Functions -> C:\MyProject\MyProject.Functions\bin\Release\netcoreapp2.1\bin\MyProject.Functions.dll
  MyProject.Functions -> C:\MyProject\MyProject.Functions\obj\Release\netcoreapp2.1\PubTmp\Out\
  Publishing C:\MyProject\MyProject.Functions\obj\Release\netcoreapp2.1\PubTmp\MyProject.Functions - 20181101105531356.zip to https://my-project.scm.azurewebsites.net/api/zipdeploy...
C:\Users\me\.nuget\packages\microsoft.net.sdk.functions\1.0.23\build\netstandard1.0\Microsoft.NET.Sdk.Functions.Publish.ZipDeploy.targets(42,5): error : The attempt to publish the ZIP file through https://my-project.scm.azurewebsites.net/api/zipdeploy failed with HTTP status code RequestTimeout. [C:\MyProject\MyProject.Functions\MyProject.Functions.csproj]

6 个答案:

答案 0 :(得分:2)

在我的例子中,这个错误是因为我的 .csproj 文件中的包版本。更新后没有错误,发布成功。

答案 1 :(得分:1)

据此: https://github.com/projectkudu/kudu/wiki/Deploying-from-a-zip-file

您应该能够将?isAsync=true传递到zipdeploy网址(因此它将是:'https://my-project.scm.azurewebsites.net/api/zipdeploy?isAsync=true'

此请求的解析速度更快,没有超时,然后您可以从响应中获取位置标头,然后可以对其进行轮询以查看部署状态。

答案 2 :(得分:0)

就我而言,这是两个问题:

1] Visual Studio和Azure都不可靠。工作场景中的超时仍然有些规律,在糟糕的一天中,发生的时间对我来说大约占50-75%。这是一个具有80mb功能的应用程序,不是很大,而且我具有千兆位互联网。

2]有人删除了存储的文件共享。我必须修复WEBSITE_CONTENTAZUREFILECONNECTIONSTRING以指向正确的存储连接字符串,并且必须更新WEBSITE_CONTENTSHARE以指向有效的文件共享名,该文件名必须在与{{ 1}}连接字符串。

如果您使用的是开发和生产功能插槽,我建议进行WEBSITE_CONTENTAZUREFILECONNECTIONSTRINGWEBSITE_CONTENTAZUREFILECONNECTIONSTRING部署插槽设置,这样您就可以链接到生产和开发存储环境。如果您正在使用表或Blob存储并且不想在所有表名或键之前添加前缀或后缀,这将特别方便。我认为这两个设置默认情况下应为广告位。

完成这些更改后,我就可以发布,但仍会处理间歇性超时。

使用Azure函数发布的错误消息对于不存在的消息是有害的,任何类型的配置或资源错误都只会导致超时错误。

答案 3 :(得分:0)

使用Visual Studio时遇到相同的问题。非常沮丧。 但是然后我只使用了VS创建和使用的zip文件

az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>

要发布。

您可以在中找到更多选项 https://docs.microsoft.com/en-us/azure/azure-functions/deployment-zip-push

答案 4 :(得分:0)

我最近遇到了同样的问题。

我不确定它们是否相关,但是在将NuGet包“ Microsoft.NET.Sdk.Functions”更新为v3.0.7之后,它开始正常工作。

答案 5 :(得分:0)

我最近遇到了这个问题,花了整整2天的时间来修复它。尝试了本文和其他文章中建议的大多数解决方案。

最终对我有用的是删除我的发布设置,并通过上传全新的.PublishSettings文件来创建一个新设置。

如何获取.PublishSettings文件?

在Azure门户的Function App上,单击“获取发布配置文件” Azure Portal

并会自动开始下载。

如何上传发布配置文件?

当尝试从Visual Studio发布项目时,单击“新建”->“选择导入配置文件” Import Profile

然后浏览您的.PublishSettings文件。

然后,只需选择此新配置文件(如果尚未选择),然后像平常一样单击“发布”按钮即可。