kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Terraform AWS Provider v6: deprecated になった aws_region データソースの name プロパティ

Terraform AWS Provider v6 へのバージョンアップを数回やっていて(既に4プロジェクトほどやった💪)そのときによく遭遇するのが aws_region データソースの name プロパティが deprecated になった件で,v6 以降は region プロパティを使う必要がある.

name - (Optional, Deprecated) Full name of the region to select. Use region instead.

たとえば以下のような Terraform コードがあったとする.

data "aws_region" "current" {}

output "region" {
  value = data.aws_region.current.name
}

terraform validate コマンドを実行すると Deprecated attribute という警告が出る🚨

$ terraform validate
╷
│ Warning: Deprecated attribute
│
│   on main.tf line 4, in output "region":
│    4:   value = data.aws_region.current.name
│
│ The attribute "name" is deprecated. Refer to the provider documentation for details.
╵
Success! The configuration is valid, but there were some validation warnings as shown above.

以下のように修正すれば OK👌

data "aws_region" "current" {}

output "region" {
  value = data.aws_region.current.region
}

ちなみに region プロパティは Terraform AWS Provider v5 には実装されてなく,Terraform AWS Provider v6 にアップデートする前に修正できないという課題がある.よって Terraform AWS Provider v5 にも region プロパティをバックポートして欲しいというコメントも出ていた❗️気持ちはわかるな〜という感じ.

github.com