insufficient items for attribute “sku”; must have at least 1

はじめに

この記事で構築しているときにTerraformで出たエラーの対処の備忘録です。

前提

  • Terraform v0.12.1
  • provider.azurerm v1.28.0

構築に含まれているリソースは以下です。

  • App Service
  • App Service plan
  • Container registry
  • Resource group
  • SQL database
  • SQL Server
  • Traffic manager

フォルダ構成などの詳細はこの記事に書きました。

エラー文

terraform planを実行した時に以下のようなエラーが出ました。

Error: insufficient items for attribute "sku"; must have at least 1

対処

このエラーはterraform destroyでインスタンスを削除せずにポータル上で削除したときにローカルのtsftateと実態が一致しないため起こるエラーのようです。
そのため、以下の方法で問題のあるstateだけ削除すれば実行できるようになります。

  1. コード中にskuの記述があるリソースを探索
  2. terraform state listでstateを表示
  3. リソースごとのstateが表示されるので、その中から0で目星をつけていたリソースのstateをterraform state rm [resource name]で削除
  4. terraform planをやり直し

おわりに

この記事で構築しているときにTerraformで出たエラーの対処の備忘録でした。
ポータル上でインスタンス削除せずにちゃんとterraform destroyで削除すれば合わないエラーのはずなので、Terraformのコマンドマスターしていきたいですね……。

参考記事

https://github.com/terraform-providers/terraform-provider-azurerm/issues/3964

FIXER Inc. 佐藤 紗都 (^2)
  • FIXER Inc. 佐藤 紗都 (^2)
  • 2019年に新卒でFIXERに入社しました。今はMaaSに関する事業に携わりつつ、最近はPower PlatformとAzure勉強中です。趣味はアニメなので、こっそりブログネタに絡めています。最近の推しはプロメアです。

%d人のブロガーが「いいね」をつけました。