我有一个共享的VPC,里面有一个cloudSQL实例。在那个主机项目中,我还有一个无服务器vpc连接器,id为vpc无服务器连接器。ip范围为10.8.0.0/28。我正在使用firebase deploy部署我的云功能,这是一个补丁版本(请参阅https://github.com/firebase/firebase-functions/issues/552)我按照以下格式设置VPCConnector:
vpc连接器:'项目/MY_HOST_PROJECT_ID/locations/MY_REGION/connectors/vpc无服务器连接器'
这些功能部署在同一地区MY_region的另一个项目中。该项目已被授予访问共享专有网络的权限。
当我部署时,我总是会收到错误:
缺少必要的权限vpcaccess.connecter.useserviceAccount:service-MY_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com关于MY_project项目。
请授予serviceAccount:service-MY_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com角色/查看器角色。
您可以通过运行"gcloud项目添加iam策略绑定MY_PROJECT"来实现这一点--member=serviceAccount:service-MY_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com--role=角色/观众的
我多次运行该命令,我进行了检查以确保我的firebase相关项目中的gcf admin robot iam serviceAccount具有所有必要的角色。目前有:Viewer Serverless、VPC Access Admin Serverless、专有网络Access User Serverless、VPN Access Viewer
那么发生了什么?我错过了什么?我似乎无法做到这一点。我的目标是能够从另一个项目中的firebase云函数访问我的共享vpc主机项目中的cloudSQL实例。
注意:我也尝试过在没有firebase的情况下直接部署云功能,但也出现了同样的错误。因此,这里不应该有燃烧基地的问题。
我发现了这个问题
我忘记添加MY_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com来自主机项目IAM内部的服务项目
您需要将此电子邮件添加为具有云功能服务代理权限的主机项目的成员
不知怎么的,我错过了那个部分。现在一切如预期。