我正在尝试在我的 Terraform 代码中使用模块作为依赖项。但即使在提到模块中的特定源路径之后,它也会给出错误 \xe2\x80\x9c 模块目录不存在或无法读取。” 和 \xe2\x80\x9cUnable tovaluing directory \xe2\x80\x93 系统找不到指定的文件。” 谁能告诉我这可能是什么原因。
\n\n我必须管理 3 个不同的环境,每个环境有 3 个不同的后端状态文件。这里每个主文件都调用各自的模块文件。主文件夹由后端配置、资源组的创建和调用模块文件组成
\n\n root\n |\n |-- main \n | |--prod \n | |--dev \n | |--staging\n |-- modules\n | |--prod \n | |--dev \n | |--staging\n
Run Code Online (Sandbox Code Playgroud)\n\n- - - - - - 代码 - - - - - - - - -
\n\n provider "azurerm" {\n version = "=2.2.0"\n features {}\n }\n\n #--- CREATING RESOURCE GROUP PER ENVIRONEMENT\n terraform {\n backend "azurerm" {\n …
Run Code Online (Sandbox Code Playgroud) 我在单独的 yaml 文件中有 kubernetes 配置。我想在运行 terraform 时使用该 yaml 文件,可以吗?如果是,那么如何。
resource "azurerm_monitor_autoscale_setting" "test" {
name = "AutoscaleSetting"
resource_group_name = "${azurerm_resource_group.main.name}"
location = "${azurerm_resource_group.main.location}"
target_resource_id = "${azurerm_app_service_plan.main.id}"
profile {
name = "defaultProfile"
capacity {
default = 1
minimum = 1
maximum = 10
}
rule {
metric_trigger {
metric_name = "Percentage CPU"
metric_resource_id = "${azurerm_app_service_plan.main.id}"
time_grain = "PT1M"
statistic = "Average"
time_window = "PT5M"
time_aggregation = "Average"
operator = "GreaterThan"
threshold = 80
}
scale_action {
direction = "Increase"
type = "ChangeCount"
value = "1"
cooldown = "PT1M"
}
}
rule …
Run Code Online (Sandbox Code Playgroud) azure app-service-environment azure-app-service-plans azure-web-app-service terraform-provider-azure
我想使用一个资源/模块的输出变量作为另一资源/模块的输入。那可能吗?在这里,我希望根目录中“outputs.tf”的输出值用作模块“main.tf”中的输入。
root
|--main.tf
|--vars.tf
|--outputs.tf
|---module
|--main.tf
|--vars.tf
Run Code Online (Sandbox Code Playgroud) 我正在使用模块。这是我的文件结构 - Provisioner 和模块是不同的文件夹。堆栈中的 main.tf 调用模块。
> provisioner
>stack
|--main.tf
|--variables.tf
> module (folder)
|--aks
| |--main.tf
| |--outputs.tf
| |--variables.tf
|
|--postgresql
| |--main.tf
| |--outputs.tf
| |--variables.tf
Run Code Online (Sandbox Code Playgroud)
当我在 provsioner 目录中运行“terraform apply”命令时,预计会在应用完成后返回输出。我没有得到输出。当我运行 'terraform output' 时,我得到-“状态文件要么没有定义输出,要么所有定义的输出都是空的。请在您的配置中使用 output 关键字定义一个输出并运行 terraform refresh 使其可用。如果您正在使用插值,请确认插值不为空”
我想知道为什么会这样?