Comment résoudre les erreurs courantes liées au processus d'importation dans Amazon Cognito ?

Lecture de 6 minute(s)
0

Je souhaite résoudre les erreurs courantes liées au processus d'importation dans Amazon Cognito.

Brève description

Les erreurs les plus courantes associées au processus d'importation d'Amazon Cognito sont les suivantes :

La migration des utilisateurs vers AWS Lambda déclenche des erreurs d'importation :

  • AccessDeniedException
  • UserCodeSyntaxError
  • ResourceNotFoundException
  • ImportModuleError

Erreurs d'importation de fichiers CSV :

  • En-têtes inattendus
  • Utilisateur échoué/ignoré
  • Tâche d'importation expirée
  • Valeur d'attribut non valide
  • Autorisation manquante pour le rôle CloudWatch Logs

Solution

Lorsque vous utilisez un fichier CSV ou un déclencheur Lambda pour importer dans Amazon Cognito, les erreurs sont enregistrées dans Amazon CloudWatch Logs. Consultez et recherchez ces erreurs dans votre compte AWS.

Migration des utilisateurs : Lambda déclenche des erreurs d'importation

AccessDeniedException:

Cette erreur est enregistrée lorsque le rôle Lambda ne dispose pas d'une autorisation AWS Identity and Access Management (IAM) lui permettant d'effectuer une action Amazon Cognito. Par exemple, AdminInitiateAuth. L'erreur AccessDeniedException est similaire à ce qui suit :

An error occurred (AccessDeniedException) when calling the AdminInitiateAuth operation: User: arn:aws:sts::ACCOUNT_ID:assumed-role/TestingMigration-role/TestingMigration is not authorized to perform: cognito-idp:AdminInitiateAuth on resource: arn:aws:cognito-idp:eu-central-1:ACCOUNT_ID:userpool/eu-central-1_YYYYOOOO
    because no identity-based policy allows the cognito-idp:AdminInitiateAuth action

Pour résoudre l'erreur AccessDeniedException, procédez comme suit :

  1. Ouvrez la console IAM.
  2. Dans le volet de navigation, choisissez Rôles et recherchez le rôle d'exécution Lambda.
  3. Choisissez l'onglet Autorisations pour le rôle IAM.
  4. Développez la politique d'autorisation pour afficher les autorisations associées à l'utilisateur.
  5. Assurez-vous que la politique inclut les paramètres suivants :
    cognito-idp:AdminInitiateAuth dans la liste des Actions
    Autoriser l'effet.
  6. Si la politique n'inclut pas les paramètres, mettez-la à jour afin de les inclure.
    -ou-
    Créez une nouvelle politique qui respecte les paramètres et associez la politique au rôle IAM. Pour plus d'informations, consultez la section Editing customer managed policies (console) (Modification des politiques gérées par le client (console)).

UserCodeSyntaxError :

Cette erreur est enregistrée lorsqu'un problème de code est détecté dans votre code Lambda. Par exemple, un problème d'indentation.

L'erreur UserCodeSyntaxError ressemble à ce qui suit :

[ERROR] Runtime.UserCodeSyntaxError: Syntax error in module 'lambda_function': unexpected indent

Pour résoudre cette erreur, assurez-vous de vérifier que la syntaxe est correctement utilisée dans votre code.

ResourceNotFoundException :

Cette erreur est enregistrée lorsqu'une ressource référencée dans votre code Lambda n'est pas trouvée dans votre compte AWS ou votre région AWS. Par exemple, un client d'application Amazon Cognito.

L'erreur ResourceNotFoundException ressemble à ce qui suit :

[ERROR] ResourceNotFoundException: An error occurred (ResourceNotFoundException) when calling the AdminInitiateAuth operation: User pool client 52rXXXXXXXXXXXXXXXXXXge does not exist.

Pour résoudre cette erreur, vérifiez que la ressource en question existe dans votre compte et votre région AWS. Vérifiez ensuite que vous avez correctement spécifié l'ID, le nom ou Amazon Resource Name (ARN) dans votre code Lambda.

