Sql 如何从gcp项目创建服务网络创建到;“违约”;网络

Sql 如何从gcp项目创建服务网络创建到;“违约”;网络,sql,networking,command-line-interface,gcloud,Sql,Networking,Command Line Interface,Gcloud,我想使用gcloud cli创建一个可以在默认网络上访问的sql实例。所以我试了一下: gcloud beta sql instances create instance1 \ --network projects/peak-freedom-xxxxx/global/networks/default 我得到了错误 ERROR: (gcloud.beta.sql.instances.create) [INTERNAL_ERROR] Failed to create subnetwork.

我想使用gcloud cli创建一个可以在默认网络上访问的sql实例。所以我试了一下:

gcloud beta sql instances create instance1 \
  --network projects/peak-freedom-xxxxx/global/networks/default 
我得到了错误

ERROR: (gcloud.beta.sql.instances.create) [INTERNAL_ERROR] Failed to create subnetwork.
Please create Service Networking connection with service 'servicenetworking.googleapis.com'
from consumer project '56xxxxxxxxx' network 'default' again.
当您转到控制台创建它时,您可以检查私有IP,您可以看到:

还有一个“分配和连接”按钮。所以我猜这就是我需要做的。但我不知道如何使用gcloud cli实现这一点

有人能帮忙吗

编辑1

我已尝试将
--网络
设置为
https://www.googleapis.com/compute/alpha/projects/testing-project-xxx/global/networks/default

导致

ERROR: (gcloud.beta.sql.instances.create) [INTERNAL_ERROR] Failed to 
create subnetwork. Set Service Networking service account as 
servicenetworking.serviceAgent role on consumer project
然后我尝试重新创建一个全新的项目并启用服务网络API,如下所示:

gcloud --project testing-project-xxx \
  services enable \
  servicenetworking.googleapis.com
然后创建数据库会导致相同的错误。因此,我尝试手动添加
servicenetworking.serviceAgent
角色并运行:

gcloud projects add-iam-policy-binding testing-project-xxx \
  --member=serviceAccount:service-PROJECTNUMBER@service-networking.iam.gserviceaccount.com \
  --role=roles/servicenetworking.serviceAgent
这成功了

Updated IAM policy for project [testing-project-xxx].
bindings:
- members:
  - user:email@gmail.com
  role: roles/owner
- members:
  - serviceAccount:service-OJECTNUMBERRP@service-networking.iam.gserviceaccount.com
  role: roles/servicenetworking.serviceAgent
etag: XxXxXX37XX0=
version: 1
但创建数据库失败,出现了相同的错误。作为参考,这是我用来创建DB的命令行:

gcloud --project testing-project-xxx \
  beta sql instances create instanceName \
  --network=https://www.googleapis.com/compute/alpha/projects/testing-project-xxx/global/networks/default \
  --database-version POSTGRES_11 \
  --zone europe-north1-a \
  --tier db-g1-small
表单“projects/peak-freedom-xxxxx/global/networks/default”的网络名称用于在共享专有网络下创建SQL实例。如果要在普通VPC网络中创建实例,应使用:

gcloud --project=[PROJECT_ID] beta sql instances create [INSTANCE_ID]
       --network=[VPC_NETWORK_NAME]
       --no-assign-ip
其中,
[VPC\u NETWORK\u NAME]
的形式为
https://www.googleapis.com/compute/alpha/projects/[项目ID]/global/networks/[VPC\u网络名称]

有关更多信息,请查看


注意:您需要为此配置专用服务访问权限,这只是一次性操作

嘿,谢谢你的帮助!我也尝试过这一点(没有
--no assign ip
,因为我希望能够使用
cloud\u sql\u proxy
公开代理给它),但随后我得到一个
无法创建子网络的问题。将服务网络服务帐户设置为消费者项目上的servicenetworking.serviceAgent角色
。。。现在就想办法解决这个问题。有任何提示吗?请尝试禁用并重新启用服务网络API,然后所有用户都将自动重置权限。如果上述解决方案不能解决问题,您可以手动将角色权限“servicenetworking.serviceAgent”授予您的服务网络服务帐户,以通过在Cloud Shell
gcloud项目添加iam策略绑定您的项目中运行以下gcloud命令来解决此问题--member=serviceAccount:Service-PROJECTNUMBER@service-networking.iam.gserviceaccount.com--role=roles/servicenetworking.serviceAgent
我在上面的帖子中添加了一个编辑部分,详细介绍了我所做的一切。手动添加该对象也不起作用:(嘿@aliak,尝试使用
--verbosity=debug
再次运行edit1中提到的同一命令,并使用收到的错误日志编辑您的帖子。我建议的另一个选项是联系他们,因为他们对该主题有更多的可视性,以及您收到此错误的原因。嘿@Methkal非常感谢您的帮助。
debug
我没有说太多。它添加了一个python堆栈跟踪,但仅此而已。我会看看是否可以找到一个支持案例。我发现了我认为我必须要做的事情,但它似乎非常复杂。所以我可能会放弃这一点。