2

我正在尝试在 OCI 上学习 terraform,我在 terraform-code.tf 文件中编写了一个小代码来创建一个块实例,但是当我运行 terraform 计划时出现以下错误。

data "oci_identity_availability_domain" "ad" {
  compartment_id = "var.tenancy_ocid"
}

Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

data.oci_identity_availability_domain.ad: Refreshing state...

Error: Get https://identity.var.region.oraclecloud.com/20160918/availabilityDomains?compartmentId=ocid1.tenancy.oc1..aaaaaaaa35fzgotfw445uiswdvjcxnxitafa4scy4dmcuifrvvzkxylqga3q: dial tcp: lookup identity.var.region.oraclecloud.com: no such host

  on terraform-code.tf line 46, in data "oci_identity_availability_domain" "ad":
  46: data "oci_identity_availability_domain" "ad" {

我试图从我的 Windows 机器上 ping identity.var.region.oraclecloud.com 但没有运气

ping identity.var.region.oraclecloud.com
Ping request could not find host identity.var.region.oraclecloud.com. Please check the name and try again.

我相信这是代理的问题,由于某种原因我无法访问 identity.var.region.oraclecloud.com

我在 github 上找到了类似的文章: https ://github.com/terraform-providers/terraform-provider-oci/issues/960

谁能帮我解决这个问题?

4

2 回答 2

1

var.region是一个变量,应该被替换。https://identity.var.region.oraclecloud.com这是正常的,因为它不存在,所以您无法到达。这是现有区域的列表

例如,一个有效的 urlhttps://identity.us-ashburn-1.oraclecloud.com

于 2020-11-23T15:28:57.130 回答
0

为了回答我自己的问题,对 identity.var.region.oraclecloud.com 的 ping 测试并不重要。

如果您收到以下错误,很可能您没有在所需的变量中正确传递您的区域 ocid。要进行故障排除,您可以将变量替换为双引号中的实际 OCID 作为字符串“”

Error: Get https://identity.var.region.oraclecloud.com/20160918/availabilityDomains?compartmentId=ocid1.tenancy.oc1..aaaaaaaa35fzgotfw445uiswdvjcxnxitafa4scy4dmcuifrvvzkxylqga3q: dial tcp: lookup identity.var.region.oraclecloud.com: no such host

  on terraform-code.tf line 46, in data "oci_identity_availability_domain" "ad":
  46: data "oci_identity_availability_domain" "ad" {

对我来说,问题是,我错误地传递了变量信息。使用 TF 0.11 变量信息设置为 tenancy_ocid = "${var.tenancy_ocid}" 使用 TF 0.13 变量信息设置为 tenancy_ocid = "${var.tenancy_ocid}" (旧方法仍然有效,但您会收到警告)

或者对于故障排除,您可以简单地使用tenancy_ocid = ""

我刚开始用 OCI 学习 terraform,周围没有很多有用的帖子。

于 2020-11-23T08:35:39.573 回答