google_compute_url_map

Manages a URL Map resource within GCE. For more information see the official documentation and API.

Example Usage

resource "google_compute_url_map" "foobar" {
  name        = "urlmap"
  description = "a description"

  default_service = "${google_compute_backend_service.home.self_link}"

  host_rule {
    hosts        = ["mysite.com"]
    path_matcher = "allpaths"
  }

  path_matcher {
    name            = "allpaths"
    default_service = "${google_compute_backend_service.home.self_link}"

    path_rule {
      paths   = ["/home"]
      service = "${google_compute_backend_service.home.self_link}"
    }

    path_rule {
      paths   = ["/login"]
      service = "${google_compute_backend_service.login.self_link}"
    }
  }

  test {
    service = "${google_compute_backend_service.home.self_link}"
    host    = "hi.com"
    path    = "/home"
  }
}

resource "google_compute_backend_service" "login" {
  name        = "login-backend"
  port_name   = "http"
  protocol    = "HTTP"
  timeout_sec = 10
  region      = "us-central1"

  health_checks = ["${google_compute_http_health_check.default.self_link}"]
}

resource "google_compute_backend_service" "home" {
  name        = "home-backend"
  port_name   = "http"
  protocol    = "HTTP"
  timeout_sec = 10
  region      = "us-central1"

  health_checks = ["${google_compute_http_health_check.default.self_link}"]
}

resource "google_compute_http_health_check" "default" {
  name               = "test"
  request_path       = "/"
  check_interval_sec = 1
  timeout_sec        = 1
}

Argument Reference

The following arguments are supported:

  • default_service - (Required) The URL of the backend service to use when none of the given rules match. See the documentation for formatting the service URL here

  • name - (Required) A unique name for the resource, required by GCE. Changing this forces a new resource to be created.


  • description - (Optional) A brief description of this resource.

  • host_rule - (Optional) A list of host rules. See below for configuration options.

  • path_matcher - (Optional) A list of paths to match. See below for configuration options.

  • project - (Optional) The project in which the resource belongs. If it is not provided, the provider project is used.

  • test - (Optional) The test to perform. See below for configuration options.

The host_rule block supports: (This block can be defined multiple times).

  • hosts (Required) - A list of hosts to match against. See the documentation for formatting each host here

  • description - (Optional) An optional description of the host rule.

  • path_matcher - (Required) The name of the path_matcher (defined below) to apply this host rule to.

The path_matcher block supports: (This block can be defined multiple times)

  • default_service - (Required) The URL for the backend service to use if none of the given paths match. See the documentation for formatting the service URL here

  • name - (Required) The name of the path_matcher resource. Used by the host_rule block above.

  • description - (Optional) An optional description of the host rule.

The path_matcher.path_rule sub-block supports: (This block can be defined multiple times)

  • paths - (Required) The list of paths to match against. See the documentation for formatting these here

  • default_service - (Required) The URL for the backend service to use if any of the given paths match. See the documentation for formatting the service URL here

The optional test block supports: (This block can be defined multiple times)

  • service - (Required) The service that should be matched by this test.

  • host - (Required) The host component of the URL being tested.

  • path - (Required) The path component of the URL being tested.

  • description - (Optional) An optional description of this test.

Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

  • fingerprint - The unique fingerprint for this resource.

  • id - The GCE assigned ID of the resource.

  • self_link - The URI of the created resource.