具有多种功能的AWS Python Lambda

时间:2019-02-11 00:08:55

标签: python amazon-web-services loops boto3

我在python3.7中有一个AWS Lambda函数。它的设置方式是运行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

我希望这可以通过lambda_handler函数将allData返回,但是返回null

记录的是

newData
newData
newData
None

我正在使用第二个函数来基于最后一个PaginationToken获取数据。有没有比创建第二个递归函数更好的获取分页数据的方法了?

1 个答案:

答案 0 :(得分:2)

一种选择是使用 boto3分页器

或者,您可以使用循环而不是递归函数

那会是这样的:

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

您可能可以通过改进<do stuff>语句来避免将while位加倍。