in lambda/runtime_api_client.go [77:111]
func (c *runtimeAPIClient) next() (*invoke, error) {
url := c.baseURL + "next"
req, err := http.NewRequest(http.MethodGet, url, nil)
if err != nil {
return nil, fmt.Errorf("failed to construct GET request to %s: %v", url, err)
}
req.Header.Set("User-Agent", c.userAgent)
resp, err := c.httpClient.Do(req)
if err != nil {
return nil, fmt.Errorf("failed to get the next invoke: %v", err)
}
defer func() {
if err := resp.Body.Close(); err != nil {
log.Printf("runtime API client failed to close %s response body: %v", url, err)
}
}()
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("failed to GET %s: got unexpected status code: %d", url, resp.StatusCode)
}
c.buffer.Reset()
_, err = c.buffer.ReadFrom(resp.Body)
if err != nil {
return nil, fmt.Errorf("failed to read the invoke payload: %v", err)
}
return &invoke{
id: resp.Header.Get(headerAWSRequestID),
payload: c.buffer.Bytes(),
headers: resp.Header,
client: c,
}, nil
}