我刚刚从 HTTP(S) L7 负载均衡器(经典)迁移到新的 HTTP(S) L7 负载均衡器。
我目前有两个后端服务运行良好,并且我正在考虑创建两个后端存储桶 - 但是在创建它们时出现错误。
如果我选择简单主机和路径规则并指定主机、路径和后端存储桶 - 它工作正常。
但是,如果我指定高级主机和路径规则,并提供以下配置:
defaultService: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket
name: matcher2
routeRules:
- matchRules:
- prefixMatch: /
priority: 0
routeAction:
weightedBackendServices:
- backendService: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket
weight: 100
我收到这个神秘的错误
Invalid value for field 'resource': '{ "name": "my-loadbalancer", "hostRule": [{ "host": ["myhost.com"], "pathMatcher": ...'. Invalid resource: URL_MAP/ID.my-loadbalancer
以前有人遇到过这个问题吗?即使我正在创建一个新的后端存储桶,我也会收到此消息。我还尝试使用通过经典负载均衡器创建的旧后端存储桶,但我仍然收到此错误?
任何帮助将不胜感激,谢谢。
这个问题实际上是可行的,只需使用不同的yaml,我相信您尝试的是负载均衡器路由下代码指导中的yaml。我也尝试使用代码指南,但收到一条错误消息,其中未创建负载均衡器。
我使用 url 地图文档作为指导,并提出了此配置,并且它使用高级主机和路径工作。
name: video-matcher
pathRules:
- paths:
- /video/hd
- /video/hd/*
service: projects/project id /global/backendBuckets/bucketname
您遇到的
"Invalid resource"
错误似乎是当为 URL 映射给出的配置实际上不起作用但仍以某种方式通过其静态分析(至少通过云控制台 UI)时 Google 的响应方式。
使用您给出的示例,我认为问题在于
weightedBackendServices
嵌套在 routeAction
下。由于您只路由到一个后端,因此您可以在 RouteRule 上将其定义为 service
。
查看更新的示例:
defaultService: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket
name: matcher2
routeRules:
- matchRules:
- prefixMatch: /
priority: 1
service: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket