繁体   English   中英

等待创建 DomainMapping 时出错:资源处于失败状态 state“Ready:False”,消息:路由 XXX 不存在

[英]Error waiting to create DomainMapping: resource is in failed state "Ready:False", message: Route XXX does not exist

我正在使用此 Terraform 代码创建 Cloud Run 服务和域映射:

resource "google_cloud_run_service" "order" {
    autogenerate_revision_name = false
    location                   = "asia-southeast1"
    name                       = "order"
    project                    = "mycompany"

    template {
        spec {
            containers {
                args    = []
                command = []
                image   = "asia.gcr.io/mycompany/order:1.1.11"

                ports {
                    container_port = 7075
                }

                resources {
                    limits   = {
                        "cpu"    = "1000m"
                        "memory" = "2048Mi"
                    }
                    requests = {}
                }
            }
        }
    }
}

resource "google_cloud_run_domain_mapping" "order" {
  location = var.region
  name     = "order.${var.public_domain}"
  metadata {
    namespace = var.project_id
  }
  spec {
    route_name = "order"
  }
}

当我应用该代码时,第一次应用失败。

错误:等待创建 DomainMapping 时出错:资源处于失败状态 state“Ready:False”,消息:路由顺序不存在。

然后在等待几分钟后我重新申请并且没有错误地完成。 我认为这是因为第一次应用资源google_cloud_run_service还没有准备好。

所以我的问题是我们如何配置google_cloud_run_domain_mapping的资源创建等待首先创建google_cloud_run_service

如果您查看google_cloud_run_domain_mapping资源文档中的示例,您会发现它们引用了google_cloud_run_service资源的 output:

resource "google_cloud_run_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  metadata {
    namespace = "my-project-name"
  }

  template {
    spec {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/hello"
      }
    }
  }
}

resource "google_cloud_run_domain_mapping" "default" {
  location = "us-central1"
  name     = "verified-domain.com"

  metadata {
    namespace = "my-project-name"
  }

  spec {
    route_name = google_cloud_run_service.default.name
  }
}

这允许 Terraform 意识到这两个资源之间存在依赖顺序,因此它会等到google_cloud_run_service资源先创建后再尝试创建google_cloud_run_domain_mapping资源。

以下这些链接记录了 Terraform 如何在您配置的资源之间构建依赖关系图:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM