Ich möchte Benutzern erlauben, eine EC2-Instanz nur dann zu starten, wenn sie benötigt wird.Timeout beim Starten einer EC2-Instanz von AWS Lambda mit boto3
So habe ich eine Lambda-Funktion genau das zu tun:
import boto3
def lambda_handler(event, context):
ec2 = boto3.resource('ec2', region_name='eu-central-1')
return ec2.instances.filter(InstanceIds=['i-abc123']).start()
Außerdem habe ich die folgenden IAM Berechtigungen:
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances"
],
"Resource": "arn:aws:ec2:*"
},
{
"Effect": "Allow",
"Action": [
"ec2:DescribeInstances"
],
"Resource": "*"
}
Problem ist, dass, wenn ich das Lambda ausführen ich zeitlich erhalten aus.
BTW läuft der exakt gleiche Code von einem EC2 innerhalb der gleichen VPC und die gleichen Berechtigungen, kehrt sofort zurück.
Irgendeine Idee?
Haben Sie den VPC-Zugriff für die Lambda-Funktion aktiviert? –
Haben Sie eine ordnungsgemäße IAM Rollen + Benutzer in Lambda eingerichtet http://docs.aws.amazon.com/lambda/latest/dg/setting-up.html Sie müssen möglicherweise tun, Ihre Ressource arn zu "" arn: aws: ec2: accoun-id: Benutzername " Das lamdba-Skript benötigt ebenfalls spezifische Benutzerdaten zur Bestimmung der Ressourcen. – mootmoot
Ich habe die VPC des Lambdas so konfiguriert, dass sie mit der EC2-Instanz übereinstimmt. – Michael