首页 > 解决方案 > AWS SAM lambda 授权方互联网访问

问题描述

只需添加到 aws sam cli hello world 示例并尝试添加 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 无法访问互联网

标签: pythonamazon-cloudformationaws-sam

解决方案


您应该增加Timeout,从默认的 3 秒增加到您的功能成功运行所需的任何时间(最多 15 分钟)。

例如:

MyAuthFunction:
  Type: AWS::Serverless::Function
  Properties:
    CodeUri: ./python
    Handler: auth/authorizer.lambda_handler
    Runtime: python3.8
    Timeout: 60 # one minute

推荐阅读