Terraform Can';下载地形模块

Terraform Can';下载地形模块,terraform,infrastructure,infrastructure-as-code,terragrunt,Terraform,Infrastructure,Infrastructure As Code,Terragrunt,我已经在terraform/terragrunt中定义了我的应用程序的基础结构。 为了能够在不同的环境中部署完整的应用程序,我用整个应用程序创建了一个模块。然而,我不断得到: Error downloading modules: Error loading modules: module xxx: No Terraform configuration files found in directory: .terraform/modules/59ff835a2c7f654267e9f157739e

我已经在terraform/terragrunt中定义了我的应用程序的基础结构。 为了能够在不同的环境中部署完整的应用程序,我用整个应用程序创建了一个模块。然而,我不断得到:

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

无法真正找出问题所在

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


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

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


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

如果显示为
源代码的包/目录不包含任何
.tf
文件,Terraform将生成此消息

出现这种情况的一个原因是
源文件
引用的包(例如存储库或存档)实际上在子目录中包含多个模块,而根目录中没有任何模块。虽然要求在根目录中有某种“默认”组合模块,然后其他子模块作为该默认的独立组件,但这是一种约定而不是要求,如果需要,包只能包含子目录中的模块

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

例如,要访问Terraform注册表中的,您的完整
源地址将是
hashicorp/concur/aws//modules/concur cluster
。类似地,对于git存储库的子目录
vpc
,源代码
git::https://example.com/network.git
,您将
源代码设置为
git::https://example.com/network.git//vpc


无论您指定的目录必须包含至少一个TrrFrm的<代码> .tf>代码>文件,以将其视为一个有效的TrRAFRAW模块。

< Pr> TyrFrm将生成此消息,如果指示为<代码>源> <代码>的包/目录不包含任何<代码> .tf>代码>文件。

出现这种情况的一个原因是
源文件
引用的包(例如存储库或存档)实际上在子目录中包含多个模块,而根目录中没有任何模块。虽然要求在根目录中有某种“默认”组合模块,然后其他子模块作为该默认的独立组件,但这是一种约定而不是要求,如果需要,包只能包含子目录中的模块

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

例如,要访问Terraform注册表中的,您的完整
源地址将是
hashicorp/concur/aws//modules/concur cluster
。类似地,对于git存储库的子目录
vpc
,源代码
git::https://example.com/network.git
,您将
源代码设置为
git::https://example.com/network.git//vpc

<>您指定的目录必须至少包含一个TrrFrm的<代码> .tf>代码>文件,以将其视为一个有效的TrRAFRAW模块。