Amazon Cognito
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

创建用户导入 .csv 文件

您必须先创建 .csv 文件作为输入,然后才能将现有用户导入用户池中。为此,您需要下载用户导入 .csv 标头信息,然后按照 设置 .csv 文件的格式 中列出的格式要求编辑文件。

使用 AWS 管理控制台 下载 .csv 文件标头

  1. 导航到 Amazon Cognito 控制台,选择 Manage User Pools,然后选择要向其中导入用户的用户池。

  2. 选择 Users 选项卡。

  3. 选择 Import users

  4. 选择 Download CSV header 以获取包含标头行 (您必须在 .csv 文件中添加这一内容) 的 .csv 文件。

使用 CLI 下载 .csv 文件标头

要获取一系列正确的标头,请运行以下 CLI 命令,其中,USER_POOL_ID 是要向其中导入用户的用户池的用户池标识符。

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

示例响应:

{ "CSVHeader": [ "name", "given_name", "family_name", "middle_name", "nickname", "preferred_username", "profile", "picture", "website", "email", "email_verified", "gender", "birthdate", "zoneinfo", "locale", "phone_number", "phone_number_verified", "address", "updated_at", "cognito:mfa_enabled", "cognito:username" ], "UserPoolId": "USER_POOL_ID" }

设置 .csv 文件的格式

下载的用户导入 .csv 标头文件如下所示:

cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled

您需要编辑 .csv 文件,以使文件包含此标头和用户的属性值,并根据以下规则设置格式。

注意

有关属性值 (如电话号码的正确格式) 的更多信息,请参阅配置用户池属性

  • 文件的第一行是已下载的包含用户属性名称的标头行。

  • .csv 文件中列的顺序不重要。

  • 第一行之后的每一行都包含用户的属性值。

  • 标头中的所有列都必须存在,但您不需要在每一列中提供值。

  • 以下属性为必需属性:

    • cognito:username

    • cognito:mfa_enabled

    • email_verifiedphone_number_verified

    • email (如果 email_verifiedtrue)

    • phone_number (如果 phone_number_verifiedtrue)

    • 创建用户池时标记为必需的所有属性

  • 用户池必须至少有一个自动验证属性,要么是 email_verified,要么是 phone_number_verified。每个用户至少有一个自动验证属性必须为 true。如果用户池没有自动验证属性,则导入任务不会启动。如果用户池只有一个自动验证属性,则该属性必须针对每个用户进行验证。例如,如果用户池只有 phone_number 为自动验证属性,则每个用户的 phone_number_verified 值都必须为 true

    注意

    为了便于用户重置密码,用户必须拥有经过验证的电子邮件或电话号码。Amazon Cognito 将包含重置密码代码的消息发送到 .csv 文件中指定的电子邮件或电话号码。如果将消息发送到电话号码,则通过 SMS 发送。

  • 字符串式的属性值应该用引号括起来。

  • 如果属性值包含逗号,则您必须在逗号前使用反斜杠 (\)。这是因为 .csv 文件中的字段用逗号分隔了。

  • .csv 文件内容应采用不含字节顺序标记的 UTF-8 格式。

  • cognito:username 字段是必填项,并且在用户池中必须是唯一的。它可以是任何 Unicode 字符串。但是,它不能包含空格或制表符。

  • birthdate 值 (如果存在) 必须采用 mm/dd/yyyy 格式。也就是说,如果生日日期为 1985 年 2 月 1 日,则必须编码为 02/01/1985。

  • cognito:mfa_enabled 字段为必填字段。如果您已将用户池设置为需要进行多重验证 (MFA),则所有用户的此字段都必须为 true。如果您已将 MFA 设置为关闭,则所有用户的此字段都必须为 false。如果您已将 MFA 设置为可选,则此字段可以是 truefalse,但不能为空。

  • 行的最大长度为 16000 个字符。

  • .csv 文件的最大大小为 100MB。

  • 文件中的最大行 (用户) 数为 500,000,不含标头。

  • updated_at 字段值应为纪元时间 (用秒表示),例如:1471453471。

  • 属性值中的所有前导空格或尾部空格均应去除。

用户导入 .csv 文件的完整示例如下所示:

cognito:username,name,given_name,family_name,middle_name,nickname,preferred_username,profile,picture,website,email,email_verified,gender,birthdate,zoneinfo,locale,phone_number,phone_number_verified,address,updated_at,cognito:mfa_enabled John,,John,Doe,,,,,,,johndoe@example.com,TRUE,,02/01/1985,,,+12345550100,TRUE,123 Any Street,,FALSE Jane,,Jane,Roe,,,,,,,janeroe@example.com,TRUE,,01/01/1985,,,+12345550199,TRUE,100 Main Street,,FALSE