首页 > 解决方案 > Terraform - 在文件夹之间共享输出

问题描述

我有以下用于 terraform 的文件夹结构:

地形

--dev
----- main.tf
----- s3
--------- main.tf
--------- s3_create_bucket_1.tf
----- lambda 
---------- main.tf
---------- create_lambda_1.tf

在 create_lambda_1.tf 中,我可以使用在根文件夹 (dev) 中创建的资源的输出。但是,我想知道如何使用在文件夹 s3 中创建的输出(与 lambda 处于同一级别)?

或者更一般地说,我了解最佳实践建议使用文件夹来构建代码。但是我找不到任何关于如何在文件夹之间传递信息的信息?(在上面的示例中,如何动态获取在 s3 文件夹中创建的存储桶的 .arn)

提前致谢。

/Luminita

标签: amazon-s3aws-lambdaterraform

解决方案


您好,忘记文件夹,如果您创建一个输出,它将保存在 tfstate 中,您可以使用

data "terraform_remote_state"

这是一个参考

你可以在任何你想要的地方使用输出例如:

data "terraform_remote_state" "vpc" {
 ...
}

resource "aws_instance" "foo" {
  # ...
  subnet_id = data.terraform_remote_state.vpc.outputs.subnet_id
}

推荐阅读