对于那些非常了解GCP的人来说,它在用户和权限控制方面有一些"限制"。
例如,数据存储无法管理数据库本身的用户角色,它只有平台的 IAM。
正因为如此,谷歌的员工建议他们的客户使用GCP的多个项目和文件夹来更好地控制。我已经看了一段时间了。
问题是:如何在春云GCP上连接GCP多个项目的多个资源?我们有应用程序应该从不同的项目访问数据存储和其他资源,我在这里苦苦挣扎。
即使Spring Cloud GCP不支持多个GCP项目,有什么解决方法吗?
谢谢大家。
您的答案应该在"共享 VPC"中。
共享 VPC 允许组织将多个项目中的资源连接到公共 VPC 网络,以便它们可以使用来自该网络的内部 IP 安全高效地相互通信。
要使用它,您的所有项目都必须属于同一个"组织节点",您可能已经在所有项目之上设置了该节点。然后,您将项目设置为宿主项目和服务项目。主机。。。井:
主机项目包含一个或多个共享 VPC 网络。共享 VPC 管理员必须首先将项目启用为主机项目。之后,共享 VPC 管理员可以向其附加一个或多个服务项目。
服务项目是指已由共享 VPC 管理员附加到主机项目的任何项目。此附件允许它参与共享 VPC。通常的做法是由组织中的不同部门或团队操作和管理多个服务项目。
值得注意的是:"服务项目"项目不能同时成为主机。至于如何设置一个,这将取决于您的具体实现,但这里有一些示例和用例。
您可以使用为每个单独的服务提供的低级客户端库,使用如下所示提供的构建器创建实例,以便将 pubsub 发布到具有不同项目 ID 的主题。
ProjectTopicName topicName = ProjectTopicName.of(projectId, topic);
publisher = Publisher.newBuilder(topicName)
.setChannelProvider(transportChannelProvider)
.setCredentialsProvider(credentialsProvider)
.build();
然后,您可以创建一个 Bean 并在您的应用程序中自动连接它以使用它。 虽然对于使用具有多个项目 ID 的 spring-cloud-gcp-pubsub,您可以参考这个答案