带有 CloudFormation 的 AWS Cognito - 架构属性上的 InvalidParameterException
Posted
技术标签:
【中文标题】带有 CloudFormation 的 AWS Cognito - 架构属性上的 InvalidParameterException【英文标题】:AWS Cognito with CloudFormation - InvalidParameterException on schema sttributes 【发布时间】:2021-01-31 22:21:23 【问题描述】:我正在尝试使用 CloudFormation 创建 Cognito 用户池,但在创建时不断收到以下错误:
Required custom attributes are not supported currently. (Service: AWSCognitoIdentityProviderService; Status Code: 400; Error Code: InvalidParameterException; Request ID: d21bec3f-adca-4c38-a91a-fa59f16a2cdc; Proxy: null)
错误消息说我正在尝试创建自定义属性,但我只是尝试为标准属性指定行为,例如email
、username
和 preferred_username
。
AWS 文档在这里没有多大帮助。有什么线索吗? 请参阅下面的我的 CF 代码:
CognitoUserPool:
Type: AWS::Cognito::UserPool
Properties:
AccountRecoverySetting: # Defines which verified available method a user can use to recover their password when they call ForgotPassword
RecoveryMechanisms:
- Name: "verified_email"
Priority: 1
AdminCreateUserConfig:
AllowAdminCreateUserOnly: False
Policies:
PasswordPolicy:
MinimumLength: 6
RequireLowercase: False
RequireNumbers: False
RequireSymbols: False
RequireUppercase: False
TemporaryPasswordValidityDays: 7
Schema:
- AttributeDataType: "String"
Mutable: False
Name: "email"
Required: True
- AttributeDataType: "String"
Mutable: False
Name: "username"
Required: True
- AttributeDataType: "String"
Mutable: True
Name: "preferred_username"
Required: True
UsernameAttributes: # This user pool property cannot be updated
- "email"
UserPoolName: !Sub "$ProjectName-userPool-$BranchName"
感谢您的帮助, 乔尔
【问题讨论】:
【参考方案1】:所以...在仔细阅读所有内容后,我意识到username
是一种奇怪的属性,因为它不是文档(here)上标准属性列表的一部分,但它总是需要的,如文档中所述:
用户名值是一个单独的属性,与名称属性不同。用户名是注册用户的必填项,用户创建后不能更改。
所以我从模式中取出该属性,认为无论如何它都会存在并且我可能无法更改它的属性。之后,它就可以正常工作了。
【讨论】:
以上是关于带有 CloudFormation 的 AWS Cognito - 架构属性上的 InvalidParameterException的主要内容,如果未能解决你的问题,请参考以下文章
AWS 批处理 cloudformation - “CannotPullContainerError”
AWS - 如何使用 CDK/CloudFormation 将服务链接角色传递给自动缩放组?
尝试通过 Cloudformation 创建 AWS API 网关时出错