首页 > 解决方案 > 将一个 Lambda 函数的输出数组传递给另一个函数

问题描述

Function1在 Python 3.8 中有一个 AWS Lambda 函数 ()。它扫描 S3 存储桶并将所有对象的名称列出到一个数组中。我需要将此数组发送到另一个 Lambda 函数 ( Function2),该函数也是用 Python 3.8 编写的。

Function1

for each in contents:
    print(each["Key"])
    inputForInvoker.append({'SQLFilename': each["Key"]})
response = lambdac.invoke(
            FunctionName='arn:aws:lambda:eu-west-2:169697352176:function:pyodbc',
            InvocationType='RequestResponse',
            Payload=json.dumps(inputForInvoker)
            )

其中contentsvariable 是一个字典数组。下面给出了数组元素的示例以contents供参考。由此,我试图检索Key价值。这个逻辑很有效,因为当我 print 时inputForInvoker,它给了我字典数组。

内容contents

{'Key': 'body_aus.sql', 'LastModified': datetime.datetime(2021, 9, 8, 1, 34, 12, tzinfo=tzlocal()), 'ETag': '"xxx"', 'Size': 23, 'StorageClass': 'STANDARD', 'Owner': {'ID': 'yyy'}}, 

输出print(inputForInvoker)

[{'SQLFilename': 'body_aus.sql'}, {'SQLFilename': 'footer.sql'}, {'SQLFilename': 'header.sql'}, {'SQLFilename': 'test.sql'}]

Function2

def lambda_handler(event, context):
sqlFileName = event['SQLFileName']
print(sqlFileName)

输出Function2

{'SQLFilename': 'body_aus.sql'}

理想情况下,我应该从Function1一个元素而不是一个元素中获取整个数组。

标签: pythonarraysaws-lambdainvoke

解决方案


推荐阅读