
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 プロパティをバックポートして欲しいというコメントも出ていた❗️気持ちはわかるな〜という感じ.