解决方案:google 云 SDK 问题:'callers must accept terms of service'

SOLUTION: google cloud sdk issue: 'callers must accept terms of service'

已知问题:

安装 google-cloud-sdk(linux 包或来自 tarball)有一个怪癖,您无法在接受服务条款之前从命令行创建项目。

重现步骤:

  1. 下载 sdk,解压,将文件夹移动到主目录并使用 install.sh
  2. 添加 google sdk 根目录到 PATH
  3. 初始化并登录:$ google init
  4. 从 CL 创建项目:$ gcloud projects create --set-as-default

这将吐出如下错误:

错误:(gcloud.projects.create)操作[cp.5641973328385684887]失败:9:来电者必须接受服务条款

我猜测接受服务条款尚未内置到命令行初始化中。在安装过程中省略这样一个基本步骤应该是非法的,其后果从被一千次击键致死到 'build an operating system in headfuck'...但我就是这样...

我们在最邪恶的地方找到了解决方案:google 云控制界面(云控制台)。

  • 转到your cloud console
  • 通过选择 'select a project'("Google Cloud Platform" 旁边的 top-left,然后选择 'create project'(弹出 window 中的 top-right)来创建一个项目.

这里会提示服务条款协议,您可以在同意服务条款后进行操作。

我希望这能帮助其他偶然发现这个最令人恼火的错误的人。

长命百岁

移位

"death by a thousand key-strokes"我们不要太戏剧化了。这是应该实施的安全措施。安全并不总是很方便,但可以让您的 checking/credit 帐户免去很多麻烦。

想象一下这个理论场景。您为我提供了一个服务帐户,该帐户具有创建项目的角色。我创建一个新项目。此项目是在您的 Google 结算帐户下创建的。我知道我在使用 Google IAM 做什么,所以我将你从新项目中移除并让我自己成为项目所有者。现在您无权访问新项目,但您的信用卡正在为我的项目支付账单。我想你会尖叫 "death by a million key-strokes".

有两种类型的项目:

  • 不属于组织的独立项目。
  • 属于组织的项目。

如果您是 Google 云组织的一员,您可以轻松创建达到配额限制(默认为 5)的项目。无需提示,无需接受 TOS 等。使用 CLI 创建新项目毫不费力。

如果您不属于 Google 云组织,那么您基本上是在创建一个新帐户,您需要设置帐户账单、接受服务条款等。这意味着您不应该使用CLI 创建新项目,因为 CLI 不会提示您输入新项目所需的项目。为什么,CLI 应该使用服务帐户。服务账户不是拥有该账户的 IAM 成员。这会强制您使用您的用户凭据登录到 Google Cloud Console 以创建新项目。

对于在尝试创建 dialogflow 代理时收到此消息的任何人

转到 https://console.cloud.google.com,登录并接受显示的条款和条件。

后来对我有用...