Если у вас уже есть что-то, созданное за пределами Terraform, и вы хотите, чтобы Terraform управлял этим, или хотите узнать, как лучше всего настроить его с помощью Terraform, вы можете использовать команду import
Terraform для любого ресурса, который поддерживаетit.
Итак, если вы создали правило переадресации с именем terraform-test
через консоль Google Cloud и хотите узнать, как оно отображается на ресурс Terraform google_compute_forwarding_rule
тогда вы можете запустить terraform import google_compute_forwarding_rule.default terraform-test
, чтобы импортировать его в файл состояния Terraform.
Если вы затем запустили план, Terraform сообщит вам, что в его состоянии google_compute_forwarding_rule.default
, но ресурс не определен в вашемкод и как таковой он захочет удалить его.
Если вы добавите минимальный конфиг, необходимый для работы плана:
resource "google_compute_forwarding_rule" "default" {
name = "terraform-test"
}
И снова запустите план, Terraform затем скажет вам, чтовещи, которые нужно изменить, чтобы импортированное правило пересылки выглядело как конфигурация, которую вы определили.Предполагая, что вы сделали что-то вроде установки описания в плане балансировки нагрузки, план Terraform покажет что-то вроде этого:
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
~ update in-place
-/+ destroy and then create replacement
Terraform will perform the following actions:
~ google_compute_forwarding_rule.default
description: "This is the description I added via the console" => ""
Plan: 5 to add, 5 to change, 3 to destroy.
Это говорит о том, что Terraform хочет удалить описание правила переадресации, чтобы оно соответствовалоconfig.
Если вы затем обновите определение своего ресурса до чего-то вроде:
resource "google_compute_forwarding_rule" "default" {
name = "terraform-test"
description = "This is the description I added via the console"
}
В плане Terraform появится пустой набор изменений:
No changes. Infrastructure is up-to-date.
This means that Terraform did not detect any differences between your
configuration and real physical resources that exist. As a result, no
actions need to be performed.
На этом этапетеперь вы выровняли свой код Terraform с реальностью ресурса в Google Cloud и должны иметь возможность легко увидеть, что нужно установить на стороне Terraform, чтобы все происходило, как и ожидалось, в консоли Google Cloud.