gpt4 book ai didi

go - 您如何将具有多个api端点的Golang服务器部署为单个云功能?

转载 作者:行者123 更新时间:2023-12-01 22:14:53 26 4
gpt4 key购买 nike

我有一个main.go文件,看起来像

func main() {
connection := db.Connect()
defer connection.Close()
// db.ResetDb() // uncomment if you want to drop the db on go run main.go
http.HandleFunc("/do-a", endpoints.DoA)
http.HandleFunc("/do-b", endpoints.DoB)
// ...
http.HandleFunc("/do-z", endpoints.DoZ)
http.ListenAndServe(":8081", nil)
}

首先使用 db.Connect建立数据库连接,如果需要,我的代码库中的任何函数都可以访问数据库。然后,使用 http.HandleFunc创建了多个端点。最后,服务器侦听我本地计算机的 8081端口。

所有端点处理程序函数都是纯函数。没有内部状态会要求服务器持续运行,这就是为什么我认为云功能可以工作的原因。我对云功能的唯一困扰是需要在每个端点调用之前建立数据库连接。我认为这个问题可以通过GCF来解决,就像 cache objects一样。

附带说明一下,我应该像这样部署后端吗?仅在运行24/7的典型服务器上运行它会更好吗?

最佳答案

您将无法在Cloud Functions中使用ListenAndServe。云功能的工作方式就是这样。它要求您为传入连接定义一个函数入口点,该套接字将为您处理套接字。该套接字端点具有自己的专用URL,您无法更改,并且具有与您赋予函数名称相关的路径。您可能需要查看文档,以查看完整的sample code,以使用HTTP功能。查看如何获得发送给您的请求和响应对象。

由于这种工作方式,因此您无法运行任何类型的“服务器”,而只能处理系统管理的传入请求。通常,您为每个端点提供自己的已部署功能。如果您真的想运行HTTP服务器,那么Cloud Functions将不是一个好的选择。而是考虑使用App Engine,Compute Engine或Cloud Run。

关于go - 您如何将具有多个api端点的Golang服务器部署为单个云功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61131223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com