private[this] def resolveTaskMetadata()

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)
    }
  }