如何使用aws cloudformation模板在aws cognito用户池中设置必需的属性?

时间:2017-09-19 14:00:24

标签: amazon-web-services amazon-cloudformation aws-cognito

Aws cognito console screen

使用cloudformation模板创建用户池时,我想添加以下属性(在附加的图像链接中标记)。我在AWS文档中找不到任何有用的东西。

它允许设置als属性,如aws cloudformation cognito documentation中所述。

有人试过这个或对此有任何想法吗?

3 个答案:

答案 0 :(得分:2)

我设法使用AWS :: cognito :: UserPool的架构属性完成了它:

"myApiUserPool": {
  "Type": "AWS::Cognito::UserPool",
  "Properties": {
    "AdminCreateUserConfig": {
      "AllowAdminCreateUserOnly": true
    },
    "Schema": [
      {
        "Mutable": false,
        "Name": "email",
        "Required": true
      },
      {
        "Mutable": false,
        "Name": "family_name",
        "Required": true
      },
      {
        "Mutable": false,
        "Name": "name",
        "Required": true
      }
    ],
    "AutoVerifiedAttributes": [
      "email"
    ],
    "UserPoolName": {
      "Fn::Sub": "myApiUserPool${envParameter}"
    }
  }
}

答案 1 :(得分:1)

这是YAML的示例。

注意:您不能仅更新需要删除用户池并使用新属性再次创建它的属性(只需注释掉池部分并重新部署它)。否则,它将要求一个AttributeDataType,如果包含它,它将创建一个自定义属性而不是标准属性。

CognitoUserPool:
  Type: AWS::Cognito::UserPool
  Properties:
    # Generate a name based on the stage
    UserPoolName: ${self:custom.stage}-cfp-user-pool
    AliasAttributes:
      - phone_number
      - email
      - preferred_username
    Policies:
      PasswordPolicy:
        MinimumLength: 8
    Schema:
      - Name: email
        Required: true
        Mutable: true

答案 2 :(得分:0)

添加@ jWang1并考虑您不想删除具有大量活动用户的用户池,但是您确实需要在注册过程中添加参数,然后您只需添加custom attribute插入模板,并根据您的身份验证库或自定义实现要求实施

要达到此目的的最小参数是:

UserPool:
    Type: AWS::Cognito::UserPool
    Properties:
        Schema:
        -
          Name: <attr name>
          AttributeDataType: Boolean | DateTime | Number | String