【发布时间】:2020-12-18 21:22:12
【问题描述】:
我有一个 Lambda 函数来重启实例:
import boto3
region = 'us-east-1'
instances = ['i-xxxxxxxxxxxxxxxxxxxxxxxxxx']
ec2 = boto3.client('ec2', region_name=region)
def lambda_handler(event, context):
response = ec2.reboot_instances(
InstanceIds=[
'i-xxxxxxxxxxxxxxxxxxxxxx',
],
)
print(response)
它只是拒绝工作。
触发时的响应:
{'ResponseMetadata': {'RequestId': '12994c92-98ab-4b62-bc10-a0e0b4881aaa', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '12994c92-98ab-4b62-bc10-a0e0b4881aaa','内容类型': 'text/xml;charset=UTF-8', 'content-length': '231', 'date': 'Sun, 30 2020 年 8 月 15:44:40 GMT','服务器':'AmazonEC2'},'RetryAttempts':0}}
有趣的部分:如果我将 ec2.reboot_instances 更改为 ec2.start_instances 那么它可以工作。
所以我试图找出为什么会拒绝重启命令而接受启动/停止命令?
注意:我在 IAM 中包含了重启实例的权限。该实例是一个 linux openvpn 服务器 AMI 包
【问题讨论】:
-
你确定它不工作吗?检查 CloudTrail 以查看 API 操作是否已触发
-
所以你得到了 200 个响应,你可以在再次调用 lambda 后使用下面的命令 > uptime 检查服务器启动时间吗?
-
所以你得到了 200 个响应,你可以在再次调用 lambda 后使用下面的命令 > uptime 检查服务器启动时间吗?
-
您说它与
start_instances()一起工作——这是否意味着实例处于已停止 状态?您如何确认重启是否有效 - 我认为它不会出现在系统状态中,您需要连接到实例才能知道它是否有效。 -
@ChrisWilliams 感谢您的回复。创建了一个 cloudtrail 日志,但它没有记录任何操作。
标签: python amazon-ec2 aws-lambda reboot