我有一个名为cognito_user_pool
的变量,并定义了两个复活。aws_cognito_identity_pool
要求client_id
参数中的实例 ID 为aws_cognito_user_pool_client
。该 ID 由aws_cognito_user_pool_client.MY_CLIENT_NAME.id
访问,但问题是客户端名称保存在cognito_user_pool
变量中。
我的问题是如何在不对客户端名称进行硬编码的情况下获取 ID。
以下设置不起作用:
resource "aws_cognito_user_pool_client" "example" {
name = var.cognito_user_pool
user_pool_id = aws_cognito_user_pool.pool.id
}
resource "aws_cognito_identity_pool" "main" {
identity_pool_name = var.cognito_user_pool
allow_unauthenticated_identities = false
cognito_identity_providers {
client_id = aws_cognito_user_pool_client[var.cognito_user_pool].id
provider_name = aws_cognito_user_pool.pool.endpoint
server_side_token_check = false
}
}
生产:
Error: Invalid reference
on setup.tf line 26, in resource "aws_cognito_identity_pool" "main":
26: client_id = aws_cognito_user_pool_client[var.cognito_user_pool]
A reference to a resource type must be followed by at least one attribute
access, specifying the resource name.
但客户端名称和客户端 ID 不同。如果它相同,那么您可以使用该变量。
我相信问题是您访问/引用客户端 ID 不正确。
resource "aws_cognito_identity_pool" "main"
中的cognito_identity_providers
块应为:
cognito_identity_providers {
client_id = aws_cognito_user_pool_client.example.id
provider_name = aws_cognito_user_pool.pool.endpoint
server_side_token_check = false
}