Comment résoudre l'erreur « Invalid S3 location » (Emplacement S3 non valide) lorsque j'essaie d'enregistrer des résultats de requêtes Athena dans un compartiment S3 ?

Date de la dernière mise à jour : 25/05/2021

Ma requête Amazon Athena ne parvient pas à enregistrer les résultats dans le compartiment Amazon Simple Storage Service (Amazon S3) spécifié.

Brève description

Amazon Athena stocke automatiquement les résultats et les informations de métadonnées de chaque requête dans un emplacement que vous pouvez spécifier dans Amazon S3. L'erreur « Invalid S3 location » (Emplacement S3 non valide) ou « Not a valid S3 location » (Pas un emplacement S3 valide) apparaît dans une ou plusieurs des conditions suivantes :

  • Vous n'avez pas spécifié l'emplacement des résultats de requêtes dans Amazon S3.
  • L'emplacement S3 spécifié pour les résultats de requêtes est incorrect.
  • L'emplacement S3 que vous avez spécifié pour les résultat des requêtes se trouve dans une autre région.
  • L'utilisateur AWS Identity and Access Management (IAM) ne dispose pas des autorisations requises pour configurer ou afficher l'emplacement des résultats de requêtes.

Solution

Pour résoudre ces erreurs, choisissez une ou plusieurs des solutions suivantes :

Spécifier l'emplacement des résultats de requêtes

L'emplacement des résultats de requêtes dans Amazon S3 doit être spécifié avant l'exécution des requêtes. Vous devez également utiliser un groupe de travail qui a spécifié un compartiment et dont la configuration remplace les paramètres du client. Vérifiez que vous avez spécifié l'emplacement des résultats de requêtes dans S3 en procédant comme suit :

  1. Ouvrez la console Athena.
  2. Choisissez Settings (Paramètres) dans la barre de navigation.
  3. Vérifiez que Query result location (emplacement des résultats de requêtes) pointe bien vers le compartiment des résultats de requêtes.

Si l'emplacement des résultats de requêtes n'est pas spécifié, vous pouvez le définir à l'aide de la console Athena. Vous pouvez également spécifier l'emplacement des résultats dans la configuration d’un groupe de travail. Pour plus d'informations, consultez Spécification d'un emplacement de résultats de requêtes en utilisant un groupe de travail.

Vérifier que le chemin S3 est correct

Vérifiez que l'emplacement des résultats de requêtes spécifié dans la console Athena pointe vers le chemin S3 correct. Veillez également à inclure une barre oblique (/) à la fin du chemin S3 (exemple : s3://doc_exemple_compartiment/doc_exemple_dossier/).

Vérifiez que l'emplacement S3 se trouve dans la même région

Vérifiez que l'emplacement S3 spécifié pour enregistrer les résultats de requêtes se trouve dans la région dans laquelle vous exécutez les requêtes.

Vérifier que l'utilisateur IAM dispose d’autorisations suffisantes pour accéder aux fichiers des résultats de requêtes

Vérifiez que l'utilisateur IAM dispose des autorisations requises pour accéder aux fichiers des résultats de requêtes et les afficher. L'utilisateur/rôle IAM a besoin d'autorisations pour les actions suivantes :

Remarque : les entités IAM disposant d’une autorisation pour l'action GetObject pour l'emplacement des résultats de requêtes peuvent récupérer ces résultats sur S3. Cela reste vrai même si l'autorisation pour l'action GetQueryResults est refusée pour les principaux IAM. Pour interdire l'accès d’utilisateurs ou de rôles, assurez-vous que les autorisations S3 à l'emplacement des résultats de requêtes Athena sont refusées.