MCPcopy Create free account
hub / github.com/aws-samples/aws-lambda-extensions / Register

Method Register

go-example-extension/extension/client.go:74–109  ·  view source on GitHub ↗

Register will register the extension with the Extensions API

(ctx context.Context, filename string)

Source from the content-addressed store, hash-verified

72
73// Register will register the extension with the Extensions API
74func (e *Client) Register(ctx context.Context, filename string) (*RegisterResponse, error) {
75 const action = "/register"
76 url := e.baseURL + action
77
78 reqBody, err := json.Marshal(map[string]interface{}{
79 "events": []EventType{Invoke, Shutdown},
80 })
81 if err != nil {
82 return nil, err
83 }
84 httpReq, err := http.NewRequestWithContext(ctx, "POST", url, bytes.NewBuffer(reqBody))
85 if err != nil {
86 return nil, err
87 }
88 httpReq.Header.Set(extensionNameHeader, filename)
89 httpRes, err := e.httpClient.Do(httpReq)
90 if err != nil {
91 return nil, err
92 }
93 if httpRes.StatusCode != 200 {
94 return nil, fmt.Errorf("request failed with status %s", httpRes.Status)
95 }
96 defer httpRes.Body.Close()
97 body, err := ioutil.ReadAll(httpRes.Body)
98 if err != nil {
99 return nil, err
100 }
101 res := RegisterResponse{}
102 err = json.Unmarshal(body, &res)
103 if err != nil {
104 return nil, err
105 }
106 e.extensionID = httpRes.Header.Get(extensionIdentiferHeader)
107 print(e.extensionID)
108 return &res, nil
109}
110
111// NextEvent blocks while long polling for the next lambda invoke or shutdown
112func (e *Client) NextEvent(ctx context.Context) (*NextEventResponse, error) {

Callers 1

mainFunction · 0.45

Calls 1

GetMethod · 0.80

Tested by

no test coverage detected