我们正在遵循 Google 的说明,将我们拥有的多项 App Engine 标准服务的 Container Registry 迁移到 Artifact Registry。我们不想这样做,但我们必须这样做,因为 Container Registry 即将关闭。
根据谷歌的指南,我们正在执行命令,
gcloud artifacts docker upgrade migrate --projects=projectid
一个项目成功了。
当我们去做下一个项目时,它开始失败:
ERROR: (gcloud.artifacts.docker.upgrade.migrate) RESOURCE_EXHAUSTED: Resource has been exhausted (e.g. check quota).
我等了几个小时并再次尝试,但仍然失败并出现相同的错误。 因此,我进入配额页面并检查:我们没有超出任何配额。我检查了项目配额和组织配额。纳达。
我该如何修复此错误以便我们可以继续迁移?我们有很多服务需要迁移,这对于迁移生产服务来说并不是一个好的体验
这是失败的 http 调用,状态代码为 429(超出配额):
==== request start ====
uri: https://cloudasset.googleapis.com/v1/organizations/xxxx:analyzeIamPolicy?alt=json&analysisQuery.accessSelector.permissions=storage.objects.get&analysisQuery.accessSelector.permissions=storage.objects.list&analysisQuery.accessSelector.permissions=storage.objects.create&analysisQuery.accessSelector.permissions=storage.objects.delete&analysisQuery.resourceSelector.fullResourceName=%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2Fxxxxx
method: GET
我非常确定问题来自策略分析器免费套餐限制。
默认情况下,策略分析器每天限制为 20 个查询:https://cloud.google.com/policy-intelligence/docs/policy-analyzer-overview#pricing
如果您查看迁移命令的日志,它会使用策略分析器来验证存储库上的一些策略:
DEBUG: https://cloudasset.googleapis.com:443 "GET /v1/projects/<PROJECT>:analyzeIamPolicy?alt=json&analysisQuery.accessSelector.permissions=storage.objects.get&analysisQuery.accessSelector.permissions=storage.objects.list&analysisQuery.accessSelector.permissions=storage.objects.create&analysisQuery.accessSelector.permissions=storage.objects.delete&analysisQuery.resourceSelector.fullResourceName=%2F%2Fstorage.googleapis.com%2Fartifacts.<PROJECT>.appspot.com HTTP/1.1" 429 None
使用此错误日志,您可以在策略分析器中重新创建查询,并收到错误消息:
Upgrade to run analysis
You can run 20 queries per day
Try again tomorrow or upgrade to Security Comand Center Premium for unlimited queries.