小编Dar*_*tle的帖子

如何从位于 Terraform 中不同模块中的另一个 main.tf 文件引用 id 值

有没有办法从位于不同模块的不同 main.tf 文件中的另一个对象引用 id 值?

如果两个资源或对象位于同一个文件中,则只需执行此操作

resource "aws_s3_bucket" "log_bucket" {
  bucket = "my-tf-log-bucket"
  acl    = "log-delivery-write"
}

resource "aws_s3_bucket" "b" {
  bucket = "my-tf-test-bucket"
  acl    = "private"

  logging {
    target_bucket = aws_s3_bucket.log_bucket.id
    target_prefix = "log/"
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以将用于日志记录的target_bucket分配给bucket的idresource "aws_s3_bucket"

现在假设我有两个名为log_module和的文件夹s3_module及其各自的main.tf文件。

main.tflog_module 内部包含

resource "aws_s3_bucket" "log_bucket" {
  bucket = "my-tf-log-bucket"
  acl    = "log-delivery-write"
}
Run Code Online (Sandbox Code Playgroud)

main.tfs3_module 内部包含

resource "aws_s3_bucket" "b" {
  bucket = "my-tf-test-bucket"
  acl    = "private"

  logging {
    target_bucket = "target-bucket"
    target_prefix …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 amazon-web-services terraform infrastructure-as-code

3
推荐指数
1
解决办法
4401
查看次数