AWS::Cognito::UserPoolUser - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::Cognito::UserPoolUser

AWS::Cognito::UserPoolUser 资源创建 Amazon Cognito 用户池用户。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::Cognito::UserPoolUser", "Properties" : { "ClientMetadata" : Json, "DesiredDeliveryMediums" : [ String, ... ], "ForceAliasCreation" : Boolean, "MessageAction" : String, "UserAttributes" : [ AttributeType, ... ], "Username" : String, "UserPoolId" : String, "ValidationData" : [ AttributeType, ... ] } }

YAML

Type: AWS::Cognito::UserPoolUser Properties: ClientMetadata: Json DesiredDeliveryMediums: - String ForceAliasCreation: Boolean MessageAction: String UserAttributes: - AttributeType Username: String UserPoolId: String ValidationData: - AttributeType

属性

ClientMetadata

自定义键值对的映射,您可以将其作为注册前 触发器调用的自定义工作流的输入提供。

您可以将 AWS Lambda 函数分配给用户池触发器以创建自定义工作流程。在创建 UserPoolUser 资源并包含 ClientMetadata 属性时,Amazon Cognito 调用分配给注册前 触发器的函数。在 Amazon Cognito 调用该函数时,它传递 JSON 负载,该函数将其作为输入接收。该负载包含 clientMetadata 属性,该属性提供您分配给 ClientMetadata 属性的数据。在 AWS Lambda 的函数代码中,您可以处理 clientMetadata 值以改进工作流程,从而满足您的特定需求。

有关更多信息,请参阅 Amazon Cognito 开发人员指南 中的使用 Lambda 触发器自定义用户池工作流程

注意

在使用 ClientMetadata 参数时,请考虑以下限制:

  • Amazon Cognito 不存储 ClientMetadata 值。该数据仅适用于分配给用户池以支持自定义工作流程的 AWS Lambda 触发器。如果用户池配置不包含触发器,则 ClientMetadata 参数没有任何作用。

  • Amazon Cognito 不验证 ClientMetadata 值。

  • Amazon Cognito 不加密 ClientMetadata 值,因此,不要使用该参数提供敏感信息。

必需:否

类型:Json

Update requires: Replacement

DesiredDeliveryMediums

如果电子邮件将用于发送欢迎消息,则指定 "EMAIL"。如果将使用电话号码,则指定 "SMS"。默认值为 "SMS"。可指定多个值。

必需:否

类型:字符串列表

Update requires: Replacement

ForceAliasCreation

此参数仅在 phone_number_verifiedemail_verified 参数设置为 True 时使用。否则将忽略它。

如果该参数设置为 True,并且在 UserAttributes 参数中指定的电话号码或电子邮件地址已作为其他用户的别名存在,则 API 调用会将该别名从以前的用户迁移到新创建的用户。以前的用户将无法再使用该别名登录。

如果该参数设置为 False,则在别名已存在时,API 将引发 AliasExistsException 错误。默认值为 False

必需:否

类型:布尔值

Update requires: Replacement

MessageAction

要向已存在的用户重新发送邀请消息,并重置用户账户的过期限制,请设置为 "RESEND"。要关闭消息发送,请设置为 "SUPPRESS"。只能指定一个值。

必需:否

类型:字符串

允许的值RESEND | SUPPRESS

Update requires: Replacement

UserAttributes

为将创建的用户设置的用户属性和属性值。这些是名称-值对。您可以在只指定 Username 的情况下创建用户。但是,您指定为必需(在控制台的 https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.htmlAttributes (属性) 选项卡中)的属性必须由您(在对 AdminCreateUser 的调用中)或由用户(在注册时回复您的欢迎消息)提供。

对于自定义属性,您必须在属性名称前面加上 custom: 前缀。

要发送邀请用户注册的消息,您必须指定用户的电子邮件地址或电话号码。可以在对 AdminCreateUser 的调用中或在用于管理用户池的 Amazon Cognito 控制台的 Users (用户) 选项卡中执行此操作。

在对 AdminCreateUser 的调用中,您可以将 email_verified 属性设置为 True,并将 phone_number_verified 属性设置为 True。(您也可以通过调用 https://docs.amazonaws.cn/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html 做到这一点。)

  • email:将向其发送包含代码和用户名的消息的用户的电子邮件地址。这在将 email_verified 属性设置为 True,或在 DesiredDeliveryMediums 参数中指定 "EMAIL" 时是必需的。

  • phone_number:将向其发送包含代码和用户名的消息的用户的电话号码。这在将 phone_number_verified 属性设置为 True,或在 DesiredDeliveryMediums 参数中指定 "SMS" 时是必需的。

必需:否

类型AttributeType 的列表

Update requires: Replacement

Username

用户的用户名。必须在用户池中是唯一的。必须是长度介于 1 到 128 个字符之间的 UTF-8 字符串。在创建用户后,将无法更改用户名。

必需:否

类型:字符串

最低1

最高128

模式[\p{L}\p{M}\p{S}\p{N}\p{P}]+

Update requires: Replacement

UserPoolId

将在其中创建用户的用户池的用户池 ID。

必需:是

类型:字符串

最低1

最高55

模式[\w-]+_[0-9a-zA-Z]+

Update requires: Replacement

ValidationData

用户的验证数据。这是一系列包含可用于自定义验证(例如,限制可以注册的用户账户的类型)的用户属性和属性值的名称/值对。例如,您可以基于用户的域选择允许或不允许用户注册。

要配置自定义验证,您必须为用户池创建一个注册前 Lambda 触发器,如《Amazon Cognito 开发人员指南》中所述。Lambda 触发器接收验证数据,并在验证过程中使用它。

不保留用户的验证数据。

必需:否

类型AttributeType 的列表

Update requires: Replacement

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回用户的名称。例如:admin

For more information about using the Ref function, see Ref.