Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Comment puis-je résoudre les erreurs lorsque je charge des données entre Amazon Aurora et Amazon S3 ?
Je souhaite corriger les erreurs lorsque je charge des données entre Amazon Aurora et Amazon Simple Storage Service (Amazon S3).
Brève description
Pour charger des données sous forme de fichier texte entre Amazon Aurora et Amazon S3, utilisez la commande SELECT INTO OUTFILE S3 ou LOAD DATA FROM S3. Lorsque vous exécutez l'une ou l'autre des commandes, des erreurs telles que les erreurs suivantes peuvent s'afficher :
- Code d’erreur : 1871. Informations d’identification manquantes.
- Commande incorrecte : mot-clé de manifeste/fichier/préfixe manquant.
- Code d’erreur : 1045. Erreur d’accès refusé.
- Code d’erreur : 1815. Erreur interne : Initialisation impossible.
- Code d’erreur : 1871. L’API S3 a renvoyé l’erreur suivante : Accès refusé.
Résolution
Exécuter la commande SELECT INTO OUTFILE S3 ou LOAD DATA FROM S3
Procédez comme suit :
-
Créez un compartiment S3 et copiez l’ARN.
-
Créez une politique AWS Identity and Access Management (IAM) avec les autorisations nécessaires pour le compartiment S3. Spécifiez l’ARN du compartiment, puis accordez les autorisations aux objets qu’il contient. Si vous n’utilisez pas de politique FullS3Access, exécutez une politique personnalisée semblable à la suivante :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::<your_bucket_name>", "arn:aws:s3:::<your_bucket_name>/*" ] } ] }
-
Créez un rôle IAM pour le service Amazon Relational Database Service (Amazon RDS). Puis, attachez à celui-ci la politique IAM que vous avez créée. La relation d’approbation ressemble à ce qui suit :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
Créez un groupe de paramètres de cluster de base de données personnalisé pour Amazon Aurora. Pour l'édition compatible Amazon Aurora MySQL version 1 ou 2, modifiez aurora_select_into_s3_role ou aws_default_s3_role en fonction de la valeur de l'ARN du rôle IAM. Pour la version 3 compatible avec Aurora MySQL, modifiez le aws_default_s3_role en fonction de la valeur de l'ARN du rôle IAM.
-
Attachez le rôle IAM au cluster de base de données que vous avez créé. Pour en savoir plus, consultez la page Association d’un rôle IAM à un cluster de bases de données Amazon Aurora MySQL.
-
Connectez-vous à votre cluster de bases de données Amazon Aurora.
-
Pour créer un nouvel utilisateur, exécutez la commande suivante :
CREATE USER 'testsaveload'@'%' IDENTIFIED BY 'somepassword';show grants for 'testsaveload'@'%';
-
Pour accorder des autorisations à l’utilisateur, exécutez la commande suivante :
GRANT SELECT, CREATE, INSERT, DROP ON *.* TO 'testsaveload'@'%';
-
Pour Aurora MySQL version 1 ou 2, utilisez l’instruction suivante :
GRANT SELECT INTO S3 ON *.* TO 'testsaveload'@'%';GRANT LOAD FROM S3 ON *.* TO 'testsaveload'@'%';
-
Pour Aurora MySQL version 3, utilisez l’instruction suivante :
GRANT AWS_SELECT_S3_ACCESS TO 'testsaveload'@'%'GRANT AWS_LOAD_S3_ACCESS TO 'testsaveload'@'%';
Remarque : Dans Aurora MySQL version 3, utilisez le paramètre de cluster de base de données pour activer activate_all_roles_on_login. Lorsqu'un utilisateur se connecte à une instance de base de données, tous les rôles sont automatiquement activés. Pour en savoir plus, consultez la page Octroi de privilèges permettant de charger des données dans Amazon Aurora MySQL. Exécutez la commande SELECT INTO OUTFILE S3 ou LOAD DATA INTO S3 :
SELECT * from test1.test2034 INTO OUTFILE S3 's3://tests3saveloadaurora/testfile1prefix.part_00000';LOAD DATA FROM S3 PREFIX 's3-us-east-1://tests3saveloadaurora/testfile1prefix.part_00000' INTO TABLE test3001; LOAD DATA FROM S3 's3-us-east-1://tests3saveloadaurora/prefix3.part_00000' INTO TABLE test3000;
Code d’erreur : 1871. Informations d’identification manquantes.
Si le rôle IAM attaché au cluster de bases de données est manquant, reportez-vous à l'étape 5 de la section « **Exécuter la commande SELECT INTO OUTFILE S3 ou LOAD DATA FROM S3 **». L’ARN du rôle n’est pas spécifié et seul le nom du rôle figure dans le groupe de paramètres, puis consultez l’étape 2.
Commande incorrecte : mot-clé de manifeste/fichier/préfixe manquant.
Si cette erreur s'affiche, assurez-vous que le mot-clé de commande est correct.
Error code: 1045. Erreur d’accès refusé
Si votre commande n’est pas saisie correctement, vous pouvez recevoir une erreur de type « 1045: Access denied for user ''testsaveload'@'%';" ». Par exemple, la commande suivante est incorrecte :
SELECT * from test1.test2034 INTO OUTFILE 's3://tests3saveloadaurora/testfile1prefix.part_00000';
Vérifiez que le mot-clé S3 a été saisi dans la requête, par exemple à l'aide de la commande suivante :
SELECT * from test1.test2034 INTO OUTFILE S3 's3://tests3saveloadaurora/testfile1prefix.part_00000';
Error code: 1815. Erreur interne : Initialisation impossible
Si ce message d'erreur s'affiche, procédez comme suit :
- Vérifiez que le fichier existe bien dans votre compartiment S3 et que le nom que vous avez spécifié dans votre script correspond au nom du fichier. Vérifiez que les noms de compartiment, de dossier et d'objet S3 correspondent à la commande de chargement.
- Examinez l'étape 2 de la section « Exécuter la commande SELECT INTO OUTFILE S3 ou LOAD DATA FROM S3 » pour vous assurer que vous avez défini les autorisations appropriées.
- Si le script LOAD contient une erreur de syntaxe, vérifiez votre script LOAD, puis relancez la commande.
- Si le compartiment S3 et le cluster de bases de données se trouvent dans des régions différentes et que la valeur de région n'est pas indiquée sur le chemin d'accès au compartiment S3, consultez la section Points de terminaison et quotas Amazon Simple Storage Service pour plus d'informations.
- Si la configuration réseau des instances de lecture et d'écriture est différente, consultez la section Connexions aux points de terminaison Amazon Aurora pour plus d'informations.
Code d’erreur : 1871. L’API S3 a renvoyé l’erreur suivante : Accès refusé
Cette erreur peut s'afficher si votre compartiment S3 est chiffré ou si votre compartiment S3 contient un fichier chiffré. Si le paramètre ServerSideEncryptionConfigurationExists n’est pas défini sur Faux, ajoutez kms:* à la politique que vous avez attachée au rôle IAM utilisé pour effectuer l’opération LOAD.
Par exemple, si vous n’utilisez pas de politique FULLS3Access, vous pouvez par exemple utiliser l’exemple de politique personnalisée suivant :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:*", "kms:*" ], "Resource": [ "arn:aws:s3:::<your_bucket_name>", "arn:aws:s3:::<your_bucket_name>/*" ] } ] }
Erreur : S3 API returned error: Resource Not Found: No response body.
Pour résoudre cette erreur, assurez-vous que l'ARN et le nom du compartiment sont corrects.
Informations connexes
Vidéos associées


Contenus pertinents
- demandé il y a 7 moislg...
- demandé il y a 4 moislg...
- demandé il y a 6 moislg...
- demandé il y a 5 moislg...
- demandé il y a 2 anslg...