Terraform выдаст это сообщение, если пакет/каталог, указанный как source
, не содержит файлов .tf
.
Одна из причин, по которой это может произойти, заключается в том, что source
относится к пакету (например, репозиторию или архиву), который на самом деле содержит несколько модулей в подкаталогах, а в корневом каталоге ничего нет. Хотя Стандартная структура модуля требует наличия своего рода комбинирующий модуль «по умолчанию» в корне, с другими подмодулями, которые затем служат отдельными компонентами этого по умолчанию, что является соглашением, а не требованием, и при желании пакет может содержать только модули в подкаталогах.
Для ссылки на модуль в подкаталоге используйте специальный разделитель с двойной косой чертой //
, чтобы отделить путь пакета от пути к подкаталогу.
Например, для доступа к подкаталогу modules/consul-cluster
a> из модуля hashicorp/consul/aws
в Terraform Registry, ваш полный source
адрес будет hashicorp/consul/aws//modules/consul-cluster
. Точно так же для подкаталога vpc
источника репозитория git git::https://example.com/network.git
вы должны установить source
в git::https://example.com/network.git//vpc
.
Какой бы каталог вы ни указали, он должен содержать хотя бы один файл .tf
, чтобы Terraform считал его действительным модулем Terraform.
person
Martin Atkins
schedule
08.04.2019