Terraform AWS Cognito App Client



当前卡在泥中,试图通过Terraform为AWS Cognito用户池设置'应用客户端'。这是我的资源:

resource "aws_cognito_user_pool" "notes-pool" {
  name = "notes-pool"
  username_attributes = ["email"]
  verification_message_template {
    default_email_option = "CONFIRM_WITH_CODE"
  }
  password_policy {
    minimum_length    = 10
    require_lowercase = false
    require_numbers   = true
    require_symbols   = false
    require_uppercase = true
  }
  tags {
    "Name"    = "notes-pool"
    "Environment" = "production"
  }
}

上面的工作正常,并且我的用户池被创建。如果有人对如何在同一资源中创建应用程序客户端有任何想法,那么我都是耳朵。我开始怀疑此功能不存在!

我相信这只是添加到Terraform的最新经验中。您可以执行以下操作以将客户端添加到您的用户池中:

 resource "aws_cognito_user_pool_client" "client" {
     name = "client"
     user_pool_id = "${aws_cognito_user_pool.pool.id}"
     generate_secret = true
     explicit_auth_flows = ["ADMIN_NO_SRP_AUTH"]
 }

请参阅此处的文档:AWS_COGNITO_USER_POOL_CLIENT上的Terraform条目

update - 现在由Terraform支持。请参阅 @Cyram的答案。目前,Terraform支持此功能。

在GitHub上有一个空旷的问题,请求此问题(如果您将从此功能中受益,请对其进行大拇指)。

在添加支持之前,最好的选择是在创建资源后,使用local-exec Provisioner通过CLI创建用户池:

resource "aws_cognito_user_pool" "notes-pool" {
  name = "notes-pool"
  username_attributes = ["email"]
  ...
  provisioner "local-exec" {
    command = <<EOF
aws cognito-idp create-user-pool-client 
  --user-pool-id ${aws_cognito_user_pool.notes-pool.id} 
  --client-name client-name 
  --no-generate-secret 
  --explicit-auth-flows ADMIN_NO_SRP_AUTH
EOF
  }
}

请注意,要使用此功能,您必须安装和认证AWS CLI(我使用环境变量与Terraform和AWS CLI进行身份验证)。

创建用户池后,您可以使用create-user-pool-client api在用户池内创建应用程序 - 客户。请参阅API文档:https://docs.aws.amazon.com/cognito-user-indistity-pools/latest/apireference/api_createuserpoolpoolclient.html

相关内容

最新更新