【Terraform】【GCP】VMインスタンス作成時に発生したエラーについてメモ
terraformでVMインスタンスを作成使用とした時に何箇所かエラーではまったポイントがあるので、メモを残しておきます。
tfvarsで定義してもvariableでの定義が必要
変数は*.tfvarsに定義することができます。これは、実行時にファイルを指定する必要があるので接続先情報などを入れて環境別で作成したりするといいかもしれません。ただ、ここに変数を書いただけでは使用できないため、 variablesで別途定義する必要があります。ただ、例外はあり、terraform.tfvarsで定義すると指定しなくても読み込んでくれます。
resource のには変数は使えない
resource ブロックで、"gcp-instance-1" に該当する部分を変数で記述したらエラーになったので修正しました。ここを変更しても作成されるVMインスタンスの名前はnameで指定したものになるので問題ありません。
resource "google_compute_instance" "gcp-instance-1" { }
Error: Error asking for user input: Error parsing address 'google_compute_instance.${var.gcp_instance_1}': invalid resource address "google_compute_instance.${var.gcp_instance_1}"
projectにはprojectIDを指定する
provider 情報のブロックにprojectの項目があります。これは、プロジェクト名ではなくプロジェクトIDを記載する項目になります。GCPの画面上部にあるプロジェクト選択画面から確認できます。
Errorメッセージ
* google_compute_instance.gcp-instance-1: Error loading zone 'asia-northeast1-x': googleapi: Error 400: Invalid value '<ProjectName>'. Values must match the following regular expression: '(?:(?:[-a-z0-9]{1,63}\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))', invalidParameter