创建用户导入 CSV 文件 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建用户导入 CSV 文件

您必须先创建逗号分隔值(CSV,Comma-Separated Value)文件,在其中包含要导入的用户及其属性,然后才能将现有用户导入用户群体中。从用户群体中,您可以检索其标头反映了您的用户群体的属性架构的用户导入文件。然后,您可以插入符合 设置 CSV 文件的格式 中的格式要求的用户信息。

下载 CSV 文件标头(控制台)

使用以下步骤下载 CSV 标头文件。

下载 CSV 文件标头
  1. 转到 Amazon Cognito 控制台。系统可能会提示您输入 Amazon 凭证。

  2. 选择 User Pools(用户池)。

  3. 从列表中选择现有用户池。

  4. 选择 Users(用户)选项卡。

  5. Import users(导入用户)部分中,选择 Create an import job(创建导入作业)。

  6. Upload CSV(上传 CSV)下,选择 template.csv 链接并下载 CSV 文件。

下载 CSV 文件标头(Amazon CLI)

要获取一系列正确的标头,请运行以下 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

      • 每个用户至少有一个自动验证属性必须为 true。自动验证的属性是新用户加入您的用户群体时,Amazon Cognito 自动向其发送验证码的电子邮件地址或电话号码。

      • 用户池必须至少有一个自动验证属性,要么是 email_verified,要么是 phone_number_verified。如果用户池没有自动验证属性,则导入任务不会启动。

      • 如果用户池只有一个自动验证属性,则该属性必须针对每个用户进行验证。例如,如果用户池只有 phone_number 为自动验证属性,则每个用户的 phone_number_verified 值都必须为 true

      注意

      对于重置其密码的用户,用户必须拥有经过验证的电子邮件或电话号码。Amazon Cognito 将包含重置密码代码的消息发送到 CSV 文件中指定的电子邮件或电话号码。如果将消息发送到电话号码,则通过 SMS 消息发送。有关更多信息,请参阅在注册时验证联系人信息

    • email(如果 email_verifiedtrue

    • phone_number(如果 phone_number_verifiedtrue

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

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

  • 如果属性值包含逗号,则您必须在逗号前使用反斜杠 (\)。这是因为 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。

  • 文件中的最大行(用户)数为 500000。此最大值不包括标题行。

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

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

以下列表是没有自定义属性的用户群体的 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 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