本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
创建用户导入 CSV 文件
您必须先创建逗号分隔值(CSV,Comma-Separated Value)文件,在其中包含要导入的用户及其属性,然后才能将现有用户导入用户群体中。从用户群体中,您可以检索其标头反映了您的用户群体的属性架构的用户导入文件。然后,您可以插入符合 设置 CSV 文件的格式 中的格式要求的用户信息。
下载 CSV 文件标头(控制台)
使用以下步骤下载 CSV 标头文件。
下载 CSV 文件标头
-
转到 Amazon Cognito 控制台
。系统可能会提示您输入 AWS 凭证。 -
选择 User Pools(用户池)。
-
从列表中选择现有用户池。
-
选择 Users(用户)选项卡。
-
在 Import users(导入用户)部分中,选择 Create an import job(创建导入作业)。
-
在 Upload CSV(上传 CSV)下,选择 template.csv 链接并下载 CSV 文件。
下载 CSV 文件标头(AWS 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_verified 或 phone_number_verified
-
每个用户至少有一个自动验证属性必须为
true
。自动验证的属性是新用户加入您的用户群体时,Amazon Cognito 自动向其发送验证码的电子邮件地址或电话号码。 -
用户池必须至少有一个自动验证属性,要么是 email_verified,要么是 phone_number_verified。如果用户池没有自动验证属性,则导入任务不会启动。
-
如果用户池只有一个自动验证属性,则该属性必须针对每个用户进行验证。例如,如果用户池只有 phone_number 为自动验证属性,则每个用户的 phone_number_verified 值都必须为
true
。
注意
对于重置其密码的用户,用户必须拥有经过验证的电子邮件或电话号码。Amazon Cognito 将包含重置密码代码的消息发送到 CSV 文件中指定的电子邮件或电话号码。如果将消息发送到电话号码,则通过 SMS 消息发送。有关更多信息,请参阅在注册时验证联系人信息。
-
-
email(如果 email_verified 为
true
) -
phone_number(如果 phone_number_verified 为
true
) -
创建用户池时标记为必需的所有属性
-
-
字符串式的属性值不 应该用引号括起来。
-
如果属性值包含逗号,则您必须在逗号前使用反斜杠 (\)。这是因为 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 设置为可选,则此字段可以是true
或false
,但不能为空。 -
最大长度为 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