in agent/envoy_bootstrap/platforminfo/platform_info_collector.go [107:144]
func buildMetadataForEcsPlatform(mapping map[string]interface{}) {
// ECS platform information
// Networks info: supportedIPFamilies, it's not an ECS only info, for others we may also need to set this
supportedIPFamilies := ""
ecsLaunchType := env.Get(ecsExecutionEnvVar)
if ecsLaunchType != "" {
ecsMetadata := map[string]interface{}{
ecsLaunchTypeKey: ecsLaunchType,
}
ecsContainerInstanceArn := env.Get(ecsContainerInstanceArnEnvVar)
if ecsContainerInstanceArn != "" {
ecsMetadata[ecsContainerInstanceArnKey] = ecsContainerInstanceArn
}
// Look for V4 URI first and fallback on V3 URI
ecsContainerMetadataUri := env.Or(ecsContainerMetadataUriV4Env, env.Get(ecsContainerMetadataUriEnv))
// Get ECS container metadata
if ecsContainerMetadataUri != "" {
getEcsContainerMetadata(ecsContainerMetadataUri+ecsContainerMetadataTaskPath, ecsMetadata)
getEcsEnvoyContainerMetadata(ecsContainerMetadataUri, ecsMetadata)
supportedIPFamilies = getEcsContainerSupportedIPFamilies(ecsContainerMetadataUri + ecsContainerMetadataTaskPath)
}
// The AZ info is available from ECS container metadata itself
if availabilityZone, exists := ecsMetadata[AvailabilityZoneKey]; exists {
mapping[AvailabilityZoneKey] = availabilityZone
delete(ecsMetadata, AvailabilityZoneKey)
}
// Build SupportedIPFamilies info in platform
if supportedIPFamilies != "" {
mapping[supportedIPFamiliesKey] = supportedIPFamilies
}
mapping[ecsPlatformInfoKey] = ecsMetadata
}
}