我有一个名为cognito_user_pool
的变量,并定义了两个资源。 aws_cognito_identity_pool
在aws_cognito_user_pool_client
参数中需要client_id
的实例ID。 aws_cognito_user_pool_client.MY_CLIENT_NAME.id
访问该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.
答案 0 :(得分:1)
但是客户端名称和客户端ID不同。如果相同,则可以使用该变量。
我认为问题在于您访问/引用的客户端ID错误。
cognito_identity_providers
中的resource "aws_cognito_identity_pool" "main"
块应为:
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
}