如何通过cloudformation删除包含图像的aws ECR存储库?

时间:2018-03-14 12:17:31

标签: amazon-web-services amazon-cloudformation

如何通过cloudformation删除包含图像的aws ECR存储库?删除时低于错误。

名称为' test'的存储库在注册表中id' **********'无法删除,因为它仍然包含图像

2 个答案:

答案 0 :(得分:2)

让我的方法使用 Python 的 boto3 客户端来解决这个问题。 (1) 清空存储库,然后 (2) 删除堆栈。

import boto3
ecr_client = boto3.client('ecr')
...

# Apply only to ecr cfn template
if '-ecr' in stack_name:
    print('Deleting existing images...')
    image_ids = ecr_client.list_images(repositoryName=ECR_REPO_NAME)['imageIds']
    ecr_client.batch_delete_image(
        repositoryName=ECR_REPO_NAME,
        imageIds=image_ids
    )
    print('ECR repository is now empty.')

# Now delete stack containing ECR repository
delete_stack(**cf_template)

答案 1 :(得分:0)

我能够做到这一点,方法是先删除ECR中的所有图像,然后再返回CloudFormation并再次删除。有关删除图像的说明,请参见:https://docs.aws.amazon.com/AmazonECR/latest/userguide/delete_image.html。完成之后,我可以回到CloudFormation并毫无问题地删除。