terraform 将资源 id 检索到变量中以用于创建带有环境变量的 lambda

terraform retrieve resource id into variable to use in creation of lambda with environment variables

我正在尝试使用 terraform 来支持 aws cognito,并将创建的资源的一些输出值作为环境变量动态传递给 terraform 也将创建的 lambda 资源。

我有一个使用 cognito 处理身份验证的 lambda 函数,需要 cognito 客户端应用程序 ID 和客户端应用程序密码才能运行。

想知道是否有办法在 terraform 中获取此元数据并在创建 lambda 资源时引用它。

Terraform aws_cognito_user_pool_client 资源,您将使用它通过 Terraform 创建 Cognito 用户池客户端,has those values you mention as outputs。您需要做的就是在您的 Lambda 资源中引用这些值。像这样:

resource "aws_cognito_user_pool_client" "my_app_client" {
 ...
}

resource "aws_lambda_function" "my_lambda_function" { 
 ...

 environment {
  variables = {
    "COGNITO_CLIENT_ID"     = aws_cognito_user_pool_client.my_app_client.id,
    "COGNITO_CLIENT_SECRET" = aws_cognito_user_pool_client.my_app_client.client_secret
  }
 }
}