【问题标题】:AWS SAM lambda authorizer internet accessAWS SAM lambda 授权方互联网访问
【发布时间】:2021-01-09 21:59:11
【问题描述】:

只需添加到 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 无法访问互联网

【问题讨论】:

    标签: python amazon-cloudformation aws-sam


    【解决方案1】:

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

    例如:

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

    【讨论】:

    • @Wildhammer 3 秒后仍然超时?
    • 我尝试增加超时时间,但就像我说的我怀疑我的 lambda 无法访问互联网。
    • @Wildhammer 是否放置在 VPC 中?
    • 否,除非 sam cli 在本地测试时将所有内容放在类似 VPC 的位置。
    猜你喜欢
    • 2019-02-08
    • 2017-11-12
    • 2017-07-20
    • 2020-05-24
    • 2017-07-10
    • 2019-12-06
    • 2016-08-03
    • 1970-01-01
    • 2016-09-05
    相关资源
    最近更新 更多