title: Accessing AWS through PynamoDB vs. low-level botocore
body: <p>I have configured the AWS CLI properly following instructions and I want to access a DynamoDB table from the high-level package <a href="https://github.com/jlafon/PynamoDB" rel="nofollow">PynamoDB</a> rather than boto3. </p>
  
  <p>If I try to access my AWS cluster through the low-level <em>botocore</em> package, which is used by both boto3 and PynamoDB, and connect to a DynamoDB table as </p>
  
  <pre><code>import botocore.session
  session = botocore.session.get_session()
  client = session.create_client('dynamodb')
  client.describe_table(TableName='my_table_name')
  </code></pre>
  
  <p>all is OK, the table gets accessed fine.</p>
  
  <p>But, I am trying to access through PynamoDB by following the tutorial in the documentation and creating a model for the table, as</p>
  
  <pre><code>from pynamodb.models import Model
  
  class MyTableModel(Model):
  
      class Meta:
          table_name = 'my_table_name'
  
      pk_field = UnicodeAttribute(hash_key=True)
      field1 = UnicodeAttribute()
      field2 = UnicodeAttribute()
  </code></pre>
  
  <p>and again describing the table through the appropriate method on the model</p>
  
  <pre><code>print MyTableModel.describe_table()
  </code></pre>
  
  <p>I get error </p>
  
  <blockquote>
    <p>pynamodb.exceptions.TableDoesNotExist: Table does not exist:
    <code>Requested resource not found: Table: my_table_name not found</code></p>
  </blockquote>
  
  <p>I don't understand why as I have digged into the PynamoDB code and what I seem to understand is that it should call the same code from botocore and the configuration should be implicit.</p>