【发布时间】:2018-12-19 20:58:08
【问题描述】:
我已按照following tutorial 按 ID 启动/停止实例。
我没有为 stopEC2Instances 或 startEC2Instance 函数提供 VPC 信息。
问题:虽然在停止实例时它可以正常工作,但 startEC2Instances 函数无法完成它的工作。
我想知道自编写教程以来boto3 是否发生了某种变化?我检查了boto3 API 以确保,但start_instances 仍然是相同的功能。
除了上面链接文章中的内容之外,我没有更改任何代码。
更新:
startEC2Instances 函数的最新成功运行的 CloudWatch Logs(它没有按预期工作并且仍然没有启动实例)
START RequestId: 663ce39a-8534-11e8-9928-2b8c600ed800 Version: $LATEST
started your instances: REDACTED
END RequestId: 663ce39a-8534-11e8-9928-2b8c600ed800
REPORT RequestId: 663ce39a-8534-11e8-9928-2b8c600ed800 Duration: 1055.49 ms Billed Duration: 1100 ms Memory Size: 512 MB Max Memory Used: 56 MB
START RequestId: 7f7e57ac-8534-11e8-9c44-41bb6e4a0724 Version: $LATEST
started your instances: REDACTED
END RequestId: 7f7e57ac-8534-11e8-9c44-41bb6e4a0724
REPORT RequestId: 7f7e57ac-8534-11e8-9c44-41bb6e4a0724 Duration: 420.79 ms Billed Duration: 500 ms Memory Size: 512 MB Max Memory Used: 56 MB
更新 2 我正在从上面的文档中复制政策文档和代码,我没有做任何更改。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"ec2:Start*",
"ec2:Stop*"
],
"Resource": "*"
}
]
}
startEC2Instance 代码:
import boto3
# Enter the region your instances are in. Include only the region without specifying Availability Zone; e.g.; 'us-east-1'
region = 'us-east-1'
# Enter your instances here: ex. ['X-XXXXXXXX', 'X-XXXXXXXX']
instances = ['REDACTED']
def lambda_handler(event, context):
ec2 = boto3.client('ec2', region_name=region)
ec2.start_instances(InstanceIds=instances)
print 'started your instances: ' + str(instances)
【问题讨论】:
-
您需要提供有关您遇到的实际问题的更多信息,而不是“不做它的工作”。请编辑您的问题以包含您收到的实际错误消息。
-
@MarkB 没有错误。当我测试该功能时,它说它是成功的。但是我要启动的 EC2 实例尚未启动。我总是在实例停止后一两分钟后尝试启动它们。
-
检查 CloudWatch 日志中的 Lambda 函数日志是否有任何错误。在代码中添加 try/catch 以确保捕获(并记录)任何抛出的异常。
-
@MarkB 请检查更新
-
您可能应该修改代码以显示
ec2.start_instances()的输出——它提供了所有已启动实例的InstanceId(只需将其放在print()语句中)。另外,请确保您在正确的区域中查看它们是否已启动。
标签: amazon-web-services amazon-ec2 aws-lambda boto3