Как связать две лямбда-функции из API-шлюза - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть две лямбда-функции

Лямбда 1:

def save_events(event):
result = []
conn = pymysql.connect(rds_host, user=name, passwd=password, 
db=db_name,connect_timeout=30)
with conn.cursor() as cur:
cur.execute("SELECT * FROM bodyparts")
for row in cur:
result.append(list(row))
cur.close()
bodyparts = json.dumps(result)
bodyParts=(bodyparts.replace("\"", "'"))
def lambda_handler(event, context):
save_events(event)
return bodyParts

Лямбда 2:

def save_events(event):
result = []
conn = pymysql.connect(rds_host, user=, passwd=, db=, connect_timeout=30)
with conn.cursor(pymysql.cursors.DictCursor) as cur:
cur.execute("select exid,exercise_name,image from exercise where bid = 3")
result = cur.fetchall()
cur.close()
print ("Data from RDS...")
print (result)
workout = json.dumps(result)
workouts=(workout.replace("\"", "'"))
def lambda_handler(event, context):
save_events(event)
return workouts

После успешного выполнения лямбда-1 он вернет список какjson-объект в браузере с использованием API-шлюза и теперь, как вызвать функцию lambda 2 в API-шлюзе на основе выбора пользователя из вывода функции lambda1.В lambda2 как передать выбранный пользователем элемент в качестве значения "bid" в запросе.Я знаю теоретическую часть, действительно придерживаюсь части реализации, так как я новичок в бэкэнд-разработке. Любая помощь будет высоко ценится

1 Ответ

0 голосов
/ 01 марта 2019

Я думаю, что хорошим вариантом для вас является AWS Step Function.Если вы используете пошаговые функции, у вас может быть 2 состояния с лямбда-выражением в каждом состоянии, а состояние 1 выполняет лямбда-1, передает результат во второе состояние и выполняет в нем лямбда-2. Помните, что пошаговые функции можно вызывать из API Gateway, поэтомуесли вы используете API-шлюз в качестве конечной точки, вам нужно всего лишь изменить цель на пошаговые функции вместо лямбда-функции.Хороший способ создать все эти ресурсы - это SAM (модель сервера без приложения), использующая swagger.

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