aws / aws/aws-lambda-dotnet

The statusDescription header must contain the status code and reason phrase, separated by a single space -- ALB returning 502 from Lambda

Aperta
#507 12 commenti 0 reazioni 0 assegnatari Vedi su GitHub
feature-request module/aspnetcore-support p2 queued
Lingua principale
C#
Stelle
1.7k
Fork
503
Merge medio
1g 5h
PR unite (30g)
18

Descrizione

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...

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Iniziate con il AWS Application Load Balancer Lambda response contract e la risposta fornita, concentrandovi su null statusDescription e sul 301 redirect. Tracciate il modo in cui questo repository gestisce statusCode e statusDescription, quindi verificate il formato richiesto status-code/reason-phrase e il comportamento risultante della risposta non-200.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
aws, csharp
Ambito
backend-api-design, cloud
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.