1

Je veux une liste de clusters utilisant Python (boto3). J'ai fait quelques recherches et trouvé cette commande dans la documentation de boto3 (http://boto3.readthedocs.org/en/latest/reference/services/redshift.html#paginators) pour charger redshift.Obtenir les clusters de liste Amazon Redshift en utilisant Python avec Boto3

self.client = boto3.resource('redshift') 

mais je reçois cette erreur:

botocore.exceptions.DataNotFoundError: Unable to load data for: redshift 

Autres informations:

Je peux accéder à redshift avec psycopg2. Je peux faire des commandes sql dessus, mais il n'y a aucun moyen d'obtenir une liste des clusters. J'utilise python 3.4.3.

Répondre

0

Avez-vous déjà configuré la session boto3 ou le faites-vous sur une machine dans AWS?

The boto3.resource() method will only work if there's already a session created.

Il y a un certain nombre d'autres options pour configurer le client, y compris:

client = boto3.client(SERVICE_NAME, AWS_REGION) 

Donc, dans votre cas, si vous dirigiez dans la région AWS nous-ouest-1 ' :

client = boto3('redshift', 'us-west-1') 
cluster_list = client.describe_clusters() 
+0

thx J'ai oublié la session. Mais qu'en est-il du nom d'hôte et du nom d'utilisateur, etc. Je le fais maintenant avec un fichier JSON, puis je lis et j'écris à partir de là. Mais n'y a-t-il pas un moyen plus sûr/sécurisé? avec cryptage? – GNIUS

+0

Vous n'avez pas précisé d'où vous faites cela. Le moyen le plus sûr consiste à le faire à partir d'une machine dans AWS à laquelle un rôle IAM est associé avec les autorisations nécessaires. Boto3 devrait alors automatiquement récupérer les informations d'identification de la machine. Si cela fonctionne à partir d'un autre endroit, vous aurez besoin d'avoir des clés locales d'une façon ou d'une autre, [il y a plusieurs façons de le faire.] (Https://boto3.readthedocs.org/en/latest/guide/quickstart.html #configuration) – gjtempleton