我不想把web服务传递给aws lambda,这样我就可以使用这些web服务来停止/启动ambari集群的服务。提前谢谢。
zkure5ic1#
通过使用boto3编程api调用,awslambda可以很容易地与几乎所有的webservices(包括ec2)集成您只需在lambda函数中创建aws服务的boto3客户机,就可以按您想要的方式使用它们(例如启动/停止)。aws lambda还提供了调度其调用的功能。正如您在评论中提到的,您需要使用api来阻止它们。下面是基本的代码片段-
import requests # name of lambda_function that needs to invoke def lambda_handler(event, context): url = '' json_body = {} try: api_response = requests.put(url=url, json=json_body) except Exception as err: print(err)
如果这些服务器在aws中运行,那么可以创建boto3客户机并使用
import boto3 from boto3.session import Session aws_access_key = 'xxxxxxxxxxxxxxxxxxxx' aws_secret_key = 'yyyyyyyyyyyyyyyyyyyyy' region = 'xx-yyyyyy' def lambda_handler(event, context): try: sess = Session(aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key) ec2_conn = sess.client(service_name='ec2', region_name=region) response = client.start_instances( InstanceIds=[ 'i-xxxxxx','i-yyyyyy','i-zzzzzz', ]) except ClientError as e: print(e.response['Error']['Message'])
p、 s:这是一个基本的代码片段,可以根据您的用例而有所不同
1条答案
按热度按时间zkure5ic1#
通过使用boto3编程api调用,awslambda可以很容易地与几乎所有的webservices(包括ec2)集成
您只需在lambda函数中创建aws服务的boto3客户机,就可以按您想要的方式使用它们(例如启动/停止)。
aws lambda还提供了调度其调用的功能。
正如您在评论中提到的,您需要使用api来阻止它们。
下面是基本的代码片段-
您需要创建一个包含请求库的zip文件,并将其上传到lambda函数中
如果这些服务器在aws中运行,那么可以创建boto3客户机并使用
p、 s:这是一个基本的代码片段,可以根据您的用例而有所不同