AWS Cognito с CloudFormation - InvalidParameterException в атрибутах схемы

Я пытаюсь создать пул пользователей Cognito с помощью CloudFormation, но при создании продолжаю получать следующую ошибку:

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}"

Спасибо за вашу помощь, Джоэл


person Joel Barenco    schedule 17.10.2020    source источник


Ответы (1)


Итак ... внимательно прочитав все, я понял, что username - это своего рода странный атрибут, поскольку он не входит в список стандартных атрибутов в документе (здесь), но это всегда необходимо, как указано в документе:

Значение имени пользователя является отдельным атрибутом и не совпадает с атрибутом имени. Имя пользователя всегда требуется для регистрации пользователя, и его нельзя изменить после создания пользователя.

Поэтому я вынул этот атрибут из схемы, думая, что в любом случае он будет там и что я, вероятно, не смогу изменить его свойства. После этого все заработало.

person Joel Barenco    schedule 17.10.2020