in lambda/extensions_api_client.go [41:63]
func (c *extensionAPIClient) register(name string, events ...extensionAPIEventType) (string, error) {
url := c.baseURL + "register"
body, _ := json.Marshal(struct {
Events []extensionAPIEventType `json:"events"`
}{
Events: events,
})
req, _ := http.NewRequest(http.MethodPost, url, bytes.NewReader(body))
req.Header.Add(headerExtensionName, name)
res, err := c.httpClient.Do(req)
if err != nil {
return "", fmt.Errorf("failed to register extension: %v", err)
}
defer res.Body.Close()
_, _ = io.Copy(ioutil.Discard, res.Body)
if res.StatusCode != http.StatusOK {
return "", fmt.Errorf("failed to register extension, got response status: %d %s", res.StatusCode, http.StatusText(res.StatusCode))
}
return res.Header.Get(headerExtensionIdentifier), nil
}