我为Azure LogicApp创建了名为工作流的模块 这是模块:
resource "azurerm_logic_app_workflow" "LogicApp" {
name = "${var.LogicAppName}"
location = "${var.LogicAppLocation}"
resource_group_name = "${var.rgName}"
workflow_schema = "${var.schema}"
}
在workflow_schema
中,我指定了指向包含logicapp配置的文件的路径
在主config.tf
中,我进行了以下设置:
module "workflow" {
source = "./modules/workflow/"
LogicAppName = "LaName"
LogicAppLocation = "${azurerm_resource_group.rg.location}"
rgName = "${azurerm_resource_group.rg.name}"
schema = "${file("./path/to/the/file/LaName")}"
}
因此,当我运行terraform init
和terraform plan
时,一切都很好。
由于我的逻辑应用程序是较早创建的,因此我想将其导入,以便terraform apply不会覆盖它。
我正在运行以下命令,它返回错误:
terraform import module.workflow.azurerm_logic_app_workflow.LogicApp /subscriptions/mySubscriptionID/resourceGroups/myRgName/providers/Microsoft.Logic/workflows/LaName
Error: Import to non-existent module
module.workflow is not defined in the configuration. Please add configuration
for this module before importing into it.
我正在使用以下版本的软件:
Terraform v0.12.13
+ provider.azurerm v1.28.0
如果有人对terraform import
失败的原因有任何想法,请与他们分享。
答案 0 :(得分:1)
我看到了命名问题。
您的模块名为workflow
,在您的配置中,您也将资源命名为workflow
,这应该有所不同。您正在尝试直接导入资源。
示例:
module "workflow-azure" {
source = "./modules/workflow/"
LogicAppName = "LaName"
LogicAppLocation = "${azurerm_resource_group.rg.location}"
rgName = "${azurerm_resource_group.rg.name}"
schema = "${file("./path/to/the/file/LaName")}"
}
然后导入应该是
terraform import module.workflow-azure.azurerm_logic_app_workflow.LogicApp /subscriptions/mySubscriptionID/resourceGroups/myRgName/providers/Microsoft.Logic/workflows/LaName