override fun invokeLambdaFunction()

in aws-lambda-agent/src/main/java/jetbrains/buildServer/runner/lambda/aws/RemoteLambdaFunctionInvoker.kt [64:91]


    override fun invokeLambdaFunction(runDetails: List<RunDetails>): Boolean {
        if (runDetails.isEmpty()){
            return true
        }

        CoroutineScope(Dispatchers.IO).launch {
            try {
                val buildDetails = runDetails.first().buildDetails
                val response: HttpResponse = client.post("$teamcityServerUrl${LambdaConstants.LAMBDA_PLUGIN_PATH}/${LambdaConstants.INVOKE_LAMBDA_PATH}") {
                    setBody(FormDataContent(Parameters.build {
                        append(LambdaConstants.BUILD_TYPE_ID, buildDetails.buildTypeId)
                        append(LambdaConstants.RUN_DETAILS, objectMapper.writeValueAsString(runDetails))
                        append(LambdaConstants.AGENT_NAME, buildDetails.agentName)
                        append(LambdaConstants.BUILD_ID, buildDetails.buildId)
                        context.runnerParameters.map { (key, value) -> append("$PROPS_PREFIX$key", value) }
                    }))
                }

                if (!response.status.isSuccess()) {
                    logger.message(getErrorMessage(response))
                }
            } catch (e: ResponseException) {
                logger.message(getErrorMessage(e.response))
            }
        }

        return false
    }