Lambdaのruntimeを"nodejs18.x"から"nodejs22.x"に変更してapplyしたところ次のエラーが発生しました。
% terraform apply
╷
│ Error: expected runtime to be one of ["nodejs" "nodejs4.3" "nodejs6.10" "nodejs8.10" "nodejs10.x" "nodejs12.x" "nodejs14.x" "nodejs16.x" "java8" "java8.al2" "java11" "python2.7" "python3.6" "python3.7" "python3.8" "python3.9" "dotnetcore1.0" "dotnetcore2.0" "dotnetcore2.1" "dotnetcore3.1" "dotnet6" "nodejs4.3-edge" "go1.x" "ruby2.5" "ruby2.7" "provided" "provided.al2" "nodejs18.x" "python3.10" "java17" "ruby3.2" "python3.11"], got nodejs22.x
│ 9: runtime = "nodejs22.x"
解決方法
hashicorp/awsのバージョンを上げればapplyできるようになります。
terraform {
required_version = "~> 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.10" # versionを5.10以上に修正する
}
}
}
修正したら既存の「.terraform.lock.hcl」ファイルを削除してterraform initします。
initが終わった後、terraform applyが実行できるようになります。