requests.get() 在 aws lambda 中抛出异常
requests.get() throws an exception in aws lambda
我无法从托管在 AWS 上并通过无服务器框架管理的基于 python 的 lambda 函数进行 HTTP 调用。
我试过使用 botocore.vendored
请求模块,但它显示弃用警告并建议使用请求模块本身。
url = V2_URL + '/api/analytics/validate/' + smId
headers = {
'Content-Type':'application/json',
'Authorization': token
}
response = requests.get(url, headers=headers)
print('Result: ')
print(response.content)
在 Cloudwatch 中,我看到了这个堆栈跟踪:
[ERROR] UnboundLocalError: local variable 'response' referenced before assignment
Traceback (most recent call last):
File "/var/task/serverless_sdk/__init__.py", line 97, in wrapped_handler
return user_handler(event, context)
File "src/authorize.py", line 21, in validate
principal_id = verify_token(whole_auth_token, event['pathParameters']['smId'])
File "src/authorize.py", line 38, in verify_token
response = requests.get(url, headers=headers)
File "/var/task/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/var/task/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/var/task/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/var/task/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/var/task/requests/adapters.py", line 449, in send
timeout=timeout
File "/var/task/serverless_sdk/__init__.py", line 384, in wrapper
if response:
正如@blhsing 和@Mark A 指出的那样,@serverless/enterprise-plugin
包的 3.1.1 版中存在一个错误。将其升级到版本 3.1.2 为我解决了这个问题。我所要做的就是 npm i -g serverless
它会自行处理。
这里的问题详情:https://github.com/serverless/serverless/issues/6801
我无法从托管在 AWS 上并通过无服务器框架管理的基于 python 的 lambda 函数进行 HTTP 调用。
我试过使用 botocore.vendored
请求模块,但它显示弃用警告并建议使用请求模块本身。
url = V2_URL + '/api/analytics/validate/' + smId
headers = {
'Content-Type':'application/json',
'Authorization': token
}
response = requests.get(url, headers=headers)
print('Result: ')
print(response.content)
在 Cloudwatch 中,我看到了这个堆栈跟踪:
[ERROR] UnboundLocalError: local variable 'response' referenced before assignment
Traceback (most recent call last):
File "/var/task/serverless_sdk/__init__.py", line 97, in wrapped_handler
return user_handler(event, context)
File "src/authorize.py", line 21, in validate
principal_id = verify_token(whole_auth_token, event['pathParameters']['smId'])
File "src/authorize.py", line 38, in verify_token
response = requests.get(url, headers=headers)
File "/var/task/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/var/task/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/var/task/requests/sessions.py", line 533, in request
resp = self.send(prep, **send_kwargs)
File "/var/task/requests/sessions.py", line 646, in send
r = adapter.send(request, **kwargs)
File "/var/task/requests/adapters.py", line 449, in send
timeout=timeout
File "/var/task/serverless_sdk/__init__.py", line 384, in wrapper
if response:
正如@blhsing 和@Mark A 指出的那样,@serverless/enterprise-plugin
包的 3.1.1 版中存在一个错误。将其升级到版本 3.1.2 为我解决了这个问题。我所要做的就是 npm i -g serverless
它会自行处理。
这里的问题详情:https://github.com/serverless/serverless/issues/6801