无法下载terraform模块

问题描述 投票:-1回答:2

我在terraform / terragrunt中定义了我的应用程序的基础结构。为了能够在不同的环境中部署完整的应用程序,我使用整个应用程序创建了一个模块。但是我一直在:

Error downloading modules: Error loading modules: module xxx: No Terraform configuration files found in directory: .terraform/modules/59ff835a2c7f654267e9f157739ec63a

无法真正找出问题所在

terraform infrastructure infrastructure-as-a-code terragrunt
2个回答
1
投票

如果指示为source的包/目录不包含任何.tf文件,Terraform将生成此消息。

这可能发生的一个原因是,如果source指的是实际包含子目录中的多个模块的包(例如存储库或存档),根目录中没有任何内容。虽然the Standard Module Structure要求在根目录中存在某种“默认”组合模块,而其他子模块则作为该默认值的独立组件,这是一种约定而不是要求,如果需要,包只能包含模块在子目录中。

要引用a module in a subdirectory,请使用特殊的双斜杠//分隔符从子目录路径中拆分包路径。

例如,要访问Terraform Registry中的the modules/consul-cluster subdirectorythe hashicorp/consul/aws module,您的完整source地址将为hashicorp/consul/aws//modules/consul-cluster。类似地,对于git存储库源vpc的子目录git::https://example.com/network.git,您将source设置为git::https://example.com/network.git//vpc

无论您指定哪个目录,都必须包含至少一个用于Terraform的.tf文件才能将其视为有效的Terraform模块。


0
投票

问题是我保留了多个目录结构,例如:security / iam和这些目录中的文件。似乎模块不支持这个,只是一个平面目录结构。最后,我将我的单个模块应用程序保存在一个平面目录中,在“namespacing”文件中有一个前缀。

顺便说一句,这是一个中间重构,直到我可以为应用程序创建更多模块。

© www.soinside.com 2019 - 2024. All rights reserved.