in awsplugins/ec2/ec2.go [37:70]
func addPluginMetadata(pluginmd *plugins.PluginMetadata) {
var instanceData metadata
imdsURL := "http://169.254.169.254/latest/"
client := &http.Client{
Transport: http.DefaultTransport,
}
token, err := getToken(imdsURL, client)
if err != nil {
logger.Debugf("Unable to fetch EC2 instance metadata token fallback to IMDS V1: %v", err)
}
resp, err := getMetadata(imdsURL, client, token)
if err != nil {
logger.Errorf("Unable to read EC2 instance metadata: %v", err)
return
}
buf := new(bytes.Buffer)
if _, err := buf.ReadFrom(resp.Body); err != nil {
logger.Errorf("Error while reading data from response buffer: %v", err)
return
}
metadata := buf.String()
if err := json.Unmarshal([]byte(metadata), &instanceData); err != nil {
logger.Errorf("Error while unmarshal operation: %v", err)
return
}
pluginmd.EC2Metadata = &plugins.EC2Metadata{InstanceID: instanceData.InstanceID, AvailabilityZone: instanceData.AvailabilityZone}
pluginmd.Origin = Origin
}