我想在一个AWS Lambda函数中编写两个函数。目前,Lambda使用处理程序触发函数,以防我在代码中有两个函数,然后如何更改它,以便Lambda处理程序可以执行这两个函数。
我找到了这个。但是,它使用if语句。在我的场景中,我将不得不一个接一个地运行这两个函数,并将第一个函数的输出传递给第二个函数。谢谢How to have more than one handler in AWS Lambda Function?
以下是示例代码:
import boto3' import json' from datetime
import datetime REGION = 'us-east-1'
emrclient = boto3.client('emr', region_name=REGION)
def lambda_handler(event, context):
EMRS = emrclient.list_clusters( ClusterStates = ['STARTING', 'RUNNING', 'WAITING', 'TERMINATING'] )
clusters = EMRS["Clusters"]
for cluster in clusters :
ID = cluster.get("Id")
EMRid = emrclient.list_instance_groups( ClusterId = str("ID") )
print(EMRid)
如果没有关于您的用例的更多信息,很难说最佳解决方案是什么,但AWS Step Functions旨在处理运行多个lambdas,并以稳健的方式在它们之间传递数据(重试,并行化等)。
This blog post提供了一个很好的概述,尽管示例中的代码是JavaScript而不是Python。