🔥

Terraformで"-backend-config"指定時,"Missing backend configuration"警告が出た時

2022/06/19に公開

事象サマリ

以下のような構成で,

.
├── backendconfig.tf
├── terraform.tfvars
└── vpc
    ├── main.tf
    ├── outputs.tf
    ├── var.tf
    └── vpc.tf

vpc配下で

terraform init \
  -upgrade \
  -reconfigure \
  -backend-config=../backendconfig.tf \
  -var-file=../terraform.tfvars

を実行したら以下が出た(正常initができない).

│ Warning: Missing backend configuration
│
│ -backend-config was used without a "backend" block in the configuration.
│
│ If you intended to override the default local backend configuration,
│ no action is required, but you may add an explicit backend block to your
│ configuration to clear this warning:
│
│ terraform {
│   backend "local" {}
│ }
│
│ However, if you intended to override a defined backend, please verify that
│ the backend configuration is present and valid.

が出た.

警告発生時の設定状況

backendconfig.tf

BackendにはS3を指定しているので,以下のような状態.

bucket = "<S3 Bucket名>"
region = "<Region名>"
key = "<tfstateファイル名>"
encrypt = true

vpc.tf

provider "aws" {
  region = var.region
}
module "vpc" {
  source = "terraform-aws-modules/vpc/aws"
  name = var.name
  cidr = var.cidr
  count = length(var.azs)
...以下略

解決策

結論としては,上記vpc.tfに以下のディレクティブを追加することで正常にinitできた.

terraform {
  backend "s3" {}
}

参考

バックエンドの種類は異なるが,以下で行われているやり取りから手掛かりを得た.

Warning: Missing terraform backend block instead of an error. #990

Discussion