Google Cloud 全球转发:字段资源值无效。IPAddress

dga*_*arg 6 https google-compute-engine google-cloud-platform

我正在尝试为我的 GCP 虚拟机实现 https 支持。为此,我创建了所有负载均衡组件,即实例组、运行状况检查、后端服务、url 映射和目标代理。所有的创建都没有错误。但是现在,当我为最后一步创建全局转发规则时,出现以下错误:

错误:(gcloud.compute.forwarding-rules.create)无法获取资源:-字段“resource.IPAddress”的值无效:“35.xxx.xxx.xxx”。指定的 IP 地址无效。

我正在使用以下命令:

gcloud compute forwarding-rules create fa-global-fwding-rule-1 --target-https-proxy=fa-https-proxy-1 --ports=443  --global --address=35.xxx.xxx.xxx
Run Code Online (Sandbox Code Playgroud)

(IP添加以xxx掩码的数字)

我缺少什么?

我已经通过 http 有一个工作虚拟机实例,我已将其临时地址提升为静态地址(上面是相同的地址 35.xxx.xxx.xxx)

另外,一旦我实现了 https 支持,我希望 http 连接也能继续工作,这样我现有的 api 就不会受到干扰,直到我将它们移至 https

有什么建议/帮助吗?

小智 7

GCP 负载均衡器不会检查您选择的静态 IP 是区域性的还是全球性的。如果您不小心保留了“区域”IP 而不是“全球”IP,则会抛出愚蠢的错误:

字段“resource.IPAddress”的值无效:“35.xxx.xxx.xxx”。指定的 IP 地址无效。


小智 0

我没有发现您的命令有任何问题,如果指定的 IP 地址正在使用或不可用,则大多数情况下由于 IP 冲突而观察到此类错误。转发规则将负载均衡器的 IP 地址映射到将处理请求的目标代理。因此,首先您需要创建 IP 地址。使用以下命令:\n$gcloud 计算地址 create my-address --global

\n\n

然后创建转发规则。您的 HTTPS 负载均衡器需要一个全球(而不是区域)IP 地址。使用这个命令:

\n\n

$gcloud 计算转发规则创建 my-https-forwarding-rule --global\n--address 123.123.123.123 --ip-protocol TCP --port-range 443\n--target-https-proxy my-https-代理人

\n\n

您能否确认您使用的是全球 IP 地址还是区域 IP 地址?

\n\n

对于 HTTP,您需要为 HTTP 创建一个完全独立的目标 HTTP 代理和转发规则。您本质上需要有两个负载均衡器来处理流量,然后实际重定向应用程序中的用户。请注意,我们为 HTTP 转发规则输入了相同的 IP 地址。这使得我们可以在我们的 IP 地址上监听端口 80 和端口 443。

\n