From 2bce78186ddc5378e6724d9b9ce5f307a5b5999a Mon Sep 17 00:00:00 2001 From: Arian van Putten Date: Mon, 8 Jan 2024 14:29:57 +0100 Subject: [PATCH] Quota increase (#41) --- .../request_public_ami_quota_increase.py | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 upload-ami/src/upload_ami/request_public_ami_quota_increase.py diff --git a/upload-ami/src/upload_ami/request_public_ami_quota_increase.py b/upload-ami/src/upload_ami/request_public_ami_quota_increase.py new file mode 100644 index 0000000..a5a1335 --- /dev/null +++ b/upload-ami/src/upload_ami/request_public_ami_quota_increase.py @@ -0,0 +1,35 @@ +import boto3 +import logging + + +def get_public_ami_service_quota(servicequotas): + pages = servicequotas.get_paginator( + 'list_service_quotas').paginate(ServiceCode="ec2") + for page in pages: + for quota in page["Quotas"]: + if quota["QuotaName"] == "Public AMIs": + return quota + raise Exception("No public AMI quota found") + + +def main(): + logging.basicConfig(level=logging.INFO) + ec2 = boto3.client("ec2") + regions = ec2.describe_regions()["Regions"] + for region in regions: + servicequotas = boto3.client( + "service-quotas", region_name=region["RegionName"]) + service_quota = get_public_ami_service_quota(servicequotas) + try: + logging.info(f"Requesting quota increase for {region['RegionName']}") + servicequotas.request_service_quota_increase( + ServiceCode="ec2", + QuotaCode=service_quota['QuotaCode'], + DesiredValue=100, + ) + except Exception as e: + logging.warn(e) + + +if __name__ == "__main__": + main()