小编Jos*_*art的帖子

循环依赖地形

我有 terraform 的循环依赖问题。我有一个user_pool调用 lambda 的用户池user_signup_lambda,当用户注册时,它此 lambda 还需要用户池的 Id 作为环境变量。

我的地形看起来像这样

resource "aws_lambda_function" "user_signup_lambda" {
  function_name = "user_signup_lambda"
  filename = var.file_name
  source_code_hash = filebase64sha256(var.file_name)
  handler = var.handler
  runtime = var.runtime
  memory_size = var.memory_size
  timeout = var.timeout
  role = var.iam_role_arn

  environment {
    variables = aws_cognito_user_pool.user_pool.id
  }
}

resource "aws_cognito_user_pool" "user_pool" {
  name = "some-user-pool"

  ....other config

  lambda_config {
     post_confirmation = module.user_signup_lambda.arn
  }
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

Error: Cycle: module.user_signup_lambda.var.environment_variables, module.user_signup_lambda.aws_lambda_function.lambda_function, module.user_signup_lambda.output.arn, aws_cognito_user_pool.user_pool
Run Code Online (Sandbox Code Playgroud)

除了对用户池 ID 进行硬编码之外,还有其他解决办法吗?

amazon-cognito aws-lambda terraform aws-userpools

5
推荐指数
1
解决办法
1719
查看次数