[Python] boto3 Route53 complains Could not connect to the endpoint URL:

Discussão em 'Python' iniciado por Stack, Maio 15, 2025.

  1. Stack

    Stack Membro Participativo

    I was trying to get some Route53 automation working with boto, and noticed that this tiny boto3 (version 1.3.1) example:

    import boto3
    client = boto3.client('route53')
    print client.list_hosted_zones()


    blows up with a complaint about:


    File "... venv/lib/python2.7/site-packages/botocore/retryhandler.py", line 356, in _check_caught_exception
    raise caught_exception
    botocore.exceptions.EndpointConnectionError: Could not connect to the endpoint URL: "https://route53.us-east-1e.amazonaws.com/2013-04-01/hostedzone"


    while this similar boto2 (using version 2.38.0) code seems to work fine:

    from boto.route53.connection import Route53Connection
    r53_conn = Route53Connection()
    print r53_conn.get_all_hosted_zones()


    and prints out a dictionary of info about my hosted zones. If I attempt to coax boto3 into using the endpoint suggested by Amazon (even though it seems boto3 should know how to do this by default...), like this:

    client = boto3.client('route53', endpoint_url='https://route53.amazonaws.com')


    I get this error:


    File "... venv/lib/python2.7/site-packages/botocore/client.py", line 572, in _make_api_call
    raise ClientError(parsed_response, operation_name)
    botocore.exceptions.ClientError: An error occurred (SignatureDoesNotMatch) when calling the ListHostedZones operation: Credential should be scoped to a valid region, not 'us-east-1e'.


    Is there something particular I need to do to teach boto3 how to talk to Route53 correctly, and why is it that boto2 seems to know how to do this automatically?

    Continue reading...

Compartilhe esta Página