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

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

Cette section décrit 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.

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

La procédure suivante décrit comment importer les utilisateurs à partir du fichier .csv.

Pour importer des utilisateurs à partir du fichier .csv (console)

  1. Choisissez Create import job (Créer une tâche d'importation).

  2. Saisissez un Job name (Nom de la tâche). Les noms de tâches peuvent contenir des lettres majuscules et minuscules (a-z, A-Z), des chiffres (0-9) et les caractères spéciaux suivants : + = , . @ et -.

  3. Si c'est la première fois que vous créez une tâche d'importation d'utilisateurs, la AWS Management Console crée automatiquement un rôle IAM pour vous. Sinon, choisissez un rôle existant dans la liste Rôle IAM ou laissez la AWS Management Console créer un rôle pour vous.

  4. Choisissez Charger un fichier CSV et sélectionnez le fichier .csv à partir duquel importer les utilisateurs.

  5. Choisissez Créer une tâche.

  6. Pour démarrer la tâche, choisissez Start (Démarrer).

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

Une fois que vous avez créé votre fichier .csv, créez une tâche d'importation d'utilisateurs en exécutant la commande de CLI suivante, où JOB_NAME est le nom que vous choisissez pour la tâche, USER_POOL_ID l'ID du groupe d'utilisateurs dans lequel les nouveaux utilisateurs seront ajoutés et ROLE_ARN l'ARN du rôle que vous avez reçu dans Création du rôle IAM CloudWatch Logs (AWS CLI, API) :

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.

Télé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 à partir 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 télé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 } }