Terraform - GCP - link 负载均衡器的 IP 地址 linked 到云存储桶
Terraform - GCP - link an ip address to a load balancer linked to a cloud storage bucket
我想要的:
我想要 static.example.com
DNS 记录 link 到 GCS 中包含我的静态图像的存储桶。
当我通过 Cloudflare 管理我的 DNS 时,我想我需要使用 GCP 可以给我一个任播 IP 的事实,link 那个 IP 到 GCP 负载均衡器,那将是 link加入桶
我目前拥有的:
已手动创建的存储桶,名为 "static-images"
负载均衡器link到所述存储桶,使用
创建
resource "google_compute_backend_bucket" "image_backend" {
name = "example-static-images"
bucket_name = "static-images"
enable_cdn = true
}
路由到 link 到我的存储桶
resource "google_compute_url_map" "urlmap" {
name = "urlmap"
default_service = "${google_compute_backend_bucket.image_backend.self_link}"
host_rule {
hosts = ["static.example.com"]
path_matcher = "allpaths"
}
path_matcher {
name = "allpaths"
default_service = "${google_compute_backend_bucket.image_backend.self_link}"
path_rule {
paths = ["/static"]
service = "${google_compute_backend_bucket.image_backend.self_link}"
}
}
}
创建的 ip:
resource "google_compute_global_address" "my_ip" {
name = "ip-for-static-example-com"
}
我缺少的是:
- 从 Web 控制台创建负载均衡器时,terraform 等同于 "frontend configuration"
看起来你只是少了一个 forwarding rule and target proxy。
google_compute_global_forwarding_rule 上的 terraform 文档有一个很好的例子。
例如:
resource "google_compute_global_forwarding_rule" "default" {
name = "default-rule"
target = "${google_compute_target_http_proxy.default.self_link}"
port_range = 80 // or other e.g. for ssl
ip_address = "${google_compute_global_address.my_ip.address}"
}
resource "google_compute_target_http_proxy" "default" { // or https proxy
name = "default-proxy"
description = "an HTTP proxy"
url_map = "${google_compute_url_map.urlmap.self_link}"
}
希望对您有所帮助!
我想要的:
我想要 static.example.com
DNS 记录 link 到 GCS 中包含我的静态图像的存储桶。
当我通过 Cloudflare 管理我的 DNS 时,我想我需要使用 GCP 可以给我一个任播 IP 的事实,link 那个 IP 到 GCP 负载均衡器,那将是 link加入桶
我目前拥有的:
已手动创建的存储桶,名为 "static-images"
负载均衡器link到所述存储桶,使用
创建resource "google_compute_backend_bucket" "image_backend" { name = "example-static-images" bucket_name = "static-images" enable_cdn = true }
路由到 link 到我的存储桶
resource "google_compute_url_map" "urlmap" { name = "urlmap" default_service = "${google_compute_backend_bucket.image_backend.self_link}" host_rule { hosts = ["static.example.com"] path_matcher = "allpaths" } path_matcher { name = "allpaths" default_service = "${google_compute_backend_bucket.image_backend.self_link}" path_rule { paths = ["/static"] service = "${google_compute_backend_bucket.image_backend.self_link}" } } }
创建的 ip:
resource "google_compute_global_address" "my_ip" { name = "ip-for-static-example-com" }
我缺少的是:
- 从 Web 控制台创建负载均衡器时,terraform 等同于 "frontend configuration"
看起来你只是少了一个 forwarding rule and target proxy。
google_compute_global_forwarding_rule 上的 terraform 文档有一个很好的例子。
例如:
resource "google_compute_global_forwarding_rule" "default" {
name = "default-rule"
target = "${google_compute_target_http_proxy.default.self_link}"
port_range = 80 // or other e.g. for ssl
ip_address = "${google_compute_global_address.my_ip.address}"
}
resource "google_compute_target_http_proxy" "default" { // or https proxy
name = "default-proxy"
description = "an HTTP proxy"
url_map = "${google_compute_url_map.urlmap.self_link}"
}
希望对您有所帮助!