AWS Python Lambda с несколькими функциями - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть функция AWS Lambda в python3.7.Способы ее установки: запуск функции lambda_handler(event, context) и передача данных в отдельную функцию, которая вызывает себя несколько раз в зависимости от того, что в нее передается.Как мне тогда вернуть данные из второй функции?

import json
import boto3

def lambda_handler(event, context):
    # code to get initial data
    x = second_function(data)
    print(x)
    return x



def second_function(data):
    # code to manipulate data
    if condition:
       print(newData)
       second_function(newData)
    else:
       return allData

Я ожидал, что это вернет allData обратно через функцию lambda_handler, но вместо этого вернет ноль

И зарегистрировано

newData
newData
newData
None

Я использую вторую функцию для получения данных, основанных на последнем PaginationToken.Есть ли лучший способ получить разбитые на страницы данные вместо создания второй рекурсивной функции?

1 Ответ

0 голосов
/ 11 февраля 2019

Один из вариантов - использовать boto3 paginator .

В качестве альтернативы, вы можете использовать loop вместо рекурсивной функции .

Это может быть что-то вроде:

response = api_call()
<do stuff with response>
while response['NextToken']:
    response=api_call(NextToken=response['NextToken'])
    <do stuff with response>

Вероятно, вы можете избежать удвоения бита <do stuff>, улучшив оператор while.

...