目前陷入困境,试图建立一个应用客户端'对于通过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"
}
}
以上工作正常,我的用户池已创建。如果有人对如何在同一资源中创建应用客户端有任何想法,我会全力以赴。我开始怀疑这个功能不存在!
答案 0 :(得分:4)
我相信这只是添加到最近的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"]
}
答案 1 :(得分:3)
Terraform目前不支持此功能。
有一个open issue on GitHub已经请求过了(如果你能从这个功能中受益,请大家竖起来)。
在添加支持之前,最好的选择是在创建资源后使用local-exec
配置程序通过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进行身份验证)。
答案 2 :(得分:-1)
创建用户池后,您可以使用create-user-pool-client API在用户池中创建app-client。请参阅API文档:https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolClient.html