Amazon web services 如何使用AWS Lambda和AWS API网关停止/启动ambari群集的服务
我不想将web服务传递给AWS Lambda,以便使用这些web服务可以停止/启动ambari cluster的服务Amazon web services 如何使用AWS Lambda和AWS API网关停止/启动ambari群集的服务,amazon-web-services,hadoop,aws-lambda,aws-api-gateway,ambari,Amazon Web Services,Hadoop,Aws Lambda,Aws Api Gateway,Ambari,我不想将web服务传递给AWS Lambda,以便使用这些web服务可以停止/启动ambari cluster的服务 提前感谢。AWS Lambda可以通过使用 您只需在lambda函数中创建aws服务的boto3客户端,就可以按照您想要的方式使用它们(例如,启动/停止) AWS Lambda还提供了计划其调用的功能 正如您在评论中提到的,您需要使用api阻止它们 下面是基本的代码片段- #您需要创建一个包含请求库并将其上载到lambda函数中的文件 import requests # name
提前感谢。AWS Lambda可以通过使用 您只需在lambda函数中创建aws服务的boto3客户端,就可以按照您想要的方式使用它们(例如,启动/停止) AWS Lambda还提供了计划其调用的功能 正如您在评论中提到的,您需要使用api阻止它们 下面是基本的代码片段- #您需要创建一个包含请求库并将其上载到lambda函数中的文件
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'])
注意:这是一个基本的代码片段,可以根据您的用例而有所不同curl-u admin:$PASSWORD-i-H'X-Requested-By:ambari'-X PUT-d'{“RequestInfo”:{“context”:“Stop HDFS via REST”},“Body”:{“ServiceInfo”:{“state”:“INSTALLED”}'http://$HOST/api/v1/clusters/CLUSTER\u NAME/services/HDFS在何处添加此命令?是,要计划此命令。因此,在周末,我将首先停止ambari服务器的所有服务,然后停止hadoop集群的EC2实例。