如何解决Azure Function中的请求超时问题?

huangapple go评论106阅读模式
英文:

How do I resolve the Request timeout problem in Azure Function?

问题

我正在尝试在Azure中使用Go创建一个函数应用程序。

我正在按照这个资源进行操作,链接

当我在本地运行时,一切都正常,但一旦部署到云端就会出现问题。

代码:GitHub

错误输出

  1. 通过浏览器,
    如何解决Azure Function中的请求超时问题?

  2. 通过VS Code
    如何解决Azure Function中的请求超时问题?

  3. Azure 仪表板
    如何解决Azure Function中的请求超时问题?

我的配置如下:

  • 操作系统:Windows 11

  • Azure 订阅:学生

英文:

I am trying to create a Function APP with Go in Azure.

I am following this resource, link.

Everything works fine when I am running it locally but it gives problems once I deploy it to the cloud.

Code: github

Error Outputs

  1. Through the browser,
    如何解决Azure Function中的请求超时问题?

  2. Through VS Code
    如何解决Azure Function中的请求超时问题?

  3. Azure Dashboard
    如何解决Azure Function中的请求超时问题?

My configurations are,

  • OS: windows 11

  • Azure subscription: student

答案1

得分: 1

我能够重现你的问题,并且在我的环境中解决了它。我不知道这是否会完全修复你的问题,但我会在这里留下解决方法,以防其他人遇到相同的情况。

我在我的 Ubuntu 22.04 上构建了 Go 程序,然而 Azure Function 镜像是基于 Ubuntu 20.04 的,并且它们使用了不同的 Debian 基础发行版。在 App Service Plan 上运行函数时,我能够检测到错误 GLIBC_2.32 not found,这与 这个问题 相关。

为了解决这个问题,我在本地使用 Ubuntu 20.04 构建了我的 Go 程序(与在 Azure 上运行的环境相同),并且函数在 Azure Cloud 上第一次尝试运行时就成功了。

$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"

$ go build <go file>

我使用的函数是设置为 Consumption Plan。

对于更复杂的情况,可能需要调整构建选项,例如使用 go build -ldflags="-extldflags=-static" 或 CGO。

英文:

I was able to reproduce your issue and also solve it, at least on my side. I don't know if this will fix precisely your case now but I'll leave it here in case anyone goes through this same scenario.

I was building the Go program in my Ubuntu 22.04, however, Azure Function images are based on Ubuntu 20.04, and they share different Debian base distros. Running the function on an App Service Plan I was able to detect the error GLIBC_2.32 not found, which was related to this issue.

To solve it, I built my Go program locally on Ubuntu 20.04 (which is the same as it will be running on Azure) and the function worked on the first try running on Azure Cloud.

$ cat /etc/os-release
NAME=&quot;Ubuntu&quot;
VERSION=&quot;20.04.6 LTS (Focal Fossa)&quot;

$ go build &lt;go file&gt;

The function I used was set with a Consumption Plan.

For more complex scenarios it might be necessary to tune the build options such as with go build -ldflags=&quot;-extldflags=-static&quot; or CGO.

huangapple
  • 本文由 发表于 2023年5月8日 21:50:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/76201252.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定