我在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
获取数据。有没有比创建第二个递归函数更好的获取分页数据的方法了?
答案 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
位加倍。