Создание полностью безсерверного решения с использованием AWS API Gateway, интегрированного с функцией Lambda, которая взаимодействует с безсерверной базой данных - PullRequest
0 голосов
/ 29 сентября 2019

Я стремлюсь создать полностью безсерверное решение AWS с использованием AWS API Gateway, который будет иметь конечные точки, которые будут интегрированы с функцией Lambda, которая будет взаимодействовать с простым сторонним веб-API с запросами http и, кроме того, безбидерной БД некоторого видачтобы сохранить данные.

Ниже приведен пример того, что я хочу сделать:

GET: лямбда-функция my-api-gateway-products / 1/1 будет знать, что этоGET для продуктов и параметр равен 1, поэтому он запустит соответствующую функцию, чтобы запросить мою базу данных и вернуть Product с идентификатором 1

POST: лямбда-функция my-api-gateway-endpoint / products будет знать, что этоPOST для продуктов, поэтому будет запускаться соответствующая функция для вызова стороннего Web API через http и вставлять его туда, но дополнительно вставить продукт в мою базу данных db

DELETE: my-api-gateway-endpoint / products / 1Лямбда-функция будет знать, что это запрос DELETE для продуктов с Id 1, поэтому она будет запускать соответствующую функциюЧтобы вызвать сторонний Web API через http и удалить его там, но дополнительно запросите мою базу данных и удалите Продукт с идентификатором 1

Я пытаюсь определить подходящий стек для выполнения работы, ниже приведено то, чтоДо сих пор я придумал: -API Gateway

-Однозначная лямбда-функция, написанная на C # и загруженная, обрабатывает все типы запросов.Обращается к стороннему веб-API и дополнительно к серверу db

-Aurora Db без сервера с API данных.Идея состояла бы в том, чтобы поговорить об этом с помощью лямбда-функции C # для сохранения и запроса данных.

Я начинаю немного запутываться, когда вижу людей, размещающих целые проекты основного веб-API Asp.net в Lambda.Может быть, это путь, которым я иду вместо этого.Я не могу найти ни одного примера того, как я мог бы получить доступ к Aurora Db Serverless API данных с помощью C #.

Может кто-нибудь дать мне некоторое представление о том, поможет ли мне этот стек выбрать верный путь для выполнения работы илидайте какие-нибудь идеи о другом способе, которым я могу это изложить.

Я ищу полностью безсерверный и максимально простой.Мне также все равно, на каком языке Lambda, но я предпочитаю C #.

1 Ответ

2 голосов
/ 29 сентября 2019

Если вам когда-либо нужен доступ к продуктам только по productId, это отличный вариант использования DynamoDB (который представляет собой хранилище значений ключей с некоторыми дополнительными функциями) вместо Aurora Serverless.

Блог AWS содержит пошаговое руководство по по созданию лямбда-функции .NET , включая интеграцию с API Gateway.Документация DynamoDB содержит довольно подробные примеры , как использовать DynamoDB SDK для .NET.Наконец, вот пример проекта , который использует инфраструктуру API Gateway / Lambda / DynamoDB с .NET.

...