AWS Лямбда в до tnet ядре, похоже, не распознает значение константы события Cloudwatch - PullRequest
0 голосов
/ 20 апреля 2020

Я установил простую лямбду до tnet ядра в C#. Однако выходные данные параметра req не содержат значение const, которое я установил в правиле события Cloudwatch. Версия NodeJs, кажется, работает нормально. Это ограничение для do tnet core на lambda прямо сейчас, или я что-то упустил?

        public async Task<APIGatewayProxyResponse> FunctionHandler(APIGatewayProxyRequest req, ILambdaContext context)
    {
        Console.WriteLine($"context: {JsonConvert.SerializeObject(context)}");
        Console.WriteLine($"req: {JsonConvert.SerializeObject(req)}");

        var body = new Dictionary<string, string>
        {
            { "message", "hello world" }
        };

        return new APIGatewayProxyResponse
        {
            Body = JsonConvert.SerializeObject(body),
            StatusCode = 200,
            Headers = new Dictionary<string, string> { { "Content-Type", "application/json" } }
        };
    }

вывод параметра req:

req: 
{
"Resource": null,
"Path": null,
"HttpMethod": null,
"Headers": null,
"MultiValueHeaders": null,
"QueryStringParameters": null,
"MultiValueQueryStringParameters": null,
"PathParameters": null,
"StageVariables": null,
"RequestContext": null,
"Body": null,
"IsBase64Encoded": false
}

1 Ответ

1 голос
/ 20 апреля 2020

По умолчанию вход может быть принят как Поток в Лямбде, как упомянуто в документах здесь https://docs.aws.amazon.com/lambda/latest/dg/csharp-handler.html

В настоящее время Do tnet Ядро имеет только следующие модели событий согласно документы https://docs.aws.amazon.com/lambda/latest/dg/lambda-csharp.html

Для всех других событий вы можете использовать Stream в качестве типа ввода.

public async Task<APIGatewayProxyResponse> FunctionHandler(Stream req, ILambdaContext context)
...