# Cloudflare の Terraform v5 プロバイダー、たまった不具合を v5.4.0 で一気に解消！

みんな、しぃちゃんだよ！ 今日は Cloudflare の Terraform プロバイダーまわりのニュースだよ。ちょっと地味に見えるけど、実際に IaC で Cloudflare を運用してる人にはかなり嬉しいアップデートなの。

## なにが発表されたの？

Cloudflare の Changelog で、Terraform v5 プロバイダーの v5.4.0 リリースが発表されたよ。今年の初めに登場した v5 プロバイダー向けに、たまっていたバグをまとめて直した「バグ修正リリース」なんだ。

## 今までどうだったの？

v5 プロバイダーは、これまでの手書きプロバイダーと違って、Cloudflare の REST API の OpenAPI スキーマから自動生成される仕組みに変わったの。でもリリース後、想定より多くの不具合が報告されちゃって、なんと全リソースの約 15% にあたる範囲で問題が起きてたんだって。Cloudflare は社内のあちこちのチームを巻き込んで、地道に直し続けてきたみたい。

## これで何が変わるの？

v5.4.0 では、報告されていた不具合がまとめて修正されたよ。主な変更はこんな感じ。

- `worker_platforms_script_secret` リソースを廃止(Workers / Workers for Platforms 向けの移行ガイドを用意)
- `cloudflare_cloud_connector_rules` の重複フィールドを削除
- `cloudflare_workers_route` の ID 周りの不具合を修正(GitHub の Issue #5134、#5501 に対応)
- `cloudflare_workers_kv` の状態リフレッシュの不具合を修正
- `cloudflare_workers_script` で Assets 使用時に落ちてしまう不具合を修正
- `cloudflare_workers_script` の Workers Logpush 設定が誤って読み取り専用になっていた不具合を修正
- `cloudflare_pages_project` で `source` 使用時に壊れる不具合を修正

すでに v5 を使っていて不具合に悩まされてた人は、プロバイダーを上げるだけで解消するケースが多そうだね。

## 深く潜ってみよう

今回の修正の中でもボリュームが大きいのが、「サポートされていないレスポンス型を持つリソースをリフレッシュすると失敗する」不具合と、「computed が付いていないネストしたプロパティを設定できない」不具合の 2 つ。

レスポンス型のリフレッシュ不具合が直ったのはこのリソースたち。

- `cloudflare_certificate_pack`
- `cloudflare_registrar_domain`
- `cloudflare_stream_download`
- `cloudflare_stream_webhook`
- `cloudflare_user`
- `cloudflare_workers_kv`
- `cloudflare_workers_script`

そしてネストしたプロパティの設定不可バグは、なんと 33 個のリソースにまたがって直されたよ。

- `cloudflare_account`
- `cloudflare_account_dns_settings`
- `cloudflare_account_token`
- `cloudflare_api_token`
- `cloudflare_cloud_connector_rules`
- `cloudflare_custom_ssl`
- `cloudflare_d1_database`
- `cloudflare_dns_record`
- `email_security_trusted_domains`
- `cloudflare_hyperdrive_config`
- `cloudflare_keyless_certificate`
- `cloudflare_list_item`
- `cloudflare_load_balancer`
- `cloudflare_logpush_dataset_job`
- `cloudflare_magic_network_monitoring_configuration`
- `cloudflare_magic_transit_site`
- `cloudflare_magic_transit_site_lan`
- `cloudflare_magic_transit_site_wan`
- `cloudflare_magic_wan_static_route`
- `cloudflare_notification_policy`
- `cloudflare_pages_project`
- `cloudflare_queue`
- `cloudflare_queue_consumer`
- `cloudflare_r2_bucket_cors`
- `cloudflare_r2_bucket_event_notification`
- `cloudflare_r2_bucket_lifecycle`
- `cloudflare_r2_bucket_lock`
- `cloudflare_r2_bucket_sippy`
- `cloudflare_ruleset`
- `cloudflare_snippet_rules`
- `cloudflare_snippets`
- `cloudflare_spectrum_application`
- `cloudflare_workers_deployment`
- `cloudflare_zero_trust_access_application`
- `cloudflare_zero_trust_access_group`

DNS レコードやロードバランサー、R2 バケット、Zero Trust 関連まで、かなり広い範囲のリソースが対象になってるのがわかるね。詳しい変更点は GitHub の [v5.4.0 リリースノート](https://github.com/cloudflare/terraform-provider-cloudflare/releases/tag/v5.4.0) にまとまってるよ。

なお v4 から v5 への移行を検討中の人向けには、[移行ガイド](https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/guides/version-5-upgrade) と、Grit を使った自動移行スクリプトが用意されてるんだって。ただし Terraform モジュールを使っている構成には対応してないから、モジュール利用者は手動での移行が必要になるよ。あと `terraform plan` で事前に差分を確認してから適用するのが推奨されてるの。

## まとめ

- Cloudflare Terraform v5 プロバイダーの v5.4.0 がリリースされ、報告されていたバグがまとめて修正されたよ
- `worker_platforms_script_secret` リソースは廃止、`cloudflare_workers_route` の ID 不具合や `cloudflare_workers_kv` の状態リフレッシュ問題なども解消
- レスポンス型のリフレッシュ不具合(7 リソース)と、ネストプロパティの設定不可バグ(33 リソース)がまとめて直った
- v4 から v5 への移行組には移行ガイドと Grit の自動移行スクリプトも用意されてる(ただしモジュール利用時は手動対応が必要)

すでに Cloudflare を Terraform で運用してる人には、プロバイダーを v5.4.0 に上げる価値があるアップデートだね！
