为了账号安全,请及时绑定邮箱和手机立即绑定

通过请求另一个函数对 Lambda 函数进行超时会导致超时错误

通过请求另一个函数对 Lambda 函数进行超时会导致超时错误

Go
qq_花开花谢_0 2022-06-01 10:40:54
我有一个带有用户验证器的 lambda 函数 A,它请求带有 Bearer 令牌的第二个 lambda 函数 B,并希望接收用户信息。当我将函数 A 的超时定义为小于 28 秒时,我收到以下错误:错误:获取https://dev.url.com/auth/:net/http:在等待连接时取消请求(等待标头时超出 Client.Timeout)我的代码是:    client := &http.Client{        Timeout: time.Second * 20,    }    req, err := http.NewRequest("GET", m.authURL, nil)    req.Header.Set("Content-Type", "application/json")    req.Header.Set("Authorization", "Bearer "+m.token)    resp, err := client.Do(req)    if err != nil || resp.StatusCode != http.StatusOK {        return errors.Errorf("Failed to request auth service.\ntoken: %s\nERROR: %+v\n", m.token, err)    }    defer resp.Body.Close()    body, err := ioutil.ReadAll(resp.Body)    log.Println(string(body))    return err当我将函数 A 的超时时间定义为大于或等于 28 秒时,一切都按预期工作,两个函数都正常工作,整个过程大约需要 7 毫秒(!!!)。超时是否可能在执行中具有这样的作用?如果是这样,为什么?
查看完整描述

1 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

正如上面评论中提到的,谁可能会遇到同样的问题,我的 lambda 函数位于 VPC 内部。一开始我质疑我的 VPC 配置,但因为有时两个 lambda 之间的执行都成功执行,所以我很早就排除了这个假设。

仍然不明白为什么增加我的 lambda 的超时可以使它工作。我没有假设,Suraj 的评论鼓励我重置我的 VPC 配置,而不是根据我的经验进行配置,而是尝试遵循以下链接中的每个细节。在这个过程中,意识到之前我将公共路由表分配给了私有子网。这似乎解释了这个问题。


查看完整回答
反对 回复 2022-06-01
  • 1 回答
  • 0 关注
  • 114 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号