大地形态给出错误 无法加载插件架构



我有以下代码,我正在使用它们通过地形在 aws 中创建 s3 存储桶和云前沿,但 terraform 给出了错误。 我正在使用最新版本的 terraform cli exe for Windows。Main.tf请在以下文件中找到 main.tf 代码:

terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "3.70.0"
}
}
}
provider "aws" {
access_key = "${var.aws_access_key}"
secret_key = "${var.aws_secret_key}"
region = "${var.aws_region}"
}
resource "aws_s3_bucket" "mybucket" {
bucket = "${var.bucket_name}"
acl = "public-read"
website {
redirect_all_requests_to = "index.html"
}
cors_rule {
allowed_headers = ["*"]
allowed_methods = ["PUT","POST"]
allowed_origins = ["*"]
expose_headers = ["ETag"]
max_age_seconds = 3000
}
policy = <<EOF
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::${var.bucket_name}/*"
}
]
}
EOF
}
resource "aws_cloudfront_distribution" "distribution" {
origin {
domain_name = "${aws_s3_bucket.mybucket.website_endpoint}"
origin_id   = "S3-${aws_s3_bucket.mybucket.bucket}"
custom_origin_config  {
http_port = 80
https_port = 443
origin_protocol_policy = "match-viewer"
origin_ssl_protocols = ["TLSv1", "TLSv1.1", "TLSv1.2"]
}
}
default_root_object = "index.html"
enabled             = true
custom_error_response {
error_caching_min_ttl = 3000
error_code            = 404
response_code         = 200
response_page_path    = "/index.html"
}
default_cache_behavior {
allowed_methods  = ["DELETE", "GET", "HEAD", "OPTIONS", "PATCH", "POST", "PUT"]
cached_methods   = ["GET", "HEAD"]
target_origin_id = "S3-${aws_s3_bucket.mybucket.bucket}"
forwarded_values {
query_string = true
cookies {
forward = "none"
}
}
viewer_protocol_policy = "allow-all"
min_ttl                = 0
default_ttl            = 3600
max_ttl                = 86400
}
# Restricts who is able to access this content
restrictions {
geo_restriction {
# type of restriction, blacklist, whitelist or none
restriction_type = "none"
}
}
# SSL certificate for the service.
viewer_certificate {
cloudfront_default_certificate = true
}
}

请找到以下错误消息:

Error: Failed to load plugin schemas
│
│ Error while loading schemas for plugin components: Failed to obtain provider schema: Could not load the schema for provider registry.terraform.io/hashicorp/aws: failed to retrieve schema
│ from provider "registry.terraform.io/hashicorp/aws": Plugin did not respond: The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).GetProviderSchema call. The
│ plugin logs may contain more details...

请帮助解决问题,我是地球新手。附言地形规划时生成的此错误

我遇到了同样的问题。错误有点不同。我遵循了HashiCups提供商的示例。

当初始化它无法升级或检测损坏的缓存提供程序时,或者如果您更改了版本但仅运行terraform init时,它会在缓存中找到该版本并决定使用它时,就会发生这种情况。删除地形目录并锁定文件,然后再次初始化terraform init -upgrade

如果你在Apple M1芯片上运行它,你可能还需要设置这个:

export GODEBUG=asyncpreemptoff=1;

https://discuss.hashicorp.com/t/terraform-aws-provider-panic-plugin-did-not-respond/23396 https://github.com/hashicorp/terraform/issues/26104

使用chmod向提供程序授予 exec 权限,可以解决问题。感谢您的文章@dpiada!

例:

chmod +x .terraform/providers/registry.terraform.io/hashicorp/local/2.4.0/linux_amd64/terraform-provider-local_v2.4.0_x5
chmod +x .terraform/providers/registry.terraform.io/hashicorp/azurerm/3.55.0/linux_amd64/terraform-provider-azurerm_v3.55.0_x5

我是terraform的初学者,我遇到了同样的问题,所以我希望这可以有所帮助。我遇到了同样的错误"无法加载插件模式",我把.terraform.lock.hcl.terraform文件弄得一团糟。 这是我所做的

  1. 我在安装 terraform 和 aws 的路径上创建了新项目,它在"桌面"上...... 我不知道这是否必要。
  2. 然后我provider.tf创建了两个新的文件,然后main.tf我输入终端terraform init之后,它将自动生成这些文件:.terraform.terraform.lock.hcl我没有改变他们身上的东西。然后在终端中运行terraform plan

这是我的provider.tf

terraform {
required_providers {
aws = {
source  = "hashicorp/aws"
}
}
}
provider "aws" {
region = "us-east-1"
shared_config_files      = ["~/.aws/config"]
shared_credentials_files = ["~/.aws/credentials"]
profile                  = "terraform-user"
}

这是main.tf

resource "aws_vpc" "vpc" {
cidr_block = "10.123.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "vpc"
}
}

以下是您可能还面临的其他一些问题: 创建provider.tfmain.tf然后在终端中运行terraform init后,您会得到"没有变化",那么您应该在终端中运行命令之前保存文件。

我遇到了同样的问题。

我的问题是在重新安装操作系统后产生的。 为了达到我的解决方案,我也看到了这篇文章:在此处输入链接描述

我用以下步骤解决它

rm -rf .terraform

terraform init -backend-config="profile=##your_aws_profile"

terraform 重新创建文件夹".terraform"并更新您的 AWS 提供商插件。

我今天遇到了类似的问题,我在使用地形规划、应用或销毁命令时遇到了同样的错误。 在寻找简单的解决方案徒劳无功后,我决定运行 terraform init 并解决了错误。我能够运行地形破坏来成功摧毁 52 种资源。唷!

我面临着同样的问题,对我来说,问题是我从分区挂载点启用了"noexec"的/home运行terraform plan

您可以简单地从其他地方运行您的terraform,或者从当前挂载点禁用"noexec":

vi etc/fstab编辑和删除 noexec 标志,请更改

/dev/mapper/VG00-LVhome /home ext4 defaults,noexec,nosuid

/dev/mapper/VG00-LVhome /home ext4 defaults,nosuid

并用mount -o remount /home重新安装/主页

我希望它有所帮助。

我也遇到了这个问题。我以前使用过 Terraform 的time_static资源(链接在这里),运行了一个应用程序,然后不再需要它并将其从我的 Terraform 代码中删除,然后尝试运行计划并收到此错误。

为我修复它的是运行terraform state list,在我的 Terraform 状态下找到time_static资源,然后在time_static资源上terraform state rm,然后删除我的.terraform目录,运行terraform init然后terraform plan,这有效

相关内容

  • 没有找到相关文章

最新更新