Google 云项目,它们应该如何作为组织单元工作?

Google Cloud projects, how are they supposed to work as organizational units?

Google 与 "projects" 相关的 Cloud 结构让我很困惑。

一方面,所有 GCP 服务都封装在 "project" 中,对吗?所以我想,好的,我将创建类似 "test"、"stage" 和 "prod" 的项目。我所有的应用程序都可以在 "test" 中进行测试,并最终在准备好上线时移至 "prod"。此外,我可以在测试项目中拥有 SQL、bigquery、bigtable 以及开发人员可以破解的任何其他内容,而不必担心影响生产。

但是每个项目只能有一个 App Engine 应用程序?这是如何运作的?我可以看到在 App Engine 中你有不同的版本,所以如果我每个 App Engine 应用程序都有一个项目,test/staging 机制在该应用程序的项目中,但是其他 GCP 服务呢?

如果我有一个 bigtable 或 bigquery 或存储中的东西,多个应用程序需要访问什么 "project" 我应该把这些东西放进去吗?

我是否仍然有一个 "test"、"stage"、"prod" 项目用于我的服务(我的数据库、存储等所在的位置),但也为每个项目创建单独的项目应用引擎应用程序?

如果多个应用需要访问某些内容,它可以存在于应用的其中一个项目中——这没有意义。

编辑:google 确实有一些关于如何组织项目和服务的好文档 https://cloud.google.com/appengine/docs/python/creating-separate-dev-environments

您可以在一个项目中配置资源以允许访问该项目外的 users/apps。例如,请参阅 Setting ACLs,了解如何允许多个项目访问一个 Cloud Storage 存储桶。可以为大多数(如果不是全部)Google 云 resources/services/apps 配置类似的 cross-projects 访问权限 - 但您需要检查每个文档的相应文档,以查看每个文档可能具有的具体细节。

考虑到这一点,真正由您来组织您的应用程序和资源并将其映射到项目中。

虽然每个项目只能有一个 App Engine 应用程序,但一个 App Engine 应用程序可以托管 multiple services,每个应用程序都部署了多个版本的代码。