Création et exécution de la tâche d'importation de groupe d'utilisateurs Amazon Cognito - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création et exécution de la tâche d'importation de groupe d'utilisateurs Amazon Cognito

Cette section explique comment créer et exécuter la tâche d'importation de groupe d'utilisateurs à l'aide de la console Amazon Cognito et de l'AWS Command Line Interface (AWS CLI).

Importation d'utilisateurs à partir d'un fichier CSV (console)

La procédure suivante montre comment importer les utilisateurs à partir du fichier CSV.

Pour importer les utilisateurs à partir du fichier CSV (console)
  1. Accédez à la console Amazon Cognito. Il se peut que vous soyez invité à saisir vos informations d'identification AWS.

  2. Choisissez Groupes d'utilisateurs.

  3. Choisissez un groupe d'utilisateurs existant dans la liste.

  4. Sélectionnez l'onglet Utilisateurs.

  5. Dans la section Import users (Importer des utilisateurs), choisissez Create an import job (Créer une tâche d'importation).

  6. Sur la page Create import job (Créer une tâche d'importation), saisissez un nom de tâche.

  7. Choisissez Create a new IAM role (Créer un nouveau rôle IAM) ou Use an existing IAM role (Utiliser un rôle IAM existant).

    1. Si vous avez choisi Create a new IAM role (Créer un nouveau rôle IAM), attribuez un nom à votre nouveau rôle. Amazon Cognito crée alors automatiquement un rôle doté des autorisations et de la relation d'approbation adéquates. Le principal IAM qui crée la tâche d'importation doit disposer des autorisations permettant de créer des rôles IAM.

    2. Si vous avez choisi Use an existing IAM role (Utiliser un rôle IAM existant), choisissez un rôle dans la liste située en dessous de IAM role selection (Sélection du rôle IAM). Ce rôle doit disposer des autorisations et de la politique d'approbation décrites dans Création du rôle IAM CloudWatch Logs.

  8. Choisissez Create job (Créer une tâche) pour soumettre votre tâche, mais démarrez-la plus tard. Choisissez Create and start job (Créer et démarrer une tâche) pour soumettre votre tâche et la démarrer immédiatement.

  9. Si vous avez créé votre tâche mais que vous ne l'avez pas démarrée, vous pouvez la démarrer ultérieurement. Dans l'onglet Users (Utilisateurs), sous Import users (Importer des utilisateurs), choisissez votre tâche d'importation, puis sélectionnez Start (Démarrer). Vous pouvez également soumettre une demande d'API StartUserImportJob à partir d'un kit SDK AWS.

  10. Surveillez la progression de votre tâche d'importation d'utilisateurs dans l'onglet Users (Utilisateurs) sous Import users (Importer des utilisateurs). Si votre tâche échoue, vous pouvez sélectionner la valeur Status (État). Pour plus de détails, sélectionnez View the CloudWatch logs for more details (Consulter les journaux CloudWatch pour plus de détails) et passez en revue les problèmes éventuels dans la console CloudWatch Logs.

Importation d'utilisateurs (AWS CLI)

Les commandes de CLI suivantes sont disponibles pour l'importation des utilisateurs dans un pool d'utilisateurs :

  • create-user-import-job

  • get-csv-header

  • describe-user-import-job

  • list-user-import-jobs

  • start-user-import-job

  • stop-user-import-job

Pour obtenir la liste des options de ligne de commande pour ces commandes, utilisez l'option de ligne de commande help. Par exemple :

aws cognito-idp get-csv-header help

Création d'une tâche d'importation d'utilisateurs

Après avoir créé votre fichier CSV, créez une tâche d'importation d'utilisateurs en exécutant la commande d'interface de ligne de commande suivante, où JOB_NAME est le nom que vous choisissez pour la tâche, USER_POOL_ID est l'ID du groupe d'utilisateurs dans lequel les nouveaux utilisateurs seront ajoutés et ROLE_ARN est l'ARN de rôle que vous avez reçu dans Création du rôle IAM CloudWatch Logs :

aws cognito-idp create-user-import-job --job-name "JOB_NAME" --user-pool-id "USER_POOL_ID" --cloud-watch-logs-role-arn "ROLE_ARN"

La valeur de PRE_SIGNED_URL retournée dans la réponse est valide pendant 15 minutes. Au-delà de ce délai, la valeur expire et vous devez créer une nouvelle tâche d'importation des utilisateurs pour obtenir une nouvelle URL.

Exemple de réponse :
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }

Valeurs d'état pour une tâche d'importation d'utilisateurs

Dans les réponses à vos commandes d'importation d'utilisateurs, vous verrez l'une des valeurs Status suivantes :

  • Created – La tâche a été créée, mais n'a pas démarré.

  • Pending – Un état de transition. Vous avez démarré la tâche, mais elle n'a pas encore commencé à importer les utilisateurs.

  • InProgress – La tâche a démarré et les utilisateurs sont en cours d'importation.

  • Stopping – Vous avez arrêté la tâche, mais la tâche n'a pas encore cessé d'importer les utilisateurs.

  • Stopped – Vous avez arrêté la tâche et la tâche a cessé d'importer les utilisateurs.

  • Succeeded – La tâche a été bien exécutée.

  • Failed – La tâche s'est arrêtée à la suite d'une erreur.

  • Expired – Vous avez créé une tâche, mais n'avez pas commencé la tâche au cours des 24 ou 48 heures écoulées. Toutes les données associées à la tâche ont été supprimées et la tâche ne peut pas être démarrée.

Chargement du fichier CSV

Utilisez la commande curl suivante pour charger le fichier CSV contenant vos données utilisateur sur l'URL présignée que vous avez obtenue de la réponse de la commande create-user-import-job.

curl -v -T "PATH_TO_CSV_FILE" -H "x-amz-server-side-encryption:aws:kms" "PRE_SIGNED_URL"

Dans la sortie de cette commande, recherchez l'expression "We are completely uploaded and fine". Cette expression indique que le fichier a été téléchargé avec succès.

Description d'une tâche d'importation d'utilisateurs

Pour obtenir une description de la tâche d'importation d'utilisateurs, utilisez la commande suivante, où USER_POOL_ID est l'ID du groupe d'utilisateurs et JOB_ID l'ID de la tâche renvoyée lorsque vous avez créé la tâche d'importation d'utilisateurs.

aws cognito-idp describe-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Exemple de réponse :
{ "UserImportJob": { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl": "PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }

Dans l'exemple de sortie précédent, la valeur de PRE_SIGNED_URL est l'URL sur laquelle vous avez chargé le fichier CSV. La valeur de ROLE_ARN correspond à l'ARN du rôle CloudWatch Logs que vous avez reçu lorsque vous avez créé le rôle.

Affichage des tâches d'importation d'utilisateurs

Pour afficher les tâches d'importation d'utilisateurs, utilisez la commande suivante :

aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 2
Exemple de réponse :
{ "UserImportJobs": [ { "Status": "Created", "SkippedUsers": 0, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 }, { "CompletionDate": 1470954227.701, "StartDate": 1470954226.086, "Status": "Failed", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "Too many users have failed or been skipped during the import.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn":"ROLE_ARN", "FailedUsers": 5, "CreationDate": 1470953929.313 } ], "PaginationToken": "PAGINATION_TOKEN" }

Les tâches sont affichées par ordre chronologique, depuis la dernière créée jusqu'à la première créée. La chaîne PAGINATION_TOKEN après la deuxième tâche indique qu'il y a des résultats supplémentaires pour cette commande de liste. Pour afficher les résultats supplémentaires, utilisez l'option --pagination-token comme suit :

aws cognito-idp list-user-import-jobs --user-pool-id "USER_POOL_ID" --max-results 10 --pagination-token "PAGINATION_TOKEN"

Démarrage d'une tâche d'importation d'utilisateurs

Pour démarrer une tâche d'importation d'utilisateurs, utilisez la commande suivante :

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

Une seule tâche d'importation peut être active à la fois par compte.

Exemple de réponse :
{ "UserImportJob": { "Status": "Pending", "StartDate": 1470957851.483, "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957431.965 } }

Arrêt d'une tâche d'importation d'utilisateurs

Pour arrêter une tâche d'importation d'utilisateur alors qu'elle est en cours, utilisez la commande suivante. Une fois que vous avez arrêté la tâche, elle ne peut pas être redémarrée.

aws cognito-idp stop-user-import-job --user-pool-id "USER_POOL_ID" --job-id "JOB_ID"
Exemple de réponse :
{ "UserImportJob": { "CompletionDate": 1470958050.571, "StartDate": 1470958047.797, "Status": "Stopped", "UserPoolId": "USER_POOL_ID", "ImportedUsers": 0, "SkippedUsers": 0, "JobName": "JOB_NAME", "CompletionMessage": "The Import Job was stopped by the developer.", "JobId": "JOB_ID", "PreSignedUrl":"PRE_SIGNED_URL", "CloudWatchLogsRoleArn": "ROLE_ARN", "FailedUsers": 0, "CreationDate": 1470957972.387 } }