API Gateway -> аргументы Go Lambda - PullRequest
0 голосов
/ 26 апреля 2019

Я изо всех сил пытаюсь правильно подключить API-шлюз к простому настроенному Go Lambda.

Лямбда - это действительно простая функция, такая как:

func foo(bar string) (string, error) {
   return fmt.Println(bar)
}
func main() {
   lambda.Start(foo)
}

Я могу сделать простое тестовое событие со значением «HelloWorld», и оно возвращается, как и ожидалось.

Однако я не могу понять, как настроить API-шлюз, чтобы я мог просто вызвать / HelloWorld или? Bar = HelloWorld и вернуть его. Я знаю, что могу использовать events.APIGatewayProxyRequest в качестве аргумента и возвращать events.APIGatewayProxyResponse, но другого пути нет? Может показаться, что этот голубь заставит меня ТОЛЬКО получить доступ к этой функции через API Gateway, что кажется глупым.

1 Ответ

0 голосов
/ 10 мая 2019

Ваша лямбда-функция должна иметь действительную подпись для запуска через API-шлюз или любые другие источники событий. В случае API-шлюза ваш обработчик функции Lambda будет выглядеть следующим образом:

func handler(ctx context.Context, request events.APIGatewayProxyRequest (events.APIGatewayProxyResponse, error) {

}

Вы можете получить параметры из request, вызвать функцию foo с правильным параметром и вернуть APIGatewayProxyResponse. Таким образом, ваша функция foo делает только то, что должна, и ничего не знает о событиях AWS, а ваша функция handler отвечает за связь с API Gateway.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...