2017-06-07 3 views
0

J'essaie d'obtenir une description de table à l'aide boto3 et python utilisant le code suivant:boto3 dit table est inexistante, mais je peux l'interroger dans le AWS CLI

import boto3 

dynamodb = boto3.client('dynamodb', region_name='us-east-2', endpoint_url="http://localhost:8000") 

response = dynamodb.describe_table(
    TableName='bars' 
) 

print(response) 

mais je continue à obtenir cette erreur :

botocore.errorfactory.ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the DescribeTable operation: Cannot do operations on a non-existent table

Mais je peux l'interroger dans l'AWS CLI lorsque je lance cette commande:

aws dynamodb describe-table --table-name bars 

est quelque chose foireuse avec mon boto3 se mouton? Évidemment, mon fichier de configuration aws est très bien car je peux accéder à la table en utilisant le cli.

+0

avez-vous exclu la partie de votre code où vous vous connectez à 'boto3' avec vos informations d'identification? –

+1

Pourquoi définissez-vous 'endpoint_url' et' region_name', c'est sûrement l'un ou l'autre - soit vous l'exécutez localement (Developer) ou vous essayez de vous connecter à 'region' (Service). Je suppose que le 'aws' cli est configuré pour aller à la même région. – AChampion

+1

Vous connectez-vous à [DynamoDB Local] (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html) ou au «vrai» DynamoDB hébergé sur AWS? Si ce dernier, alors supprimez 'endpoint_url'. –

Répondre

3

Supprimez le endpoint_url().

Ceci est utile lors de la connexion à DynamoDB Local mais n'est pas nécessaire lors de la connexion au service Amazon DynamoDB 'en temps réel'. Le AWS Command-Line Interface (CLI) utilisera le service en direct par défaut.