boto3 Route53 complains Could not connect to the endpoint URL:
<p>I was trying to get some Route53 automation working with boto, and noticed that this tiny boto3 (version 1.3.1) example:</p>

<pre><code>import boto3
client = boto3.client('route53')
print client.list_hosted_zones()
</code></pre>

<p>blows up with a complaint about:</p>

<pre>
  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"
</pre>

<p>while this similar boto2 (using version 2.38.0) code seems to work fine:</p>

<pre><code>from boto.route53.connection import Route53Connection
r53_conn = Route53Connection()
print r53_conn.get_all_hosted_zones()
</code></pre>

<p>and prints out a dictionary of info about my hosted zones. If I attempt to coax boto3 into using the endpoint <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html" rel="nofollow">suggested by Amazon</a> (even though it seems boto3 should know how to do this by default...), like this:</p>

<pre><code>client = boto3.client('route53', endpoint_url='https://route53.amazonaws.com')
</code></pre>

<p>I get this error:</p>

<pre>
  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'. 
</pre>

<p>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?</p>