Sql 如何从gcp项目创建服务网络创建到;“违约”;网络
我想使用gcloud cli创建一个可以在默认网络上访问的sql实例。所以我试了一下: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 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 Shellgcloud项目添加iam策略绑定您的项目中运行以下gcloud命令来解决此问题--member=serviceAccount:Service-PROJECTNUMBER@service-networking.iam.gserviceaccount.com--role=roles/servicenetworking.serviceAgent
我在上面的帖子中添加了一个编辑部分,详细介绍了我所做的一切。手动添加该对象也不起作用:(嘿@aliak,尝试使用--verbosity=debug
再次运行edit1中提到的同一命令,并使用收到的错误日志编辑您的帖子。我建议的另一个选项是联系他们,因为他们对该主题有更多的可视性,以及您收到此错误的原因。嘿@Methkal非常感谢您的帮助。debug
我没有说太多。它添加了一个python堆栈跟踪,但仅此而已。我会看看是否可以找到一个支持案例。我发现了我认为我必须要做的事情,但它似乎非常复杂。所以我可能会放弃这一点。