调用实际上是 API 处理程序 lambda 的 lambda 时出现 Key 错误。我使用以下语法调用该特定路由
invoke_payload = {
'path': '/3d/terrain/{item_id}/{proxy+}',
'httpMethod': 'GET',
'headers': {'Accept':'application/octet-stream'},
'multiValueHeaders': {},
'queryStringParameters': {'access_token':jwt_token},
'multiValueQueryStringParameters': None,
'pathParameters': {'dataset_id': dataset_id,'proxy':proxy_path},
'stageVariables': None,
'requestContext': {
'path': '/3d/terrain/{item_id}/{proxy+}',
'resourcePath': '/3d/terrain/{item_id}/{proxy+}',
'httpMethod': 'GET',
},
'body': None,
}
#syncronous call
response = client.invoke(FunctionName=arn,
InvocationType='RequestResponse',
Payload=json.dumps(invoke_payload))
result = json.loads(response.get('Payload').read())
return result
会是什么呢。我通过了所有必需的路径参数,我认为令牌应该不是问题。
当我在 Postman 中发出 get 请求时,我得到以下信息:
{
"errorMessage": "'item_id'",
"errorType": "KeyError",
"stackTrace": [
" File \"/var/task/chalice/app.py\", line 1040, in __call__\n for name in route_entry.view_args}\n",
" File \"/var/task/chalice/app.py\", line 1040, in <dictcomp>\n for name in route_entry.view_args}\n"
]