ImportModuleError :

Cette erreur est enregistrée lorsque vous essayez d'importer ou de référencer un module qui n'existe pas dans votre code Lambda.

L'erreur ImportModuleError ressemble à ce qui suit :

[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named lambda_function

Pour résoudre cette erreur, vérifiez que le module que vous essayez d'importer dans votre code ne contient aucune faute de frappe ou aucune référence de module inexistante.

Erreurs d'importation de fichiers CSV

En-têtes inattendus :

Cette erreur est enregistrée en cas de problème lié à des en-têtes manquants ou mal formatés spécifiés dans votre fichier CSV.

L'erreur d'en-tête inattendue ressemble à ce qui suit :

The header in the CSV file does not match the expected headers. Use the GetCSVHeader API to get the expected headers.

Afin de corriger cette erreur, procédez comme suit :

Obtenez la liste des en-têtes corrects en exécutant la commande suivante, où USER_POOL_ID est le groupe d'utilisateurs dans lequel vous allez importer des utilisateurs :

aws cognito-idp get-csv-header --user-pool-id "USER_POOL_ID"

Vous pouvez également télécharger l'en-tête du fichier CSV à l'aide de la console Amazon Cognito. Pour plus d'informations, consultez la section Téléchargement de l'en-tête du fichier CSV (console).

Utilisateur ayant échoué ou ignoré :

Cette erreur est enregistrée en cas de problème lié à des références utilisateur dupliquées ou lorsque les champs obligatoires sont manquants dans votre fichier CSV. Par exemple, email_verified ou cognito:mfa_enabled.

L'erreur utilisateur ayant échoué ou ignoré ressemble à ce qui suit :

Too many users have failed or been skipped during the import.

Pour résoudre cette erreur, assurez-vous de supprimer les utilisateurs dupliqués du fichier CSV et assurez-vous que les attributs requis sont spécifiés. Pour plus d'informations, consultez Création du fichier CSV d'importation utilisateur.

La tâche d'importation a expiré :

Cette erreur est enregistrée lorsque vous créez une tâche, mais que vous ne la démarrez pas dans les 24 à 48 heures.

L'erreur d'expiration de la tâche d'importation ressemble à ce qui suit :

The user import job has expired.

Pour résoudre ce problème, lancez une tâche d'importation utilisateur à l'aide de la commande suivante :

aws cognito-idp start-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"

Vous pouvez également démarrer le travail à l'aide de la console Amazon Cognito. Pour plus d'informations, consultez la section Importation d'utilisateurs à partir d'un fichier CSV (console).

Remarque : Une seule tâche d'importation peut être active à la fois pour chaque compte.

Valeur d'attribut non valide :

Cette erreur indique qu'une valeur non valide a été spécifiée pour un attribut dans votre fichier CSV.

L'erreur de valeur d'attribut non valide ressemble à ce qui suit :

The User Record contains an invalid value for [attribute].

Pour résoudre ce problème, vérifiez les valeurs spécifiées pour l'attribut. Pour plus d'informations sur les valeurs d'attributs, telles que le format approprié pour les numéros de téléphone, consultez la section Attributs du groupe d'utilisateurs.

Autorisation manquante pour le rôle CloudWatch Logs :

Cette erreur indique que le rôle CloudWatch Logs spécifié pour le processus d'importation CSV présente l'un des problèmes suivants :

  • Autorisations manquantes, telles que la création d'un groupe de journaux ou de flux de données.
  • Politique de relation de confiance avec un principe non valide.

L'erreur d'autorisation manquante dans le rôle CloudWatch Logs ressemble à la suivante :

Le rôle CloudWatch Logs configuré ne dispose pas d'autorisations ou possède une politique de confiance non valide.

Pour résoudre ce problème, assurez-vous que les autorisations d'identité sont autorisées pour les actions CloudWatch. Assurez-vous également que cognito-idp.amazonaws.com est autorisé en tant que principal de service dans la politique de relation de confiance. Pour plus d'informations, consultez la section Création du rôle IAM CloudWatch Logs.


AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an