Aws-lambda-dotnet: Amazon.Lambda.AspNetCoreServer unterschiedliches Verhalten auf lokalem und AWS

Erstellt am 28. Feb. 2018  ·  7Kommentare  ·  Quelle: aws/aws-lambda-dotnet

Hallo AWS-Team,

Es gibt ein Problem mit Ihrer Implementierung von LambdaEntryPoint. Das Verhalten ist anders als bei LocalEntryPoint. Um diesen Fall neu zu erstellen, müssen Sie CustomAttribute erstellen:

`` `
öffentliche Klasse CustomAttribute: ActionFilterAttribute
{
public override void OnActionExecuted (ActionExecutedContext actionExecutedContext)
{
HttpResponse response = actionExecutedContext.HttpContext.Response;
LambdaLogger.Log ("Test" + response.StatusCode + "" + (response! = Null) .ToString () + "" +
response.IsSuccessStatusCode (). ToString () + "" + (actionExecutedContext.Result! = null) .ToString ());

        base.OnActionExecuted(actionExecutedContext);
    }
}

`` `

Wenn Sie dieses CustomAttribute mit localEntry testen, sehen Sie, dass StatusCode festgelegt ist. Wenn Sie dies jedoch in AWS debuggen, erhalten Sie 0, da etwas in einer anderen Reihenfolge funktioniert. Ich untersuche dieses Problem mit dem OData-Team hier: OData / WebApi # 1227

A bug modullambda-client-lib queued

Hilfreichster Kommentar

@normj Gibt es Pläne, dies zu beheben?

Alle 7 Kommentare

Ich konnte das Problem reproduzieren, bin mir aber noch nicht sicher, warum es passiert, aber ich werde weiter nachforschen.

Einige Neuigkeiten zu diesem Thema?

@normj , ich habe auch ein ähnliches Problem mit diesem benutzerdefinierten Aktionsfilter

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;

namespace Infrastructure
{
    public class ValidateModelAttribute : ActionFilterAttribute, IOrderedFilter
    {
        public ValidateModelAttribute()
        {
            Order = 100;
        }
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            if (!context.ModelState.IsValid)
            {
                context.Result = new BadRequestObjectResult(context.ModelState);
            }
        }
    }
}

Es funktioniert lokal einwandfrei und gibt Validierungsfehler zurück und beendet die Anforderung, wird jedoch nicht ausgeführt, wenn es in AWS Lambda bereitgestellt wird.

Dieser Fehler tritt immer noch auf, wenn es einen Plan gibt, ihn zu reparieren?

@normj Gibt es Pläne, dies zu beheben?

Was ist das Neueste dazu? Es ist mehr als ein Jahr her, seit der letzte Kommentar hinzugefügt wurde. @ NGL321 , können Sie ein Update bereitstellen?

Hey @julealgon ,

Entschuldigung für das Etikett und los geht's. Wir sind uns dieses Fehlers derzeit bewusst und planen, ihn zu beheben, aber leider kann ich Ihnen im Moment keinen konkreteren Zeitplan geben, da er nicht im Plan für die sofortige Behebung enthalten ist.
Wenn dies blockiert ist, können Sie gerne eine Pull-Anfrage zur Behebung einreichen. Wir werden diese so schnell wie möglich überprüfen. Alternativ können Sie dies weiter anstoßen, und ich werde sicherstellen, dass es so schnell wie möglich Aufmerksamkeit erhält (je mehr Leute eine Lösung anfordern, desto höher können wir es in unseren Prioritäten verschieben) 😉

😸 😷

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen