无法移除 Google Cloud Tasks 队列上的应用引擎路由覆盖



我无法让我的云任务队列停止覆盖应用程序引擎服务路由。我通过GCP面板创建了队列,而不是使用queue.yml或其他任何东西。

队列描述:

$ gcloud tasks queues describe import
appEngineRoutingOverride:
host: my-project-id.uc.r.appspot.com
name: projects/my-project-id/locations/us-central1/queues/import
purgeTime: '2021-03-31T00:45:22.941195Z'
rateLimits:
maxBurstSize: 100
maxConcurrentDispatches: 1000
maxDispatchesPerSecond: 500.0
retryConfig:
maxAttempts: 100
maxBackoff: 3600s
maxDoublings: 16
minBackoff: 0.100s
state: PAUSED

尝试用--clear-routing-override清除路由覆盖标志看起来是成功的,但实际上并没有清除标志

$ gcloud tasks queues update import --clear-routing-override
WARNING: You are managing queues with gcloud, do not use queue.yaml or queue.xml in the future. More details at: https://cloud.google.com/tasks/docs/queue-yaml.
Updated queue [import].
$ gcloud tasks queues describe import
appEngineRoutingOverride:
host: my-project-id.uc.r.appspot.com
name: projects/my-project-id/locations/us-central1/queues/import
purgeTime: '2021-03-31T01:15:16.727288Z'
rateLimits:
maxBurstSize: 20
maxConcurrentDispatches: 1000
maxDispatchesPerSecond: 100.0
retryConfig:
maxAttempts: 100
maxBackoff: 3600s
maxDoublings: 16
minBackoff: 0.100s
state: PAUSED

如果我使用--routing-override将路由更改为另一个服务,则更改是成功的,但这意味着我只能让任务指向该队列中的一个特定服务。此外,如果我更改路由,然后单击队列详细信息面板上的Edit Queue,应用程序引擎路由覆盖字段将为空,而不是用我之前指定的服务填充。如果单击保存,appEngineRoutingOverride标志将重置为default服务主机。即使我通过Edit Queue面板更改覆盖选项,刷新,然后重新打开它,服务仍然不会被填充,这意味着如果我更改了一次服务覆盖,而我的团队中有人需要更改另一个设置,如速率限制,那么路由将被重置,事情就会中断。

imgur视频清楚地展示问题

编辑:这已经在GCP问题跟踪器上报告了几次

  • https://issuetracker.google.com/issues/179701687
  • https://issuetracker.google.com/issues/177651361
  • https://issuetracker.google.com/issues/176221773

做了一些挖掘,不要使用could.google.com上的UI来创建或更新队列。

新的将始终有一个指向默认值的host。更新后的会得到一个指向默认值的host。。然后你默默地把你的队伍搞砸了。

使用cli命令创建和更新队列

gcloud tasks queues update mey-new-queue --max-dispatches-per-second=10 --max-concurrent-dispatches=3

根据需要调整标志。此命令可作为追加

(刚刚意识到我把队列搞砸了,我不小心通过web UI更新了它(

最新更新