我是第一次尝试使用Google Prediction API。
我只是按照 https://developers.google.com/appengine/articles/prediction_service_accounts 文章中给出的步骤进行操作。
我在执行上述文章中的步骤 2.4 时遇到了一个奇怪的问题。
我已按照以下步骤操作。
1) 我在域中创建了一个应用程序 xyz.com 并且我的应用程序的服务帐户名称为"myapp@appspot.gserviceaccount.com"。
2)然后我转到Google API控制台上的"团队"选项卡,并尝试将我的应用程序的服务帐户名称添加到我已激活预测API和Google Cloud Storage的项目中。
将服务帐户添加到项目时,它给我一个错误,说"只有域 xyz.com 中的用户才能添加到项目中"。相同类型的消息也显示在"团队"选项卡的底部。xyz.com 是我的应用程序部署的域。
谁能帮我理解为什么会出现这种消息?是否需要任何网域级管理员设置才能将服务帐号添加到 Google 控制台 API 项目?
问候尼尔扎里
目前,如果您使用 Apps 帐户创建了项目,则只能添加同一域的成员。
你需要做的是从 xxx@gmail.com 帐户(而不是你的应用域帐户)创建一个新项目。然后,您可以同时添加 @appspot.gserviceaccount.com 和 yourself@xyz.com。
我认为您甚至可以在以后添加 yourself@xyz.com 后删除 xxx@gmail.com。如果需要,甚至可以激活 yourself@xyz.com 的计费,而不是 xxx@gmail.com。
自 https://developers.google.com/appengine/docs/python/googlestorage/overview
您可以手动修改存储桶的 ACL:
授予应用程序对存储桶的访问权限的另一种方法是使用 gsutil 实用程序手动编辑和设置存储桶 ACL 和默认对象 ACL:
- 获取存储桶的 ACL 并将其保存到文件中进行编辑:
gsutil getacl gs://mybucket > myAcl.txt
- 将以下条目添加到您刚刚检索的 ACL 文件中:
<条目>
<范围类型>
<电子邮件地址>
your-application-id@appspot.gserviceaccount.com 电子邮件地址>
<权限>
写
权限>
范围类型>条目>
- 如果要将多个应用程序添加到 ACL,请重复上述条目对于每个应用,仅更改电子邮件地址以反映每个应用的服务名称。
- 在存储桶上设置修改后的 ACL:
gsutil setacl myAcl.txt gs://mybucket