in aws_sra_examples/solutions/common/common_prerequisites/lambda/src/app.py [0:0]
def get_enabled_regions() -> list: # noqa: CCR001
"""Query STS to identify enabled regions.
Raises:
EndpointConnectionError: region is not valid.
Returns:
Enabled regions
"""
# available_regions = management_account_session.get_available_regions("sts") # noqa: E800
default_available_regions = [
"eu-central-1",
"ap-northeast-1",
"sa-east-1",
"ap-southeast-1",
"us-east-1",
"us-east-2",
"ca-central-1",
"us-west-2",
"us-west-1",
"ap-northeast-3",
"ap-northeast-2",
"ap-south-1",
"eu-west-2",
"eu-north-1",
"eu-west-1",
"ap-southeast-2",
"eu-west-3",
]
LOGGER.info({"Default_Available_Regions": default_available_regions})
enabled_regions = []
disabled_regions = []
region_session = boto3.Session()
for region in default_available_regions:
try:
sts_client = region_session.client("sts", endpoint_url=f"https://sts.{region}.amazonaws.com", region_name=region)
sts_client.get_caller_identity()
enabled_regions.append(region)
except EndpointConnectionError:
LOGGER.error(f"Region: '{region}' is not valid.")
raise
except ClientError as error:
if error.response["Error"]["Code"] == "InvalidClientTokenId":
disabled_regions.append(region)
continue
raise
LOGGER.info({"Disabled_Regions": disabled_regions})
return enabled_regions