Google Cloud Functions 上的 Numpy 错误不会在本地发生
Numpy error on Google Cloud Functions which does not happen locally
下面google 云函数在本地运行良好,但部署到云端时失败。
from flask import escape
import functions_framework
import numpy as np
@functions_framework.http
def test_func(request):
np_array = np.zeros(172128250, dtype=np.complex64)
print('np_array shape: ', np_array.shape)
abs_array = np.abs(np_array)
print('abs_array shape: ', abs_array.shape)
return 'Hello World'
Python 尝试过的版本:3.7、3.8 和 3.9.
超时:540s
内存:8GB
np_array创建成功,但计算abs失败。函数打印第一个日志 np_array shape: (172128250,)
但无法打印第二个日志。函数突然退出打印 Function execution took 2408 ms, finished with status: 'connection error'
。它适用于本地的所有大小,但在云上,它特别适用于以下 10 种大小的 NumPy 数组 [172128241, 172128242, ..., 172128250]
.
您的执行环境是沙盒化的,您无法获得某些 CPU 功能(有关详细信息,请查看 gVisor project)。
为了解决这个问题,我建议您切换到云 运行(只需将您的代码包装在 Web 服务器中,请参阅我的 old article here) and use execution runtime gen2(仍处于预览状态)
发现错误出现在云上的Numpy版本:1.19.4
。在云上使用 1.21.5
后,错误消失了。仍然很奇怪为什么它在本地使用 1.19.4
但在云端失败。
下面google 云函数在本地运行良好,但部署到云端时失败。
from flask import escape
import functions_framework
import numpy as np
@functions_framework.http
def test_func(request):
np_array = np.zeros(172128250, dtype=np.complex64)
print('np_array shape: ', np_array.shape)
abs_array = np.abs(np_array)
print('abs_array shape: ', abs_array.shape)
return 'Hello World'
Python 尝试过的版本:3.7、3.8 和 3.9.
超时:540s
内存:8GB
np_array创建成功,但计算abs失败。函数打印第一个日志 np_array shape: (172128250,)
但无法打印第二个日志。函数突然退出打印 Function execution took 2408 ms, finished with status: 'connection error'
。它适用于本地的所有大小,但在云上,它特别适用于以下 10 种大小的 NumPy 数组 [172128241, 172128242, ..., 172128250]
.
您的执行环境是沙盒化的,您无法获得某些 CPU 功能(有关详细信息,请查看 gVisor project)。
为了解决这个问题,我建议您切换到云 运行(只需将您的代码包装在 Web 服务器中,请参阅我的 old article here) and use execution runtime gen2(仍处于预览状态)
发现错误出现在云上的Numpy版本:1.19.4
。在云上使用 1.21.5
后,错误消失了。仍然很奇怪为什么它在本地使用 1.19.4
但在云端失败。