带有 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)

错误消息说我正在尝试创建自定义属性,但我只是尝试为标准属性指定行为,例如emailusernamepreferred_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 将服务链接角色传递给自动缩放组?

AWS cloudformation 域名和 API 映射

尝试通过 Cloudformation 创建 AWS API 网关时出错

无法通过 cloudformation 创建具有自动缩放功能的 AWS EMR

将参数添加到 AWS CloudFormation / CodePipeline 堆栈