首页 > 解决方案 > 导入的 Terraform 模块中的本地引用

问题描述

我在 terraform-modules 项目中的 bitbucket 上有 TF 模块。

在 bitbucket 上的主模块(在 azure/main_module 目录中)中,我有:

azure
  |
  +- sub_module
     main.tf
main_module
     main.tf

main_module/main.tf我有以下文件结构:

azure
   |
   +-general
      |
      +-main.tf
module "my_sub_module" {
    source  = "../azure/sub_module/"
...
}

现在,在另一个项目中,在另一个模块中,我有:

module "credit" {
    source = "git::bitbucket.org:myorg/terraform-modules.git//main_module"
...
}

在另一个项目中运行 tf plan 时出现以下错误:

Error: Unreadable module directory
Unable to evaluate directory symlink: lstat
.terraform/modules/main_module/azure/azure: no such file or directory

当本地引用被替换为 bitbucket 引用时,一切正常。所以看起来好像 main_module 被导入了,但是该项目中的本地引用被解释为导入项目中的本地引用(带有通用模块的那个),然后它找不到其他模块,因为它正在搜索错误的项目?

任何想法如何解决这个问题,同时仍然在导入的项目中使用本地引用?

标签: bitbucketterraform

解决方案


推荐阅读