Я использую jenkins для запуска лямбды, которая создает образ AMI из экземпляра ec2, а затем создает конфигурацию запуска и обновляет группу автоматического масштабирования с новой конфигурацией запуска, а группа автоматического масштабирования создает экземпляры, использующие последнюю конфигурацию Launch и завершающие старые экземпляры.
Но мой код некоторое время работает правильно, но иногда он выдает мне "ClientError: Произошла ошибка (InvalidAMIName.Duplicate) при вызове операции CreateImage: имя AMI" API_AMI_200220_1629 "уже используется AMI ami-033a3681473f9acbd "
, но мои имена AMI динамически создаются как" API_AMI_$(date +%d%m%y_%H%M)
", поэтому не будет никаких дубликатов AMI, которые можно создать технически. Но я получаю эту ошибку, и AMI будет в состоянии ожидания. Может ли кто-либо иметь какое-либо предложение или решение, почему это происходит только иногда, а не постоянно. Пожалуйста, проверьте приведенный ниже код.
import json
import boto3
import time
def lambda_handler(event, context):
flag_image=1
instance_id=event['instanceId']
ami_name=event['amiName']
launch_config=event['launchConfig']
autoscaling_name=event['autoscalingName']
ec2_client = boto3.client('ec2',region_name='us-east-1')
autoscaling_client = boto3.client('autoscaling',region_name='us-east-1')
print ##############Creating Image########################
response = ec2_client.create_image(InstanceId=instance_id, Name=ami_name)
print response
imageId=response['ImageId']
print imageId
describe_image = ec2_client.describe_images(ImageIds=[imageId])
while flag_image == 1 :
for i in describe_image['Images']:
time.sleep(5)
print i['State']
if i['State'] == 'available':
flag_image=0
describe_image = ec2_client.describe_images(ImageIds=[imageId])
Заранее спасибо.