Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在单个AWS Lambda中使用两个python函数bot3_Python_Amazon Web Services_Lambda_Aws Lambda_Boto3 - Fatal编程技术网

在单个AWS Lambda中使用两个python函数bot3

在单个AWS Lambda中使用两个python函数bot3,python,amazon-web-services,lambda,aws-lambda,boto3,Python,Amazon Web Services,Lambda,Aws Lambda,Boto3,我想在一个AWS Lambda函数中编写两个函数。目前,如果代码中有两个函数,Lambda将使用处理程序触发函数,然后如何更改它,以便Lambda处理程序可以执行这两个函数 我找到了这个。但是,它使用的是if语句。在我的场景中,我必须一个接一个地运行这两个函数,并将第一个函数的输出传递给第二个函数。谢谢 以下是示例代码: import boto3' import json' from datetime import datetime REGION = 'us-east-1' emrclie

我想在一个AWS Lambda函数中编写两个函数。目前,如果代码中有两个函数,Lambda将使用处理程序触发函数,然后如何更改它,以便Lambda处理程序可以执行这两个函数

我找到了这个。但是,它使用的是if语句。在我的场景中,我必须一个接一个地运行这两个函数,并将第一个函数的输出传递给第二个函数。谢谢

以下是示例代码:

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)

如果没有关于用例的更多信息,很难说最好的解决方案是什么,但是设计用于处理运行多个lambda,并以健壮的方式(重试、并行化等)在它们之间传递数据


虽然示例中的代码是JavaScript而不是Python,但提供了一个很好的概述。

您不需要额外的函数来实现示例中列出的功能。也就是说,假设您需要在instance_groups dict上添加额外的处理/功能,您可以从这里开始。如果您有50个或更少的群集,这应该可以工作:

导入boto3
导入json
导入日期时间
emrclient=boto3.client('emr',region_name='us-east-1')
def lambda_处理程序(事件、上下文):
EMRS=emrclient.list_集群(集群状态=[“开始”、“运行”、“等待”、“终止”)
对于EMR中的群集[“群集]:
emr_inst_grp_work(集群['Id'])
def emr安装组工作(群集id):
“”“获取给定群集id的实例组详细信息dict”“”
inst\u dict=emrclient.list\u实例组(ClusterId=cluster\u id)
打印(指令)
#在此处添加额外dict或群集工作/处理的代码

请提供代码,以便其他人更好地了解您的问题。请注意提高问题的质量。谢谢。非常感谢您的帮助。我这里有一个示例代码,我知道如何在同一个函数中使用它。但是在将ID输出发送到列表\实例\组时需要帮助。以下是示例代码:import boto3'import json'from datetime import datetime REGION='us-east-1'emrclient=boto3.client('emr',REGION\ name=REGION)def lambda\ u处理程序(事件,上下文):EMRS=emrclient.list\ u集群(ClusterStates=['STARTING'、'RUNNING'、'WAITING'、'terming'])clusters=EMRS[“clusters”]对于集群中的集群:ID=cluster.get(“ID”)EMRid=emrclient.list\u instance\u groups(ClusterId=str(“ID”))print(EMRid)