Terraform Google Provider 7.0.0 の新機能と変更点について
こんにちは、クラウドエース 第一開発部の阿部です。
この記事では、メジャーバージョンアップデートされた Terraform Google Provider 7.0.0 の変更点について紹介します。
概要
2025 年 8 月 27 日に、Terraform の Google Cloud 向けプラグイン(Provider)である Terraform Google Provider が 7.0.0 にバージョンアップしました。
なお、本記事執筆時点(2025 年 9 月 8 日)では、 7.1.1 が最新バージョンです。
対象読者
- Terraform で Google Cloud の構築・運用をしているエンジニア
- メジャーバージョン間の非互換が気になる方
出典元のドキュメント
主な変更点
6.0.0 では自動的にリソースラベルが付与される等、比較的大きな変更が加えられましたが、7.0.0 では目立った新機能はありませんでした。
ただし、いくつかのリソースの廃止、属性の廃止・非互換変更がありますので、本ブログ記事ではそれらを中心に紹介します。
また、7.0.0 ではリソースインポートの検証が強化されました。
これまでプロバイダ全体で、入力の一部が適切な形式であっても、全体として不適切なインポート入力を誤って受け入れてしまうリソースが多数存在していました。
今回のメジャーバージョンアップで、全ての Google Cloud リソースにおいてドキュメントに記載されている通りの形式でインポート入力が検証されるようになりました。
リソースインポートの検証改善の補足
インポートの検証ですが、修正されたロジックとしては正規表現によるインポート形式の検証が厳密になったようです。
例えば、 6.49.2 では google_compute_instance リソースのインポートにおいて、 projects/ の前に余計な文字が入っていてもインポートできてしまいました。
terraform import google_compute_instance.test ABprojects/sample-project/zones/asia-northeast1-a/instances/instance-20250904-033018
google_compute_instance.test: Importing from ID "ABprojects/sample-project/zones/asia-northeast1-a/instances/instance-20250904-033018"...
google_compute_instance.test: Import prepared!
Prepared google_compute_instance for import
google_compute_instance.test: Refreshing state... [id=projects/sample-project/zones/asia-northeast1-a/instances/instance-20250904-033018]
しかし、7.0.0 以降では、上記のような誤った形式でインポートしようとするとエラーになります。
terraform import google_compute_instance.test ABprojects/ca-abe-test/zones/asia-northeast1-a/instances/instance-20250904-033018
google_compute_instance.test: Importing from ID "ABprojects/ca-abe-test/zones/asia-northeast1-a/instances/instance-20250904-033018"...
╷
│ Error: Import id "ABprojects/ca-abe-test/zones/asia-northeast1-a/instances/instance-20250904-033018" doesn't match any of the accepted formats: [^projects/(?P<project>[^/]+)/zones/(?P<zone>[^/]+)/instances/(?P<name>[^/]+)$ ^(?P<project>[^/]+)/(?P<zone>[^/]+)/(?P<name>[^/]+)$ ^(?P<name>[^/]+)$]
│
│
これによって、正規表現による検証が厳密になったことで、誤ったプロジェクトやリソースをインポートしてしまうリスクが減少しました。
廃止されたリソース
google_beyondcorp_application
google_beyondcorp_application リソース、および、関連する google_beyondcorp_application_iam_binding、 google_beyondcorp_application_iam_member、google_beyondcorp_application_iam_policy リソースが廃止されました。
また、google_beyondcorp_application_iam_policy データリソースも同様に廃止されました。
これらのリソースの代わりに google_beyondcorp_security_gateway_application リソースを使用してください。
google_notebooks_location
google_notebooks_location は機能しなくなっており、安全に削除可能です。
google_tpu_node
google_tpu_node リソースは廃止されました。代わりに、google_tpu_node_v2 リソースを使用してください。
廃止された属性があるリソース
google_cloud_run_v2_worker_pool
google_cloud_run_v2_worker_pool リソースの template.containers.depends_on 属性が廃止されました。
google_colab_runtime_template
google_colab_runtime_template リソースの post_startup_script_config 属性が廃止されました。
google_compute_subnetwork
google_compute_subnetwork リソースの enable_flow_logs 属性が廃止されました。
代わりに、 log_config ブロックを使用してください。
google_gke_hub_feature_membership
google_gke_hub_feature_membership リソースの configmanagement.binauthz 属性が廃止されました。
google_gke_hub_membership
google_gke_hub_membership リソースの description 属性が廃止されました。
google_memorystore_instance
google_memorystore_instance リソースの allow_fewer_zones_deployment 属性が廃止されました。
ユーザーが設定を変更できないためです。
google_service_account_key Data resource
google_service_account_key データリソースの project 属性が廃止されました。
この引数を設定しても機能しなかったため、安全に削除可能です。
google_vertex_ai_endpoint
google_vertex_ai_endpoint リソースの enable_secure_private_service_connect 属性が廃止されました。
検証強化による非互換リソース
google_cloudfunctions2_function
google_cloudfunctions2_function リソースにおける event_trigger ブロックの event_type 属性が必須になりました。
google_network_services_lb_traffic_extension
google_network_services_lb_traffic_extension リソースの load_balancing_scheme 属性が必須になりました。
google_sql_user
google_sql_user リソースの password_wo 属性を設定した際に、password_wo_version 属性の設定が必須になりました。
google_storage_notification
google_storage_notification リソースの topic 属性において、 projects/{project_id}/topics/{topic_name} 形式で指定することが必須になりました。
これまでは Google API の形式である //pubsub.googleapis.com/projects/{project_id}/topics/{topic_name} のプレフィクス文字列の形式でも設定可能でした。しかし、内部の SDK バージョンの変更により、リソース ID と同じ形式である projects/{project_id}/topics/{topic_name} 形式での指定が必須となりました。
google_storage_transfer_job
google_storage_transfer_job リソースの以下の属性において、 / で始まる文字列を除外する検証が追加されました。
transfer_spec.gcs_data_sink.pathtransfer_spec.gcs_data_source.pathreplication_spec.gcs_data_source.pathreplication_spec.gcs_data_sink.path
google_vertex_ai_index
google_vertex_ai_index リソースの metadata および metadata.config 属性が必須になりました。もともとこれらの属性は API で必須だったため、既存の構成には影響ありません。
その他の非互換リソース
google_alloydb_cluster
google_alloydb_cluster リソースの deletion_protection 属性のデフォルト値が true になりました。
google_apigee_keystores_aliases_key_cert_file
google_apigee_keystores_aliases_key_cert_file リソースの certs_info 属性は読み取り専用になりました。
また、使用されるフレームワークが SDKv2 に移行されました。
google_artifact_registry_repository
google_artifact_registry_repository リソースの public_repository 属性のデフォルト値が削除されました。
既存の構成でデフォルト値に依存している場合は、手動で設定する必要があります。
google_bigquery_table
google_bigquery_table リソースの view.use_legacy_sql 属性のデフォルト値が削除されました。
google_bigtable_table_iam
google_bigtable_table_iam 系リソースの instance 属性が instance_name 属性にリネームされました。
google_billing_budget
google_billing_budget リソースの budget_filter.credit_types および budget_filter.subaccounts 属性はオプショナルになりました。
これまでは、オプショナルでしたが、プロバイダの動作で属性値を削除しても自動的に再設定されていました。
google_cloudfunctions2_function
google_cloudfunctions2_function リソースの service_config.service 属性は読み取り専用になりました。
google_compute_packet_mirroring
google_compute_packet_mirroring リソースの subnetworks および instances 属性は配列ではなく集合(Set)として扱われるようになりました。
google_compute_router
google_compute_router リソースの advertised_ip_ranges 属性はリストから集合(Set)として扱われるようになりました。
google_compute_instance_template, google_compute_region_instance_template
google_compute_instance_template リソース、および、 google_compute_region_instance_template リソースにおける以下の属性は、プロバイダでデフォルト値を設定しなくなりました。代わりに、API のデフォルト値が使用されます。
disk.typedisk.modedisk.interface
google_project_service
google_project_service リソースの disable_on_destroy 属性のデフォルト値が false になりました。
google_secure_source_manager_instance, google_secure_source_manager_repository
google_secure_source_manager_instance リソース、および、 google_secure_source_manager_repository リソースにおける deletion_policy 属性のデフォルト値が DELETE から PREVENT になりました。
google_storage_bucket
google_storage_bucket リソースの retention_period 属性は int 型から string 型に変更されました。
新規リソース
以下の Data Source が追加されました。
google_artifact_registry_npm_packagegoogle_certificate_manager_dns_authorization
また、以下のリソースが追加されました。
google_iap_web_region_forwarding_rule_service_iam_bindinggoogle_iap_web_region_forwarding_rule_service_iam_membergoogle_iap_web_region_forwarding_rule_service_iam_policygoogle_saas_runtime_saas
機能追加・変更
google_cloudbuild_trigger
google_cloudbuild_trigger リソースにおいて、 developer_connect_event_config 属性が追加されました。
google_cloud_tasks_queue
google_cloud_tasks_queue リソースにおいて、 desired_state 属性が追加されました。
google_cloud_run_v2_service
google_cloud_run_v2_service リソースにおいて、 max_instance_count 属性が追加されました。
google_compute_backend_service
google_compute_backend_service リソースにおいて、 params.resource_manager_tags 属性が追加されました。
google_compute_backend_bucket
google_compute_backend_bucket リソースにおいて、 params.resource_manager_tags 属性が追加されました。
google_compute_organization_security_policy
google_compute_organization_security_policy リソースにおいて、 short_name 属性が追加されました。
google_container_cluster
google_container_cluster リソースにおいて、 cluster_autoscaling.default_compute_class_enabled 属性が追加されました。
google_dialogflow_cx_agent
google_dialogflow_cx_agent リソースにおいて、以下の属性が追加されました。
enable_multi_language_traininglockedanswer_feedback_settingspersonalization_settingsclient_certificate_settingsstart_playbooksatisfies_pzssatisfies_pzi
google_lustre_instance
google_lustre_instance リソースにおいて、 リソース作成のタイムアウト値が 20 分から 120 分に変更されました。
google_oracle_database_cloud_vm_cluster
google_oracle_database_cloud_vm_cluster リソースにおいて、 ODB ネットワークに関連する属性値はデフォルト値を API から取得するようになりました。
odb_networkodb_subnetbackup_odb_subnet
google_sql_database_instance
google_sql_database_instance リソースにおいて、 backupdr_backup 属性が追加されました。
この属性を使用すると、Terraform からバックアップからの復元を試みることができます。
※backupdr_backup に記載されているように、この属性による復元は推奨されていません。
google_secure_source_manager_instance
google_secure_source_manager_instance リソースにおける ca_pool 属性がオプショナルになりました。
バグ修正
google_container_node_pool
google_container_node_pool で、 回復不能な taint の状態になった場合に、ノードプールの作成が失敗になる問題が修正されました。
google_gkeonprem_vmware_node_pool
google_gkeonprem_vmware_node_pool リソースにおける image 属性は API からデフォルト値を取得するようになりました。
google_workbench_instance
google_workbench_instance リソースの metadata 属性で install-monitoring-agent キーの値が設定可能になりました。
まとめ
Terraform Google Provider 7.0.0 では、多数のリソースの廃止、属性の廃止・非互換変更がありました。
また、リソースインポートの検証が強化され、正規表現による形式チェックが厳密になりました。
Terraform Google Provider は、Google Cloud の機能追加や変更に迅速に対応するため、頻繁に更新されます。
特に、メジャーバージョンアップでは今回のような破壊的な非互換変更が含まれることがあるため、アップグレード前に必ずリリースノートやアップグレードガイドを確認することをお勧めします。
この記事が Terraform Google Provider の最新バージョンへの理解の一助となれば幸いです。
Discussion