如何通过cloudformation删除包含图像的aws ECR存储库?删除时低于错误。
名称为' test'的存储库在注册表中id' **********'无法删除,因为它仍然包含图像
答案 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并毫无问题地删除。