Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services terraform V12:错误导入密钥对:缺少参数:请求必须包含参数PublicKeyMaterial_Amazon Web Services_Import_Terraform_Public Key_Key Pair - Fatal编程技术网

Amazon web services terraform V12:错误导入密钥对:缺少参数:请求必须包含参数PublicKeyMaterial

Amazon web services terraform V12:错误导入密钥对:缺少参数:请求必须包含参数PublicKeyMaterial,amazon-web-services,import,terraform,public-key,key-pair,Amazon Web Services,Import,Terraform,Public Key,Key Pair,运行“terraform apply”时出现错误“import KeyPair:MissingParameter:请求必须包含参数PublicKeyMaterial”。这个错误意味着什么 resource "aws_instance" "ec2_test_instance" { ami = var.instance_test_ami instance_type = var.instance_type subnet_id

运行“terraform apply”时出现错误“import KeyPair:MissingParameter:请求必须包含参数PublicKeyMaterial”。这个错误意味着什么

resource "aws_instance" "ec2_test_instance" {
  ami           = var.instance_test_ami
  instance_type = var.instance_type
  subnet_id     = var.aws_subnet_id
  key_name      = aws_key_pair.deployer.key_name

  tags = {
    Name = var.environment_tag
    }
   provisioner "local-exec" {
    command = "echo ${self.public_ip} > public-ip.txt"
    }
   provisioner "remote-exec" {

     connection {
        type    = "ssh"
        host    = self.public_ip
        user    = "centos"
        private_key   = file("${path.module}/my-key")
        }

    inline = [

        "sudo yum -y install wget, unzip",
        "sudo yum -y install java-1.8.0-openjdk"
    ]
   }
}

假设其他一切都正确,
连接
块应该在它的内部,而不是外部:

resource "aws_instance" "ec2_test_instance" {

  ami           = var.instance_test_ami
  instance_type = var.instance_type
  subnet_id     = var.aws_subnet_id
  key_name      = aws_key_pair.deployer.key_name  


  provisioner "remote-exec" {

    connection {
      type    = "ssh"
      host    = self.public_ip
      user    = "centos"
      private_key   = file("${path.module}/my-key")
    }

    inline = [
        "sudo yum -y install wget, unzip",
        "sudo yum -y install java-1.8.0-openjdk",
     ]
   }
}


假设其他一切都正确,
连接
块应该在它的内部,而不是外部:

resource "aws_instance" "ec2_test_instance" {

  ami           = var.instance_test_ami
  instance_type = var.instance_type
  subnet_id     = var.aws_subnet_id
  key_name      = aws_key_pair.deployer.key_name  


  provisioner "remote-exec" {

    connection {
      type    = "ssh"
      host    = self.public_ip
      user    = "centos"
      private_key   = file("${path.module}/my-key")
    }

    inline = [
        "sudo yum -y install wget, unzip",
        "sudo yum -y install java-1.8.0-openjdk",
     ]
   }
}


使用terraform版本V12在哪里使用连接?你能提供完整的例子吗?你能编辑问题并提供例子吗?@Marcin我用例子编辑了我的问题。感谢您查看iTunes使用的terraform版本V12在哪里使用了
连接
?你能提供完整的例子吗?你能编辑问题并提供例子吗?@Marcin我用例子编辑了我的问题。感谢您查看itI。根据您的建议,我已将连接移动到provisioner中。我发现还有另一个“tf脚本”也在导入“密钥”。这是用户错误。一切正常。Thanks@Anu没问题。很高兴它成功了。如果我的回答有帮助,我们将不胜感激。根据您的建议,我将连接移动到供应器内。我发现还有另一个“tf脚本”也在导入“密钥”。这是用户错误。一切正常。Thanks@Anu没问题。很高兴它成功了。如果我的回答有帮助,我们将不胜感激。