谷歌云功能在测试过程中崩溃,尽管部署很好



我构建了一个云函数(一个非常简单的函数,效率不高(。以下是代码和屏幕截图-

import functions_framework
import requests
@functions_framework.http
def hello():
URL='https://api.openweathermap.org/data/2.5/weather?lat=36&lon=139&appid=a70f3b4f60b2f4c64e7aad63df5758d7'
r = requests.get(url = URL)
data = r.json()
b={}
b['temp']=data['main']['temp']
b['pressure']=data['main']['pressure']
return b
print(hello())

复制码

我正在尝试获取一个位置的温度和压力。日志附在下面,正在提取值-日志文件

然而,存在一个称为"错误"的错误;hello((接受0个位置参数,但给定了1个";我无法修复。

有人能帮帮我吗?

云函数将在事件下执行,在您的情况下是HTTP事件。已注册的函数(在本例中为hello(将始终接收一个参数,该参数是对该函数执行的HTTP请求。

事实上,这在文档中非常清楚:

在Python中,您可以向Python函数框架注册HTTP处理程序函数。HTTP处理程序函数必须接受一个Flask请求对象作为参数,并返回一个值,Flask可以将该值转换为HTTP响应对象。

代码可能是:

import functions_framework
import requests
@functions_framework.http
def hello(request):
URL='https://api.openweathermap.org/data/2.5/weather?lat=36&lon=139&appid=a70f3b4f60b2f4c64e7aad63df5758d7'
r = requests.get(url = URL)
data = r.json()
b={}
b['temp']=data['main']['temp']
b['pressure']=data['main']['pressure']
return b

我强烈建议你先阅读这些文档,因为你似乎还没有完全理解云功能。基本上,云功能是作为一个非常小的网络应用程序工作的。

我也不建议打印结果。使用HTTP云函数的目的是获得HTTP响应,而不是每次都去日志中查看。

最后,构建正常并不意味着函数在运行时将按预期工作。

像这样声明hello:

def hello(request):

这也意味着不能这样调用函数:

print(hello())

Python装饰器@functions_framework.http定义了函数的签名。

相关内容

最新更新