aws / aws/aws-lambda-runtime-interface-emulator

Missing response header X-Amz-Function-Error

Abierto
#20 3 comentarios 6 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Go
Estrellas
1.1k
Forks
118
Merge medio
42 min
PR fusionados (30 d)
2

Descripción

I wasn't sure whether to open this here or over in https://github.com/aws/aws-lambda-nodejs-runtime-interface-client

With a simple example that always throws an error:

```Dockerfile
FROM public.ecr.aws/lambda/nodejs:12
RUN echo 'module.exports = { handler: () => { throw new Error("failure"); } }' > index.js
CMD ["index.handler"]
```

When I hit the endpoint:
```
$ curl -qv http://localhost:8080/2015-03-31/functions/function/invocations -d '{}'
* Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8080 (#0)
> POST /2015-03-31/functions/function/invocations HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.64.1
> Accept: */*
> Content-Length: 2
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 2 out of 2 bytes
< HTTP/1.1 200 OK
< Date: Mon, 18 Jan 2021 23:27:37 GMT
< Content-Length: 184
< Content-Type: text/plain; charset=utf-8
<
* Connection #0 to host localhost left intact
{"errorType":"Error","errorMessage":"failure","trace":["Error: failure"," at Runtime.handler (/var/task/index.js:1:43)"," at Runtime.handleOnce (/var/runtime/Runtime.js:66:25)"]}* Closing connection 0
$
```

As expected, the response payload has the shape described in https://docs.aws.amazon.com/lambda/latest/dg/nodejs-exceptions.html and the status is 200 to denote a function error.

However, shouldn't the response headers include `X-Amz-Function-Error` so that the error status can be determined without relying on heuristics?

Also, `Content-Type` should be `application/json`.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Start with the Dockerfile reproduction and the curl request to the local invocation endpoint. Verify the current response headers and payload, then trace the emulator's response handling; done means function errors include X-Amz-Function-Error and responses use application/json.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
docker, go
Área
api
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.