TerraformでDataWarehouseを作成するときにDWUを指定する方法がドキュメントを見た限りではわからなかったので調査しました。
ファイル全体像
dataWarehouseを作成するTerraformファイルの全体像を書きました。今回初めてTerraformを触ってみたが可読性が高くて非常に使いやすいです。
provider "azurerm" { version = "~> 2.1.0" features {} } resource "azurerm_resource_group" "rg" { name = "sample" location = "japaneast" } resource "azurerm_sql_server" "sql" { name = "" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location version = "12.0" administrator_login = "" administrator_login_password = "" } resource "azurerm_sql_database" "sqldw" { name = "" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location server_name = azurerm_sql_server.sql.name requested_service_objective_name = "DW100c" edition = "DataWarehouse" collation = "Japanese_XJIS_100_CI_AS" }
設定値を変更する方法
今回の主題である「TerraformでDataWarehouseを作成するときにDWUを指定する方法」は、azurerm_sql_databaseリソース内部のrequested_service_objective_name部分となります。
requested_service_objective_nameのドキュメントを確認すると次のようになります。DeepLを使った翻訳結果も載せておきます。
requested_service_objective_name - (Optional) The service objective name for the database. Valid values depend on edition and location and may include S0, S1, S2, S3, P1, P2, P4, P6, P11 and ElasticPool. You can list the available names with the cli: shell az sql db list-editions -l westus --edition Standard -o table. For further information please see Azure CLI - az sql db.
.requested_service_objective_name - (オプション) データベースのサービス・オブジェクト名。有効な値はエディションと場所に依存し、S0, S1, S2, S3, P1, P2, P4, P6, P11, ElasticPoolが含まれます。利用可能な名前を cli: shell az sql db list-editions -l westus --edition Standard -o table でリストアップすることができます。詳細はAzure CLI - az sql dbを参照してください。
Azure Resource Manager: azurerm_sql_database - Terraform by HashiCorp
DWUについての記述はないため戸惑うかもしれませんが、この部分を変更することでDWUの値を変更することが出来きます。ちなみに、requested_service_objective_nameはオプション項目であり必須ではないので、DWUを指定しなかった時はDW100cが設定されます。しかし、このデフォルト値がいつ変わるかわからないので明示的に指定したほうが安心かと思います。
DW100c
画像は一部の表示ですが、DW100cに設定したときです。
DW200c
画像は一部の表示ですが、DW200cに設定したときです。 無事に反映されています。
参考
このissueが助けになりました。