问题描述
只需添加到aws sam cli hello世界示例,然后尝试添加lambda授权者:
MyAuthFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./python
Handler: auth/authorizer.lambda_handler
Runtime: python3.8
我的lambda需要从租户那里获取公钥,因此我需要外部的get呼叫来获取它:
def lambda_handler(event,context):
...
print("getting pub key from",'https://%s/pem' % os.environ['AUTH_DOMAIN'])
pub_key = requests.get('https://%s/pem' % os.environ['AUTH_DOMAIN'])
...
每次我碰到lambda都会超时:
Function 'MyAuthFunction' timed out after 3 seconds
我在这里想念什么吗?我觉得自己的Lambda无法访问互联网
解决方法
您应该将Timeout的时间从默认3秒增加到函数正常运行所需的时间(最多15分钟)。
例如:
MyAuthFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: ./python
Handler: auth/authorizer.lambda_handler
Runtime: python3.8
Timeout: 60 # one minute