You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行Terraform代码时遇hashicorp/server Provider不存在错误求助

问题原因与解决方案

核心错误点

你的代码中**server_side_encryption_configuration**资源类型定义错误:Terraform会根据资源类型的前缀识别对应provider,没有aws_前缀的资源会被默认匹配到hashicorp/server provider,而该provider在官方仓库不存在,因此触发terraform init报错。

正确的S3桶服务端加密配置资源类型应为**aws_s3_bucket_server_side_encryption_configuration**。

修正后的完整代码

Provider配置(无需修改)

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 4.16"
    }
  }

  required_version = ">= 1.2.0"
}

S3桶配置(修正加密资源及引用错误)

resource "aws_s3_bucket" "terraform-state" {
  bucket = "terrafrom-state-992292"
  acl    = "private"
}

resource "aws_s3_bucket_versioning" "versioning-terrafrom-state" {
  bucket = aws_s3_bucket.terraform-state.id
  versioning_configuration {
    status = "Enabled"
  }
}

# 修正资源类型为AWS官方S3加密配置类型
resource "aws_s3_bucket_server_side_encryption_configuration" "ssec_terrafrom-state-992292" {
  bucket = aws_s3_bucket.terraform-state.id

  rule {
    apply_server_side_encryption_by_default {
      kms_master_key_id = aws_kms_key.terrafrom-state-992292-bucket-key.arn
      sse_algorithm     = "aws:kms"
    }
  }
}

resource "aws_s3_bucket_public_access_block" "block" {
  bucket = aws_s3_bucket.terraform-state.id

  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

额外修正说明

代码中还有几处资源引用错误:所有写aws_s3_bucket.terrafrom-state-992292.id的地方,需改为aws_s3_bucket.terraform-state.id——原资源名称是terraform-state,而非桶名。

验证步骤

  1. 替换修正后的代码
  2. 执行terraform init,此时会正常拉取hashicorp/aws provider
  3. 执行terraform providers,确认依赖的provider仅为hashicorp/aws

内容的提问来源于stack exchange,提问作者Peter Jackson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:22:21