in discovery-aws-api-async/src/main/scala/org/apache/pekko/discovery/awsapi/ecs/AsyncEcsTaskSetDiscovery.scala [113:131]
private[this] def resolveTaskMetadata(httpClient: HttpExt)(
implicit
ec: ExecutionContext,
mat: Materializer): Future[Option[TaskMetadata]] = {
val ecsContainerMetadataUri = sys.env.get(ECS_CONTAINER_METADATA_URI_PATH) match {
case Some(uri) => uri
case None =>
throw new IllegalStateException("The environment variable ECS_CONTAINER_METADATA_URI cannot be found")
}
httpClient.singleRequest(HttpRequest(uri = s"$ecsContainerMetadataUri/task")).flatMap {
case HttpResponse(StatusCodes.OK, _, entity, _) =>
val metadata = Unmarshal(entity).to[TaskMetadata].map(Option(_))
metadata
case resp: HttpResponse =>
resp.discardEntityBytes()
Future.successful(None)
}
}