Как создать сервисную сеть из проекта gcp в сети по умолчанию - PullRequest
0 голосов
/ 15 марта 2020

Я хотел использовать 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.

Когда вы go на консоль, чтобы создать его, вы можете проверить частный IP, вы можете увидеть это:

enter image description here

И есть кнопка «Выделить и подключить». Я предполагаю, что это то, что мне нужно сделать. Но я не могу понять, как это сделать с помощью gcloud cli.

Кто-нибудь может помочь?

РЕДАКТИРОВАТЬ 1 :

У меня есть попытался установить --network в 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 Service Networking, например:

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

Но создание БД не удалось с той же ошибкой. Для справки: это командная строка, которую я использую для создания БД:

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

1 Ответ

0 голосов
/ 16 марта 2020

сетевое имя формы "projects / peak-freedom-xxxxx / global / networks / default" предназначено для создания SQL экземпляров в общей сети VP C. если вы хотите создать экземпляр в обычной сети VP C, вы должны использовать:

gcloud --project=[PROJECT_ID] beta sql instances create [INSTANCE_ID]
       --network=[VPC_NETWORK_NAME]
       --no-assign-ip

, где [VPC_NETWORK_NAME] имеет форму https://www.googleapis.com/compute/alpha/projects/[PROJECT_ID]/global/networks/[VPC_NETWORK_NAME]

для проверки дополнительной информации здесь .

Примечание. Для этого необходимо настроить доступ к частной службе, и это только одноразовое действие. следуйте инструкциям здесь .

...