What's This
既にデプロイされているモニターのTFコードの情報が欲しいことがあるかと思いますが、
その時のまとめです。
terraformerコマンドで取得される方がメジャーなのかなとも思いつつ、今回はterraform importコマンドで取得してみました。
あくまでメモなので、参考にされる場合は、公式ドキュメント等の副読的な感じで読まれると幸いです。
事前準備
init.tfに、キーの情報とか書いていました。
provider "datadog" {
api_key = ""
app_key = ""
}
我早速実行
リファレンスとか参考にすると、このコマンドと引数でいけんじゃね、ということで実行。
https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor#import
$ terraform import datadog_monitor."Datadog Monitor Name" "Datadog Monitor ID"
エラーになった。
$ terraform import datadog_monitor."ec2-error-test" "Datadog Monitor ID"
Error: resource address "datadog_monitor.ec2-error-test" does not exist in the configuration.
Before importing this resource, please create its configuration in the root module. For example:
resource "datadog_monitor" "ec2-error-test" {
# (resource arguments)
}
こんな感じで適当にまずは書いてくれと言われている気がしたので、適当にtfファイル作成して、以下記載。
resource "datadog_monitor" "ec2-error-test" {
# (resource arguments)
}
再度実行すると、通りました。
$ terraform import datadog_monitor."ec2-error-test" "Datadog Monitor ID"
datadog_monitor.ec2-error-test: Importing from ID "Datadog Monitor ID"...
datadog_monitor.ec2-error-test: Import complete!
Imported datadog_monitor
datadog_monitor.ec2-error-test: Refreshing state... [id=Datadog Monitor ID]
Import successful!
The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.
自分の場合は、こんな感じでtfstate.tfに出力されていました。
~中略~
"name": "ec2-error-test",
"new_host_delay": 0,
"no_data_timeframe": 0,
"notify_audit": false,
"notify_no_data": false,
"priority": 0,
"query": ”hogehoge”,
"renotify_interval": 0,
"require_full_window": false,
"restricted_roles": [],
"silenced": {
"*": 0
},
"tags": [],
"threshold_windows": null,
"thresholds": null,
"timeout_h": 0,
"type": "log alert",
"validate": null
Reference
・https://htnosm.hatenablog.com/entry/2017/05/08/090000
・https://www.terraform.io/cli/import
・https://www.terraform.io/cli/commands/import
・https://www.terraform.io/cli/import/usage
・https://www.terraform.io/plugin/sdkv2/resources/import
・https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/monitor#import
参考にさせていただきました。ありがとうございます。