The AWS docs provide a list of services for each region as seen here, unfortunately this requires you to select a region in a drop down to see the services available for that region.
Using stackql
and the AWS Cloud Control API (using the awscc
provider) , I was able to generate a consolidated list by testing a resource from each service for each region, here it is:
Service | us-east-1 (N. Virginia) |
us-east-2 (Ohio) |
us-west-1 (N. California) |
us-west-2 (Oregon) |
ap-south-1 (Mumbai) |
ap-northeast-3 (Osaka) |
ap-northeast-2 (Seoul) |
ap-southeast-1 (Singapore) |
ap-southeast-2 (Sydney) |
ap-northeast-1 (Tokyo) |
ca-central-1 (Canada) |
eu-central-1 (Frankfurt) |
eu-west-1 (Ireland) |
eu-west-2 (London) |
eu-west-3 (Paris) |
eu-north-1 (Stockholm) |
sa-east-1 (SΓ£o Paulo) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
accessanalyzer | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
acmpca | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
amplify | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
apigateway | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
apigatewayv2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
appconfig | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
appflow | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
applicationinsights | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
apprunner | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
appstream | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
appsync | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
aps | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
arczonalshift | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
athena | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
autoscaling | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
backup | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
backupgateway | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
batch | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
budgets | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
cassandra | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
ce | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
chatbot | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
cleanrooms | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
cloudformation | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
cloudfront | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
cloudtrail | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
cloudwatch | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
codeartifact | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
codebuild | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
codedeploy | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
codeguruprofiler | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
codegurureviewer | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
codepipeline | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
codestarconnections | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
codestarnotifications | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
cognito | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
comprehend | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
config | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
connect | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
databrew | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
datapipeline | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
datasync | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
detective | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
devopsguru | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
directoryservice | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
dms | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
dynamodb | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
ec2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
ecr | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
ecs | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
efs | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
eks | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
elasticache | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
elasticbeanstalk | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
elasticloadbalancingv2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
emr | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
emrcontainers | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
emrserverless | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
events | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
eventschemas | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
fis | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
forecast | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
frauddetector | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
fsx | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
gamelift | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
globalaccelerator | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
grafana | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
greengrassv2 | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
groundstation | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
guardduty | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
healthlake | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
iam | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
imagebuilder | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
inspector | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
inspectorv2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
internetmonitor | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
iot | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
iotanalytics | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
iotevents | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
iotfleethub | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
iotfleetwise | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
iotsitewise | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
iotwireless | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
ivs | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
ivschat | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
kafkaconnect | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
kendra | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
kinesis | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
kinesisanalyticsv2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
kinesisfirehose | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
kms | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
lakeformation | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
lambda | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
lex | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
lightsail | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
logs | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
lookoutequipment | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
lookoutmetrics | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
lookoutvision | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
m2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
macie | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
mediaconnect | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
medialive | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
mediapackage | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
mediapackagev2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
memorydb | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
msk | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
mwaa | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
neptune | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
networkfirewall | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
networkmanager | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
nimblestudio | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
oam | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
omics | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
opensearchserverless | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
opsworkscm | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
organizations | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
osis | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
pcaconnectorad | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
personalize | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
pinpoint | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
pipes | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
proton | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
ram | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
rds | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
redshift | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
refactorspaces | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
rekognition | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
resiliencehub | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
resourceexplorer2 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
resourcegroups | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
robomaker | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
route53 | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
route53recoverycontrol | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
route53recoveryreadiness | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
route53resolver | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
rum | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
s3 | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
s3objectlambda | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
sagemaker | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
scheduler | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
secretsmanager | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
securityhub | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
servicecatalog | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
servicecatalogappregistry | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
ses | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
signer | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
sns | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
sqs | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
ssm | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
ssmcontacts | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
ssmincidents | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
stepfunctions | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
synthetics | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
timestream | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
transfer | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
verifiedpermissions | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π | π |
vpclattice | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
wafv2 | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
workspacesweb | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β | β |
Here is the output as a python object:
supported_regions = {
'accessanalyzer': ['global'],
'acmpca': ['global'],
'amplify': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1'],
'apigateway': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'apigatewayv2': ['global'],
'appconfig': ['global'],
'appflow': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'sa-east-1'],
'applicationinsights': ['global'],
'apprunner': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3'],
'appstream': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'sa-east-1'],
'appsync': ['global'],
'aps': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'eu-central-1',
'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1'],
'arczonalshift': ['global'],
'athena': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-west-1', 'eu-north-1'],
'autoscaling': ['global'],
'backup': ['global'],
'backupgateway': ['global'],
'batch': ['global'],
'budgets': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'sa-east-1'],
'cassandra': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1'],
'ce': ['global'],
'chatbot': ['global'],
'cleanrooms': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-north-1'],
'cloudformation': ['global'],
'cloudfront': ['us-east-1'],
'cloudtrail': ['global'],
'cloudwatch': ['global'],
'codeartifact': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1'],
'codebuild': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1', 'sa-east-1'],
'codedeploy': ['global'],
'codeguruprofiler': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-central-1',
'eu-west-1', 'eu-west-2', 'eu-north-1'],
'codegurureviewer': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-central-1',
'eu-west-1', 'eu-west-2', 'eu-north-1'],
'codepipeline': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'codestarconnections': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'codestarnotifications': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2',
'eu-west-3', 'eu-north-1', 'sa-east-1'],
'cognito': ['global'],
'comprehend': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2'],
'config': ['global'],
'connect': ['us-east-1', 'us-west-2', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1', 'eu-central-1',
'eu-west-2'],
'databrew': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1'],
'datapipeline': ['us-east-1', 'us-west-2', 'ap-southeast-2', 'ap-northeast-1',
'eu-west-1'],
'datasync': ['global'],
'detective': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1'],
'devopsguru': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'directoryservice': ['us-east-1', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-west-1'],
'dms': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-central-1', 'eu-west-1',
'eu-north-1'],
'dynamodb': ['global'],
'ec2': ['global'],
'ecr': ['us-east-1'],
'ecs': ['global'],
'efs': ['global'],
'eks': ['global'],
'elasticache': ['global'],
'elasticbeanstalk': ['global'],
'elasticloadbalancingv2': ['global'],
'emr': ['global'],
'emrcontainers': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2'],
'emrserverless': ['global'],
'events': ['global'],
'eventschemas': ['global'],
'fis': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'ca-central-1', 'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'forecast': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'eu-central-1', 'eu-west-1'],
'frauddetector': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'eu-west-1'],
'fsx': ['global'],
'gamelift': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'sa-east-1'],
'globalaccelerator': ['us-east-1'],
'grafana': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1', 'eu-west-2'],
'greengrassv2': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2'],
'groundstation': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'eu-central-1',
'eu-west-1', 'eu-north-1', 'sa-east-1'],
'guardduty': ['global'],
'healthlake': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1'],
'iam': ['us-east-1'],
'imagebuilder': ['global'],
'inspector': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-north-1'],
'inspectorv2': ['global'],
'internetmonitor': ['global'],
'iot': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'ca-central-1', 'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1'],
'iotanalytics': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-central-1',
'eu-west-1'],
'iotevents': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2'],
'iotfleethub': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-north-1'],
'iotfleetwise': ['us-east-1', 'eu-central-1'],
'iotsitewise': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1',
'eu-west-1'],
'iotwireless': ['us-east-1', 'us-west-2', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1', 'sa-east-1'],
'ivs': ['us-east-1', 'us-west-2', 'ap-south-1', 'ap-northeast-2',
'ap-northeast-1', 'eu-central-1', 'eu-west-1'],
'ivschat': ['us-east-1', 'us-west-2', 'ap-south-1', 'ap-northeast-2',
'ap-northeast-1', 'eu-central-1', 'eu-west-1'],
'kafkaconnect': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'kendra': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'ca-central-1', 'eu-west-1', 'eu-west-2'],
'kinesis': ['global'],
'kinesisanalyticsv2': ['global'],
'kinesisfirehose': ['global'],
'kms': ['global'],
'lakeformation': ['global'],
'lambda': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1'],
'lex': ['us-east-1', 'us-west-2', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1', 'eu-central-1',
'eu-west-1', 'eu-west-2'],
'lightsail': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'eu-north-1'],
'logs': ['global'],
'lookoutequipment': ['us-east-1', 'ap-northeast-2', 'eu-west-1'],
'lookoutmetrics': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-central-1',
'eu-west-1', 'eu-north-1'],
'lookoutvision': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-northeast-2',
'ap-northeast-1', 'eu-central-1', 'eu-west-1'],
'm2': ['global'],
'macie': ['global'],
'mediaconnect': ['global'],
'medialive': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-3', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'mediapackage': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-central-1',
'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-north-1',
'sa-east-1'],
'mediapackagev2': ['global'],
'memorydb': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-north-1', 'sa-east-1'],
'msk': ['global'],
'mwaa': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-north-1',
'sa-east-1'],
'neptune': ['global'],
'networkfirewall': ['global'],
'networkmanager': ['global'],
'nimblestudio': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-north-1'],
'oam': ['global'],
'omics': ['us-east-1', 'us-west-2', 'ap-southeast-1', 'eu-central-1',
'eu-west-1', 'eu-west-2'],
'opensearchserverless': ['us-east-1', 'us-east-2', 'us-west-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1'],
'opsworkscm': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'eu-central-1', 'eu-west-1'],
'organizations': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-3', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'ca-central-1', 'eu-central-1', 'eu-west-1', 'eu-west-2',
'eu-west-3', 'eu-north-1', 'sa-east-1'],
'osis': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-north-1', 'sa-east-1'],
'pcaconnectorad': ['global'],
'personalize': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1',
'eu-west-1'],
'pinpoint': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2'],
'pipes': ['global'],
'proton': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1',
'ca-central-1', 'eu-central-1', 'eu-west-1', 'eu-west-2'],
'ram': ['global'],
'rds': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-south-1', 'ap-northeast-2',
'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-north-1', 'sa-east-1'],
'redshift': ['global'],
'refactorspaces': ['global'],
'rekognition': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2'],
'resiliencehub': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'resourceexplorer2': ['global'],
'resourcegroups': ['global'],
'robomaker': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-northeast-1', 'eu-central-1', 'eu-west-1'],
'route53': ['us-east-1'],
'route53recoverycontrol': ['us-east-1', 'us-west-2'],
'route53recoveryreadiness': ['us-east-1', 'us-west-2'],
'route53resolver': ['global'],
'rum': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-north-1'],
's3': ['global'],
's3objectlambda': ['global'],
'sagemaker': ['global'],
'scheduler': ['global'],
'secretsmanager': ['global'],
'securityhub': ['ap-southeast-2'],
'servicecatalog': ['global'],
'servicecatalogappregistry': ['global'],
'ses': ['global'],
'signer': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1',
'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2',
'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1',
'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1'],
'sns': ['global'],
'sqs': ['global'],
'ssm': ['global'],
'ssmcontacts': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'ssmincidents': ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2',
'ap-south-1', 'ap-northeast-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3',
'eu-north-1', 'sa-east-1'],
'stepfunctions': ['global'],
'synthetics': ['global'],
'timestream': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-2',
'ap-northeast-1', 'eu-central-1', 'eu-west-1'],
'transfer': ['global'],
'verifiedpermissions': ['global'],
'vpclattice': ['us-east-1', 'us-east-2', 'us-west-2', 'ap-southeast-1',
'ap-southeast-2', 'ap-northeast-1', 'ca-central-1',
'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-north-1'],
'wafv2': ['us-east-1'],
'workspacesweb': ['us-east-1', 'us-west-2', 'ap-south-1', 'ap-southeast-1',
'ap-northeast-1', 'ca-central-1', 'eu-central-1',
'eu-west-1', 'eu-west-2']
}
Here's the code used to generate this (all you need to do is pip install pystackql
):
pystackql
is a python wrapper for StackQL, seepystackql
or Read the Docs
from pystackql import StackQL
# Initialize StackQL
stackql = StackQL(output='pandas', execution_concurrency_limit=-1)
# pull the latest stackql providers for aws
stackql.executeStmt("REGISTRY PULL aws")
stackql.executeStmt("REGISTRY PULL awscc")
# Predefined regions to check
regions = ['us-east-1', 'us-east-2', 'us-west-1', 'us-west-2', 'ap-south-1', 'ap-northeast-3', 'ap-northeast-2', 'ap-southeast-1', 'ap-southeast-2', 'ap-northeast-1', 'ca-central-1', 'eu-central-1', 'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-north-1', 'sa-east-1']
# Initialize the supported regions dictionary
supported_regions = {}
def execute_query_for_region(service, resource, region):
query = f"SELECT COUNT(*) FROM awscc.{service}.{resource} WHERE region = '{region}'"
df = stackql.execute(query)
if 'error' in df.columns:
return False
else:
return True
def enumerate_services_and_test_resources():
services_df = stackql.execute("SHOW SERVICES IN awscc")
services = services_df['name'].tolist()
for service in services:
resources_df = stackql.execute(f"SHOW RESOURCES IN awscc.{service}")
plural_resources = [resource for resource in resources_df['name'].tolist() if resource.endswith('s')]
# If plural resources are found, test the first one
# plural awscc resources implement the Cloud Control list method if supported
if plural_resources:
resource = plural_resources[0]
print(f"Checking {service}...")
# Query across ALL AWS regions
all_regions_in_clause = ", ".join([f"'{region}'" for region in regions])
resource_df = stackql.execute(f"SELECT COUNT(*) as total FROM awscc.{service}.{resource} WHERE region IN ({all_regions_in_clause})")
if 'error' in resource_df.columns:
# query each region individually to determine availability
supported_regions[service] = []
for region in regions:
print(f"Checking {service} in {region}...")
if execute_query_for_region(service, resource, region):
supported_regions[service].append(region)
if not supported_regions[service]:
# additional parameters required aside from region
del supported_regions[service]
else:
supported_regions[service] = ['global']
else:
supported_regions[service] = ['check manually']
enumerate_services_and_test_resources()
print(supported_regions)
And here is an application using the output of this program (The 5 Minute Global AWS Inventory).
Top comments (0)