【发布时间】:2018-01-12 07:35:38
【问题描述】:
我有一个 AWS Lambda 函数 作为“Get-All-Project-Sessions”和 API Getaway。如果我从 API Rest 客户端尝试,则返回响应。
- 我创建了一个新的 AWS Lambda 函数-“
Dev-Test-Lambda-Invoke”, - 我从中调用“Get-All-Project-Sessions”。
代码:
import boto3
import json
def get_all_projects_session():
print("In function...")
client = boto3.client('lambda')
res = client.invoke(
FunctionName='cbr-all-projects-sessions',
InvocationType='RequestResponse',
Payload=json.dumps({'httpMethod': 'GET'})
)
print(res)
print("HTTPStatusCode: {}".format(res["ResponseMetadata"]["HTTPStatusCode"]))
print(res['Payload'])
response_pauload = res['Payload'].read()
return response_pauload
def lambda_handler(event, context):
try:
print("In Lambda Handler")
response = get_all_projects_session()
print(response)
return response
except Exception as err:
print("Exception1: {}".format(err))
return("Exception: {}".format(err))
return 'Hello from Lambda'
运行代码后,我收到 Time Out 作为响应,因为 Lambda 函数在 300 sec 之后超时,即 5 minutes。
我检查了 Cloud Watch Log 中的“Dev-Test-Lambda-Invoke”Lambda 函数,它只显示了我在代码中打印的两条语句,它们是 "In Lambda Handler" and "In function..."
我检查了 Cloud Watch Log 中的“Get-All-Project-Sessions”Lambda 函数,该函数在代码之后在无限循环中运行,然后再次启动。但是当我从 RESTClient 调用 API 时,“Get-All-Project-Sessions”会返回正确的响应。
有什么想法吗??
【问题讨论】:
标签: python amazon-web-services aws-lambda aws-api-gateway boto3