gpt4 book ai didi

google-cloud-platform - 如何从 Terraform/Pulumi 访问 Cloud Run 服务 IP 以动态创建 A 记录?

转载 作者:行者123 更新时间:2023-12-04 16:00:06 28 4
gpt4 key购买 nike

我正在使用 Google Cloud Run 和 Pulumi(类似于 Terraform)。我对 Cloud Run 域映射的设置是:

  new gcp.cloudrun.DomainMapping(
`${prefix}-domain-mapping`,
{
location,
name: 'xxx',
metadata: {
namespace: projectId,
},
spec: {
routeName: appService.name,
},
},
{
dependsOn: [appService],
},
)

哪里 appService指向 Cloud Run 服务的一个实例。这成功地创建了一个到 Cloud Run 服务的域映射。

接下来,我将使用记录设置 DNS 区域:

  const zone = new gcp.dns.ManagedZone(`${prefix}-zone`, {
name: `${prefix}-zone`,
dnsName: 'xxx.',
visibility: 'public',
})

const ips = ['xxx', 'xxx', 'xxx', 'xxx']
new gcp.dns.RecordSet(
`${prefix}-a-records`,
{
name: 'xxx.',
managedZone: zone.name,
type: 'A',
ttl: 3600,
rrdatas: ips,
},
{
dependsOn: [zone],
deleteBeforeReplace: true,
},
)

上面的代码有效。我有一个 DNS 区域,其中有四个 A 记录指向 4 个不同的 IP 地址,这些 IP 地址指向 Cloud Run 服务。我的问题是:如何自动化上面硬编码的 IP?我希望为 A 记录动态设置 Cloud Run 的 IP 地址。 ips变量必须指向 Cloud Run 实例的 IP,但我找不到这样做的方法。

或者也许我做的这一切都错了,还有另一种方法可以做到这一点?我的目标是,如果 Cloud Run 服务更新并收到新 IP,DNS 记录也应该自动更新。我不想手动更新地址。

由于 Pulumi 或多或少相当于 Terraform,非常感谢 Terraform 或 Pulumi 中的答案!

最佳答案

由于这个问题同时带有 Pulumi 和 Terraform 标签,这里有一个可能的 Terraform 解决方案:

resource "google_cloud_run_domain_mapping" "example" {
location = "us-central1"
name = "xxx"

metadata {
namespace = local.project_name
}

spec {
route_name = google_cloud_run_service.app.name
}
}

resource "google_dns_managed_zone" "example" {
name = "${local.prefix}-zone"
dns_name = "xxx."
visibility = "public"
}

locals {
dns_records = {
"A" = [
for rr in google_cloud_run_domain_mapping.example.resource_records :
rr.rrdata if rr.type == "A"
]
"AAAA" = [
for rr in google_cloud_run_domain_mapping.example.resource_records :
rr.rrdata if rr.type == "AAAA"
]
}
}

resource "google_dns_record_set" "example" {
for_each = local.dns_records

managed_zone = google_dns_managed_zone.example.name

name = "xxx."
type = each.key
ttl = 3600
rrdatas = each.value
}

关于google-cloud-platform - 如何从 Terraform/Pulumi 访问 Cloud Run 服务 IP 以动态创建 A 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60479206/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com