Google Cloud Functions 配额页面:https://cloud.google.com/functions/quotas表示 HTTP 响应中 HTTP 函数发送的最大数据量为 10 MB。我在 Google 存储桶中有 100 MB 的文件,我想将其从 Cloud Function 流式传输到我的应用程序。由于我们架构的安全问题,我的应用程序无法直接从存储桶中读取。
云函数中的示例 Go 代码为:
func MyFn(w http.ResponseWriter, r *http.Request) {
var appendedBytes []byte
for {
decryptedFileBuffer, err := fh.GetNextDecryptedPage()
if err != nil {
break
}
appendedBytes = append(appendedBytes, decryptedFileBuffer...)
}
w.Write(appendedBytes)
}
如果我尝试使用 Cloud Function 获取超过 10 MB 的文件,则会收到以下错误:
错误:函数响应不正确。函数调用是
打断了。
错误:无法处理请求
如何从云函数中获取大于10MB的文件?
当我们查看配额页面时,我们会看到no反对是否可以增加配额。 Google Cloud Run 是一个新玩家……请参阅here。这提供了与 Cloud Functions 非常相似的功能,但使用 Kubernetes 作为函数托管环境。它是quota津贴是 32MB ...但这也低于您的需要,并且也被标记为no为增加。
我立即想到的是用便利性(一个简单的云功能)来换取灵活性,并在 GCP 上运行自己的计算资源。例如,运行计算引擎、应用程序引擎或 Kubernetes 集群,其中包含的应用程序通过 Web 服务器提供响应,这是一个非常好的提议,并且不受吞吐量限制。您必须对计费进行数学计算,以确定成本差异,因为指标会有所不同,但从技术角度来看,游戏规则发生了巨大变化。云功能/云运行能力主要是为了支持非常短的微服务,我猜测直接传输100MB不被视为微服务。它也可能不像人们想象的那样具有成本效益。据我了解,Cloud Functions 按使用时间单位计费。传输 100MB 可能是缓慢的延迟提议,并且与我们想象的始终运行计算相比,可能不具有成本效益。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)