in go-example-logs-api-extension/agent/http.go [122:158]
func (a HttpAgent) Init(agentID string) error {
extensions_api_address, ok := os.LookupEnv("AWS_LAMBDA_RUNTIME_API")
if !ok {
return errors.New("AWS_LAMBDA_RUNTIME_API is not set")
}
logsApiBaseUrl := fmt.Sprintf("http://%s", extensions_api_address)
logsApiClient, err := logsapi.NewClient(logsApiBaseUrl)
if err != nil {
return err
}
_, err = a.listener.Start()
if err != nil {
return err
}
eventTypes := []logsapi.EventType{logsapi.Platform, logsapi.Function}
bufferingCfg := logsapi.BufferingCfg{
MaxItems: 10000,
MaxBytes: 262144,
TimeoutMS: 1000,
}
if err != nil {
return err
}
destination := logsapi.Destination{
Protocol: logsapi.HttpProto,
URI: logsapi.URI(fmt.Sprintf("http://sandbox:%s", DefaultHttpListenerPort)),
HttpMethod: logsapi.HttpPost,
Encoding: logsapi.JSON,
}
_, err = logsApiClient.Subscribe(eventTypes, bufferingCfg, destination, agentID)
return err
}