Ошибка при получении дубликата имени клиента AMI, даже если он создается впервые - PullRequest
0 голосов
/ 21 февраля 2020

Я использую 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])

Заранее спасибо.

...