Простая лямбда-функция AWS - PullRequest
0 голосов
/ 30 июня 2019

Я пытаюсь выучить лямбду, но я борюсь с простой функцией, которая принимает строку в качестве входного параметра и в верхнем регистре:

это написано на C #.

    public class Function
    {
        public string FunctionHandler(string input, ILambdaContext context)
        {
            return input?.ToUpper();
        }
    }

Затем я настроил шлюз API с запросом get. В запросе на интеграцию есть шаблон сопоставления, например:

{
    "input":$input.params("text")
}

Я пытаюсь позвонить по URL:

https://xxxxxxx.execute -api.xxxxxxx.amazonaws.com / Prod? Тест = привет

Но я получил ошибку:

{ "message": "Не удалось разобрать тело запроса в json: неожиданный символ (\ '} \' (код 125)): ожидаемое значение \ n в [Source: (byte []) \" {\ n \ n \ " input \ ": \ n \ n} \"; строка: 5, столбец: 2] "}

1 Ответ

0 голосов
/ 30 июня 2019

Как предложил Joaofs в комментариях, исправление было сделать ввод в мой обработчик функций сложным типом.Тогда это начало волшебно работать.

По какой-то причине передача первичной строки работала на моем локальном компьютере (с использованием инструмента тестирования SAMS) очень хорошо, но при использовании изнутри AWS она не работала.

Вот мой новый примеркод:

public string FunctionHandler(Employee input, ILambdaContext context)
{
   context.Logger.LogLine(string.Format("{0}:{1} - {2}", context.AwsRequestId, 
   context.FunctionName, input));
   return input.Name?.ToUpper();
}

И определение типа сотрудника:

public class Employee
{
   public string Name { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...