1

对于熟悉 GCP 的人来说,它对用户和权限控制有一些“限制”。

例如,Datastore 没有任何方法来管理数据库本身的用户角色,它只有平台的 IAM。

正因为如此,谷歌的员工建议他们的客户使用 GCP 的多个项目和文件夹,以便对其进行更多控制。我已经看过一段时间了。

问题是:如何在Spring Cloud GCP上连接多个GCP项目的多个资源?我们的应用程序应该访问来自不同项目的 Datastore 和其他资源,而我正在努力解决这个问题。

即使 Spring Cloud GCP 不支持多个 GCP 项目,有什么解决方法吗?

谢谢你们。

4

2 回答 2

0

您的答案应该在“ Shared-VPC ”中。

共享 VPC 允许组织将来自多个项目的资源连接到公共 VPC 网络,以便它们可以使用该网络中的内部 IP 安全有效地相互通信。

要使用它,您的所有项目都必须属于同一个“组织节点”,您可能已经在所有项目之上设置了该“组织节点”。然后,您将项目设置为宿主项目和服务项目。主机...好吧:

宿主项目包含一个或多个共享 VPC 网络。共享 VPC 管理员必须首先将项目启用为宿主项目。之后,共享 VPC 管理员可以将一个或多个服务项目附加到它。

服务项目是由共享 VPC 管理员附加到宿主项目的任何项目。此附件允许它参与共享 VPC。由组织中的不同部门或团队运营和管理多个服务项目是一种常见的做法。

值得注意的是:作为“服务项目”的项目也不能是主机。至于如何设置,这将取决于您的具体实现,但这里有一些示例和用例

于 2019-06-21T16:48:04.633 回答
0

您可以使用为每个单独的服务提供的低级客户端库,使用如下提供的构建器创建实例,以将 pubsub 发布到具有不同项目 ID 的主题。

ProjectTopicName topicName = ProjectTopicName.of(projectId, topic);
publisher = Publisher.newBuilder(topicName)
                        .setChannelProvider(transportChannelProvider)
                        .setCredentialsProvider(credentialsProvider)
                        .build();

然后,您可以创建一个 bean 并在您的应用程序中自动装配它以使用它。虽然对于使用带有多个项目 ID 的 spring-cloud-gcp-pubsub 您可以参考这个答案

于 2019-09-26T15:31:32.930 回答