AWS Lambda 创建 EC2 并关联 EIP
AWS Lambda create EC2 and associate EIP
我正在尝试部署一个 EC2 实例并将 EIP 关联到它,但是在尝试关联 EIP 时出现错误,因为该实例不是 运行。这是我的代码:
import boto3
from botocore.exceptions import ClientError
AMI = 'ami-0bf84....'
INSTANCE_TYPE = 't2.micro'
KEY_NAME = 'EC2company'
SUBNET_ID = 'subnet-065....'
ec2 = boto3.client('ec2')
def lambda_handler(event, context):
instance = ec2.run_instances(
ImageId=AMI,
InstanceType=INSTANCE_TYPE,
KeyName=KEY_NAME,
SubnetId=SUBNET_ID,
MaxCount=1,
MinCount=1
)
waiter = ec2.get_waiter('instance_running')
try:
response = ec2.associate_address(
AllocationId='eipalloc-0bc.....',
InstanceId=instance['Instances'][0]['InstanceId'],
)
print(response)
except ClientError as e:
print(e)
我想这个问题与以错误的方式应用服务员有关,但我不确定我应该怎么做。
根据 EC2 waiters,您可以创建一个服务员:
waiter = client.get_waiter('instance_running')
然后您激活服务员:
waiter.wait(InstanceIds=['i-xxx']
它每 15 秒轮询一次 EC2.Client.describe_instances()
,直到达到成功状态。 40 次检查失败后返回错误。
我正在尝试部署一个 EC2 实例并将 EIP 关联到它,但是在尝试关联 EIP 时出现错误,因为该实例不是 运行。这是我的代码:
import boto3
from botocore.exceptions import ClientError
AMI = 'ami-0bf84....'
INSTANCE_TYPE = 't2.micro'
KEY_NAME = 'EC2company'
SUBNET_ID = 'subnet-065....'
ec2 = boto3.client('ec2')
def lambda_handler(event, context):
instance = ec2.run_instances(
ImageId=AMI,
InstanceType=INSTANCE_TYPE,
KeyName=KEY_NAME,
SubnetId=SUBNET_ID,
MaxCount=1,
MinCount=1
)
waiter = ec2.get_waiter('instance_running')
try:
response = ec2.associate_address(
AllocationId='eipalloc-0bc.....',
InstanceId=instance['Instances'][0]['InstanceId'],
)
print(response)
except ClientError as e:
print(e)
我想这个问题与以错误的方式应用服务员有关,但我不确定我应该怎么做。
根据 EC2 waiters,您可以创建一个服务员:
waiter = client.get_waiter('instance_running')
然后您激活服务员:
waiter.wait(InstanceIds=['i-xxx']
它每 15 秒轮询一次 EC2.Client.describe_instances()
,直到达到成功状态。 40 次检查失败后返回错误。