The statusDescription header must contain the status code and reason phrase, separated by a single space -- ALB returning 502 from Lambda
- Lenguaje dominante
- C#
- Estrellas
- 1.7k
- Forks
- 503
- Merge medio
- 1 d 18 h
- PR fusionados (30 d)
- 21
Descripción
I've created a Lambda that check on a DynamoDB table the existence of a record matching host and request path and, if found, returns a redirect to the matching URL.
My Lambda returns this response but the ALB returns 502.
```
{
"statusCode": 301,
"statusDescription": null,
"headers": {
"Location": "https://www.my-target.co.uk/"
},
"multiValueHeaders": null,
"body": "Redirecting to https://www.my-target.co.uk/",
"isBase64Encoded": false
}
```
This is the log I find in CloudWatch for the Lambda function
```
START RequestId: 8b5a28f2-c56d-4418-a7b9-66ebe0ba2470 Version: $LATEST
[Information] EMG.ApplicationLoadBalancerRequestHandler: Received: GET /
[Information] EMG.ApplicationLoadBalancerRequestHandler: Processing: my-test.net /
[Information] EMG.RedirectManagers.RedirectTableRedirectManager: Fetching item: my-test.net / from table redirect-table
[Information] EMG.ApplicationLoadBalancerRequestHandler: Found: https://www.target.co.uk/ Permanent
END RequestId: 8b5a28f2-c56d-4418-a7b9-66ebe0ba2470
REPORT RequestId: 8b5a28f2-c56d-4418-a7b9-66ebe0ba2470 Duration: 69.59 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 39 MB
```
This is the response I get
```
HTTP/1.1 502
status: 502
Server: awselb/2.0
Date: Thu, 15 Aug 2019 19:13:58 GMT
Content-Type: text/html
Content-Length: 138
Connection: keep-alive
502 Bad Gateway
502 Bad Gateway
```
I couldn't find anything saying we can't return non-200 responses from Lambda, so I really have no idea...
Guía de contribución
Línea de trabajo
Comience con el AWS Application Load Balancer Lambda response contract y la respuesta proporcionada, centrándose en null statusDescription y la 301 redirect. Rastree cómo este repositorio gestiona statusCode y statusDescription, y verifique después el formato requerido de status-code/reason-phrase y el comportamiento resultante de la respuesta non-200.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- aws, csharp
- Área
- backend-api-design, cloud
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 30/100