我有一个非常简单的用于认知用户池的 terraform 文件:
provider "aws" {
region = "us-east-1" # Specify your desired region
}
resource "aws_cognito_user_pool" "main_user_pool" {
name = "main_user_pool"
account_recovery_setting {
recovery_mechanism {
name = "verified_email"
priority = 1
}
recovery_mechanism {
name = "verified_phone_number"
priority = 2
}
}
# Define the attributes for the user pool
schema {
name = "email"
attribute_data_type = "String"
mutable = true
required = true
}
password_policy = {
minimum_length = 6
require_lowercase = true
require_numbers = true
require_symbols = true
require_uppercase = true
}
email_configuration {
email_sending_account = "COGNITO_DEFAULT"
}
auto_verified_attributes = ["email"]
username_attributes = ["email"]
username_configuration {
case_sensitive = true
}
schema {
name = "password"
attribute_data_type = "String"
mutable = true
required = true
}
}
跑步
terraform plan
给我:
Error: Unsupported argument
│
│ on cognitoPool.tf line 29, in resource "aws_cognito_user_pool" "main_user_pool":
│ 29: password_policy = {
│
│ An argument named "password_policy" is not expected here. Did you mean to define a block of type "password_policy"?
这没有意义,因为 1. 我可以在 documentation 中看到这是一个有效的参数块,并且 2. 错误表明
password_policy
不是预期的,所以我应该尝试 password_policy
?是一样的吗?
Terraform-provider-aws_v5.36.0_x5 是我的 terraform 版本。
来自文档:
(可选)配置 block 以获取有关用户池密码策略的信息。
password_policy
是一个块不是参数,所以它应该是(没有=
):
password_policy {
minimum_length = 6
require_lowercase = true
require_numbers = true
require_symbols = true
require_uppercase = true
}