😖

AzureでTerraformを久しぶりに実行したらエラーになった件

2024/12/08に公開

はじめに

こちらは エーピーコミュニケーションズ Advent Calendar 2024 の 8 日目の記事となります。

結論

AzureでCloud ShellからTerraformを久しぶりに実行したらエラーになりました。
結論としては、azurerm providerでsubscription_idの指定が必要でした。

provider "azurerm" {
  features {}
+  subscription_id = "12345abc-1234-abcd-1234-12345abcdef1"
}

環境

  • Terraform v1.9.5
    r_ota [ ~ ]$ terraform -v 
    Terraform v1.9.5
    on linux_amd64
    + provider registry.terraform.io/hashicorp/azurerm v3.112.0
    
    Your version of Terraform is out of date! The latest version
    is 1.10.1. You can update by downloading from https://www.terraform.io/downloads.html
    r_ota [ ~ ]$ 
    
  • azure-cli 2.65.0
    r_ota [ ~ ]$ az --version
    azure-cli                         2.65.0 *
    
    core                              2.65.0 *
    telemetry                          1.1.0
    
    Extensions:
    ai-examples                        0.2.5
    ml                                2.30.1
    ssh                                2.0.5
    
    Dependencies:
    msal                              1.31.0
    azure-mgmt-resource               23.1.1
    
    Python location '/usr/bin/python3.9'
    Extensions directory '/home/r_ota/.azure/cliextensions'
    Extensions system directory '/usr/lib/python3.9/site-packages/azure-cli-extensions'
    
    Python (Linux) 3.9.19 (main, Aug 23 2024, 00:07:48) 
    [GCC 11.2.0]
    
    Legal docs and information: aka.ms/AzureCliLegal
    
    
    You have 2 update(s) available. They will be updated with the next build of Cloud Shell.
    r_ota [ ~ ]$ 
    

事象と解決

やったこと

下記のtfファイルを使用して、terraform init terraform plan するとエラーがでました。

https://github.com/roota5666/book-contents_azure-x-terraform/blob/main/lesson2/main.tf

  • 実行エラー

    r_ota [ ~ ]$ terraform plan
    
    Planning failed. Terraform encountered an error while generating this plan.
    
    ╷
    │ Error: `subscription_id` is a required provider property when performing a plan/apply operation
    │ 
    │   with provider["registry.terraform.io/hashicorp/azurerm"],
    │   on main.tf line 8, in provider "azurerm":8: provider "azurerm" {
    │ 
    ╵
    r_ota [ ~ ]$ 
    

エラー内容

書くまでもないですが・・

Error: subscription_id is a required provider property when performing a plan/apply operation

訳 エラー:subscription_id は、計画/申請操作の実行時に必須のプロバイダー・プロパティです。

変更点

subscription_id を追加しました。

provider "azurerm" {
  features {}
+  subscription_id = "12345abc-1234-abcd-1234-12345abcdef1"
}

変更箇所調査

変更箇所がどの時点のバージョンから変更されたか?を調査しましたが、「コレ!」というのは見つけられませんでした・・

感想&まとめ

  • 以前動いたコードが動かなくなること・・・ はたまにあること、ですが久しぶりに当たってちょっとハマりました。。
  • エラー文がわかりやすくてよかったです。
  • AzurexTerraform は情報が少ない印象です。。

最後までお読みいただきありがとうございました。

参考サイト

宣伝

AzurexTerraformのZenn本です。こちらもよろしくお願いします。

GitHubで編集を提案

Discussion