# Terraform v5.13.0 登場！でも api_token を使ってる人は要注意だよ！

やっほー、しぃちゃんだよ！今日は Cloudflare の Terraform プロバイダのアップデート情報だよ。新しいリソースが増えてうれしいニュースなんだけど、破壊的変更も入ってるから、今日は気合いを入れてお届けするね！

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

Cloudflare の Changelog によると、Terraform プロバイダの新しいバージョン v5.13.0 がリリースされたよ。今年発表された Terraform v5 プロバイダは、コミュニティから多くの Issue が報告されているのを受けて、2〜3 週間おきに安定性改善をリリースする体制を続けているんだって。今回の v5.13 もその一環なの。

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

以前は Issue ひとつひとつに対応する「issue-to-issue」なやり方で修正を進めていたんだけど、今回からは特定のリソースに絞って集中的に安定化させる「resource-per-resource」なアプローチに方針転換したんだって。ただ直すだけじゃなくて、v4 から v5 へ移行しやすい形にすることも狙いに含まれているみたい。

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

今回いちばん大事なお知らせは、`cloudflare_api_token` と `cloudflare_account_token` リソースの破壊的変更だよ。Cloudflare の API 側にあったポリシーの並び順の違いが原因で、`terraform plan` のたびに意味のない差分（config drift）が出てしまう問題があって、それを解消するための変更なの。

変わったポイントはこんな感じだよ。

- ポリシーが Set 型になって、並び順は無視されるようになった（これで並び順起因の drift が起きなくなる）
- ポリシーの `resources` の値は `jsonencode()` でラップする書き方に変わった
- ポリシーブロックから `id`・`name`・`meta` フィールドが削除された

コードで書くとこんなイメージだよ。

```hcl
# 変更前
resources = { "com.cloudflare.api.account.ACCOUNT_ID" = "*" }

# 変更後
resources = jsonencode({ "com.cloudflare.api.account.ACCOUNT_ID" = "*" })
```

この 2 つのリソースを Terraform で管理している人は、アップグレード前に自分の設定を見直して、`jsonencode()` への書き換えが必要になるよ。細かい対応内容は、リリースノートからリンクされているリポジトリの詳細な changelog を確認するのがおすすめなの。

新しいリソース・データソースも 3 つ追加されたよ。

- `cloudflare_connectivity_directory`
- `cloudflare_sso_connector`
- `cloudflare_universal_ssl_setting`

## 深く潜ってみよう

機能面では、Magic Transit Connector がセルフサーブのライセンスキーに対応したり、Worker Version が `content_base64` をサポートしたりと、細かいけど実務で嬉しいアップデートが入ってるよ。`cloudflare_zero_trust_access_application` には `proxy_endpoint` 属性が追加されて、Workers Script Subdomains のインポートにも対応したんだって。

バグ修正も幅広くて、DNS レコードの適用時に矛盾したエラーが出る問題、Pages のドメイン・プロジェクトで意図しない drift が起きる問題、Workers KV のマルチパートリクエストの不具合、Zero Trust のデバイスプロファイルやトンネル設定の drift 問題などが直っているよ。ドキュメント面でも、インポート未対応のリソースはその旨を明記するように整備が進んでいるみたい。

まだ v4 から移行していない人向けには、引き続き安定化フェーズの間は無理に移行を急がなくていいという案内もあるよ。

## まとめ

今回のポイントはこんな感じだよ！

- Terraform v5 プロバイダは 2〜3 週間おきの改善リリース体制を継続中で、v5.13.0 が最新版
- 修正方針が issue-to-issue から resource-per-resource に転換した
- `cloudflare_api_token` と `cloudflare_account_token` に破壊的変更あり。ポリシーが Set 型になり `jsonencode()` が必須に、`id`・`name`・`meta` は削除
- 新リソースとして `cloudflare_connectivity_directory`・`cloudflare_sso_connector`・`cloudflare_universal_ssl_setting` が追加
- Magic Transit Connector のライセンスキー対応や DNS・Pages・Workers KV 周りのバグ修正も多数

API トークンや アカウントトークンを Terraform で管理している人は、アップグレード前に必ず設定を見直してね！新しいリソースを使いたい人にもチェックしてほしいリリースだよ。
