我有一个共享 VPC,其中有一个 cloudSQL 实例。在那个宿主项目中,我还有一个无服务器 vpc 连接器,ID 为 vpc-serverless-connector。它有 10.8.0.0/28 作为 ip 范围。我正在使用 firebase deploy 部署我的云功能,这是一个修补版本(请参阅https://github.com/firebase/firebase-functions/issues/552),我按照以下格式设置 VPCConnector:
vpcConnector:'projects/MY_HOST_PROJECT_ID/locations/MY_REGION/connectors/vpc-serverless-connector'
这些功能部署在同一区域 MY_REGION 的另一个项目中。该项目已获得对 sharedVPC 的访问权限。
当我部署时,我总是得到这个错误:
缺少项目 MY_PROJECT 上 serviceAccount:service-MY_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com 的必要权限 vpcaccess.connector.use。
请授予 serviceAccount:service-MY_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com 角色/查看者角色。
您可以通过运行“gcloud projects add-iam-policy-binding MY_PROJECT --member=serviceAccount:service-MY_SERVICEID@gcf-admin-robot.iam.gserviceaccount.com --role=roles/viewer”来做到这一点
我多次运行该命令,我检查以确保我的 firebase 相关项目中的 gcf-admin-robot iam serviceAccount 具有所有必要的角色。目前有:Viewer Serverless、VPC Access Admin Serverless、VPC Access User Serverless、VPC Access Viewer
那么发生了什么?我错过了什么?我似乎无法完成这项工作。我的目标是能够从另一个项目中的 firebase 云函数访问我的共享 vpc 的主机项目中的 cloudSQL 实例。
注意:我也尝试在没有 firebase 的情况下直接部署云功能并得到相同的错误。所以firebase不应该是这里的问题。