FAILED_PRECONDITION 尝试创建新的 Google API 项目时

FAILED_PRECONDITION when trying to create a new Google API project

尝试在 https://code.google.com/apis/console

为 Google API 创建新项目时出现错误

我希望这个错误是暂时的,但我已经有几周无法创建新项目了。

错误似乎已经改变,因为它曾经包括服务器 ip 信息和许多其他数据。删除了一些潜在隐私信息的示例:

APPLICATION_ERROR;google.cloudresourcemanager.projects.v1beta1/DeveloperProjects.CreateProject;com.google.apps.framework.request.StatusException: generic::FAILED_PRECONDITION: ;AppErrorCode=9;StartTimeMs=1489595147198;tcp;Deadline(sec)=50.0;ResFormat=UNCOMPRESSED;ServerTimeSec=0.027545452117919922;LogBytes=256;FailFast;EffSecLevel=none;ReqFormat=UNCOMPRESSED;ReqID=removed;GlobalID=removed;Server=ip:port

现在错误短了很多,但似乎仍然与同一原因有关:

com.google.apps.framework.request.StatusException: generic::FAILED_PRECONDITION:

仪表板中的微调器似乎永远旋转,而错误会在几秒钟后出现在警报下方。我尝试了很多项目名称,但都因相同的错误而失败。

我是否缺少某种类型的配额来阻止这种情况发生?配额菜单项要求我 select 一个我没有的项目。

单击错误会将我带到包含以下消息的页面:

You don't have permissions to perform the action on the selected resource.

确保 Google 开发者控制台已为尝试创建项目的用户打开。

Admin.google.com > 应用程序 > 其他 Google 服务 > Google 开发者控制台并为需要它的任何组织或用户打开。

除了@AndrewL 在其解决方案中提供的原因之外,似乎还有另一个可能的原因。

简答:
当我尝试通过 Terraform 将新的 GCP 项目与我们的计费帐户相关联时,我 运行 遇到了同样的错误。我们的计费帐户有 5 个项目的默认限制(我们已经满足),这阻止了新帐户的关联并生成了 Error 400: Precondition check failed., failedPreconditionerror 消息。要修复,我必须先 remove/delete 一个已经关联的项目,然后才能添加新项目。

长答案:
这是我在 Terraform 中遇到的错误消息(已编辑敏感数据和 ID):

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  ~ module.<MY MODULE PATH>.project
      billing_account: "" => "<MY BILLING ACCOUNT ID>"


Plan: 0 to add, 1 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

module.<MY MODULE PATH>.project: Modifying... (ID: <MY PROJECT ID>)
  billing_account: "" => "<MY BILLING ACCOUNT ID>"

Error: Error applying plan:

1 error(s) occurred:

* module.<MY MODULE PATH>.project: 1 error(s) occurred:

* google_project.project: Error setting billing account "<MY BILLING ACCOUNT ID>" for project "projects/<MY PROJECT ID>": googleapi: Error 400: Precondition check failed., failedPrecondition

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure.

我的结算帐户最多只能有 5 个项目。作为测试,我删除了其中一个项目,然后再次 运行 Terraform。然后它成功地将新项目添加到计费帐户。为了仔细检查,我尝试向计费帐户添加另一个新项目(将金额推到 6),然后再次收到相同的错误消息。

直接删除关联项目之一也可以。

按理说,为您的结算帐户的关联项目请求提高限额也可以解决此问题。

另一个可能的原因是组织政策拒绝了 ORG/Folder/project 级别的特定 API。

导致此错误的另一个可能原因是访问 .xlsx 文件。如果您使用 Google 电子表格访问此文件,则需要通过选择顶部文件菜单中的可用选项将 .xlsx 文件保存为 google 工作表。

谢谢

对我来说,错误是有效的,因为我试图从共享的 google 文件夹中读取文件。检查文件所在的驱动器是否是您的驱动器而不是共享驱动器。