Configura i connettori nel progetto host del VPC condiviso

Se la tua organizzazione utilizza un VPC condiviso, puoi configurare un Connettore di accesso VPC serverless nel progetto di servizio progetto host. Questa guida mostra come configurare un connettore nel progetto host.

Se devi configurare un connettore in un progetto di servizio, consulta Configurare i connettori nei progetti di servizio. Per conoscere i vantaggi di ciascun metodo, consulta Connessione a una VPC condiviso condivisa

Prima di iniziare

  1. Verifica i ruoli di Identity and Access Management (IAM) per l'account che stai attualmente utilizzando. L'account attivo deve avere i seguenti ruoli sul progetto host:

  2. Seleziona il progetto host nel tuo ambiente preferito.

Console

  1. Vai alla dashboard della console Google Cloud.

    Vai alla dashboard della console Google Cloud

  2. Nella barra dei menu nella parte superiore della dashboard, fai clic sul menu a discesa del progetto e seleziona il progetto host.

gcloud

Imposta il progetto predefinito in gcloud CLI sul progetto host esegui questo comando nel tuo terminale:

gcloud config set project HOST_PROJECT_ID

Sostituisci quanto segue:

  • HOST_PROJECT_ID: l'ID del VPC condiviso progetto host

Crea un connettore di accesso VPC serverless

Per inviare richieste alla tua rete VPC e ricevere risposte corrispondenti, devi creare un accesso VPC serverless di rete. Puoi creare un connettore utilizzando la console Google Cloud, Google Cloud CLI, o Terraform:

Console

  1. Abilita l'API Serverless VPC Access per il tuo progetto.

    Abilita API

  2. Vai alla pagina di riepilogo Accesso VPC serverless.

    Vai all'accesso VPC serverless

  3. Fai clic su Crea connettore.

  4. Nel campo Nome, inserisci un nome per il connettore. Il nome deve segui le istruzioni di Compute Engine convenzione di denominazione e avere meno di 21 caratteri. I trattini (-) vengono conteggiati come due caratteri.

  5. Nel campo Regione, seleziona una regione per il connettore. Deve corrispondere alla regione del tuo servizio serverless.

    Se il servizio si trova nella regione us-central o europe-west, utilizza us-central1 o europe-west1.

  6. Nel campo Rete, seleziona la rete VPC a cui collegare il connettore.

  7. Fai clic sul menu a discesa Subnet:

    Seleziona una subnet /28 inutilizzata.

    • Le subnet devono essere utilizzate esclusivamente dal connettore. Non possono essere utilizzati da altre risorse come VM, Private Service Connect bilanciatori del carico.
    • Per verificare che la subnet non sia utilizzata Private Service Connect o Cloud Load Balancing, verifica che la subnet purpose è PRIVATE eseguendo questo comando nel gcloud CLI:
      gcloud compute networks subnets describe SUBNET_NAME
      
      Sostituisci SUBNET_NAME con il nome della tua subnet.
  8. (Facoltativo) Per impostare le opzioni di scalabilità per un maggiore controllo Sul connettore, fai clic su Mostra impostazioni di scalabilità per visualizzare in un modulo di testo.

    1. Imposta il numero minimo e massimo di istanze per il connettore. o utilizzare i valori predefiniti, che sono 2 (min) e 10 (max). La fa lo scale out del connettore al massimo specificato man mano che il traffico aumenta, ma il connettore non ridimensiona quando il traffico diminuisce. Tu deve utilizzare valori compresi tra 2 e 10 e Il valore MIN deve essere inferiore a MAX valore.
    2. Nel menu a discesa Tipo di istanza, scegli il tipo di macchina da utilizzare per o utilizza il valore predefinito e2-micro. Osserva la barra laterale dei costi a destra quando scegli il tipo di istanza, che mostra la larghezza di banda e stime dei costi.
  9. Fai clic su Crea.

  10. Un segno di spunta verde verrà visualizzato accanto al nome del connettore quando pronto per l'uso.

gcloud

  1. Aggiorna i componenti di gcloud alla versione più recente:

    gcloud components update
    
  2. Abilita l'API Serverless VPC Access per il tuo progetto:

    gcloud services enable vpcaccess.googleapis.com
    
  3. Crea un connettore di accesso VPC serverless:

    gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
    --region=REGION \
    --subnet=SUBNET \
    --subnet-project=HOST_PROJECT_ID \
    # Optional: specify minimum and maximum instance values between 2 and 10, default is 2 min, 10 max.
    --min-instances=MIN \
    --max-instances=MAX \
    # Optional: specify machine type, default is e2-micro
    --machine-type=MACHINE_TYPE
    

    Sostituisci quanto segue:

    • CONNECTOR_NAME: un nome per il connettore. Il nome devono rispettare le Compute Engine convenzione di denominazione e avere meno di 21 caratteri. I trattini (-) vengono conteggiati come due caratteri.
    • REGION: una regione per il connettore; Questo deve corrispondere alla regione del tuo servizio serverless. Se il tuo servizio si trova nella regione us-central o europe-west, usa us-central1 oppure europe-west1.
    • SUBNET: il nome di una subnet /28 non utilizzata.
      • Le subnet devono essere utilizzate esclusivamente dal connettore. Non possono essere utilizzati da altre risorse come VM, Private Service Connect bilanciatori del carico.
      • Per verificare che la subnet non sia utilizzata Private Service Connect o Cloud Load Balancing, controlla che la subnet purpose è PRIVATE eseguendo questo comando nel gcloud CLI:
        gcloud compute networks subnets describe SUBNET_NAME
        
        Sostituisci quanto segue:
        • SUBNET_NAME: il nome della subnet
    • HOST_PROJECT_ID: l'ID del progetto host
    • MIN: il numero minimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra 2 e 9. Il valore predefinito è 2. Per ulteriori informazioni sulla scalabilità dei connettori, consulta Velocità effettiva e scalabilità.
    • MAX: il numero massimo di istanze da utilizzare per il connettore. Utilizza un numero intero compreso tra 3 e 10. Il valore predefinito è 10. Se il traffico lo richiede, il connettore esegue lo scale out fino a [MAX] istanze, ma non lo scale out. Per ulteriori informazioni sulla scalabilità dei connettori, consulta Velocità effettiva e scalabilità.
    • MACHINE_TYPE: f1-micro, e2-micro o e2-standard-4. Per saperne di più sulla velocità effettiva del connettore, inclusi il tipo di macchina e la scalabilità, consulta Velocità effettiva e scalabilità.

    Per ulteriori dettagli e argomenti facoltativi, consulta Riferimento gcloud.

  4. Verifica che il connettore sia nello stato READY prima di utilizzarlo:

    gcloud compute networks vpc-access connectors describe CONNECTOR_NAME \
    --region=REGION
    

    Sostituisci quanto segue:

    • CONNECTOR_NAME: il nome del connettore; questo è il nome specificato nel passaggio precedente
    • REGION: la regione del connettore; la regione specificata nel passaggio precedente

    L'output deve contenere la riga state: READY.

Terraform

Puoi utilizzare una risorsa Terraform per abilitare l'API vpcaccess.googleapis.com.

resource "google_project_service" "vpcaccess-api" {
  project = var.project_id # Replace this with your project ID in quotes
  service = "vpcaccess.googleapis.com"
}

Puoi utilizzare i moduli Terraform per creare una rete VPC e una subnet, di rete.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "my-serverless-network"
  mtu          = 1460

  subnets = [
    {
      subnet_name   = "serverless-subnet"
      subnet_ip     = "10.10.10.0/28"
      subnet_region = "us-central1"
    }
  ]
}

module "serverless-connector" {
  source     = "terraform-google-modules/network/google//modules/vpc-serverless-connector-beta"
  version    = "~> 9.0"
  project_id = var.project_id
  vpc_connectors = [{
    name        = "central-serverless"
    region      = "us-central1"
    subnet_name = module.test-vpc-module.subnets["us-central1/serverless-subnet"].name
    # host_project_id = var.host_project_id # Specify a host_project_id for shared VPC
    machine_type  = "e2-standard-4"
    min_instances = 2
    max_instances = 7
    }
    # Uncomment to specify an ip_cidr_range
    #   , {
    #     name          = "central-serverless2"
    #     region        = "us-central1"
    #     network       = module.test-vpc-module.network_name
    #     ip_cidr_range = "10.10.11.0/28"
    #     subnet_name   = null
    #     machine_type  = "e2-standard-4"
    #     min_instances = 2
    #   max_instances = 7 }
  ]
  depends_on = [
    google_project_service.vpcaccess-api
  ]
}

Fornire l'accesso al connettore

Fornisci l'accesso al connettore concedendo all'Utente accesso VPC serverless ruolo IAM del progetto host all'entità che esegue il deployment dal servizio App Engine.

Console

  1. Apri la pagina IAM.

    Vai a IAM

  2. Fai clic sul menu a discesa del progetto e seleziona il progetto host.

  3. Fai clic su Aggiungi.

  4. Nel campo Nuove entità, aggiungi l'entità che esegue il deployment dal servizio App Engine.

  5. Nel campo Ruolo, seleziona Utente accesso VPC serverless.

  6. Fai clic su Salva.

gcloud

Esegui il comando seguente nel terminale:

gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
--member=PRINCIPAL \
--role=roles/vpcaccess.user

Sostituisci quanto segue:

  • HOST_PROJECT_ID: l'ID del Progetto host VPC condiviso
  • PRINCIPAL: l'entità che esegue il deployment dal servizio App Engine. Scopri di più sulle Flag --member.

Rendere il connettore rilevabile

Per vedere il connettore, le entità devono avere determinati ruoli di visualizzazione sia sull'host tra progetti e progetto di servizio. Per fare in modo che il connettore venga visualizzato quando le entità visualizzare i connettori disponibili nella console Google Cloud o dal relativo terminale aggiungi ruoli IAM per le entità che eseguono il deployment di App Engine i servizi di machine learning.

Concedi ruoli IAM nel progetto host

Nel progetto host, concedi alle entità che eseguono il deployment dei servizi App Engine Visualizzatore accesso VPC serverless (vpcaccess.viewer) ruolo.

Console

  1. Apri la pagina IAM.

    Vai a IAM

  2. Fai clic sul menu a discesa del progetto e seleziona il progetto host.

  3. Fai clic su Aggiungi.

  4. Nel campo Nuove entità, inserisci l'indirizzo email dell'entità che dovrebbe essere in grado di vedere il connettore dal progetto di servizio. Puoi inserisci più indirizzi email in questo campo.

  5. Nel campo Ruolo, seleziona Visualizzatore accesso VPC serverless.

  6. Fai clic su Salva.

gcloud

Esegui il comando seguente nel terminale:

gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
--member=PRINCIPAL \
--role=roles/vpcaccess.viewer

Sostituisci quanto segue:

  • HOST_PROJECT_ID: l'ID del Progetto host VPC condiviso
  • PRINCIPAL: l'entità che esegue il deployment dai servizi App Engine. Scopri di più sulle Flag --member.

Concedi ruoli IAM nel progetto di servizio

Nel progetto di servizio, concedi le entità che eseguono il deployment dei servizi App Engine il Visualizzatore di rete Compute (compute.networkViewer) ruolo.

Console

  1. Apri la pagina IAM.

    Vai a IAM

  2. Fai clic sul menu a discesa del progetto e seleziona il progetto di servizio.

  3. Fai clic su Aggiungi.

  4. Nel campo Nuove entità, inserisci l'indirizzo email dell'entità che dovrebbe essere in grado di vedere il connettore dal progetto di servizio. Puoi inserisci più indirizzi email in questo campo.

  5. Nel campo Ruolo, seleziona Visualizzatore di rete Compute.

  6. Fai clic su Salva.

gcloud

Esegui il comando seguente nel terminale:

gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \
--member=PRINCIPAL \
--role=roles/compute.networkViewer

Sostituisci quanto segue:

  • SERVICE_PROJECT_ID: l'ID del progetto di servizio
  • PRINCIPAL: l'entità che esegue il deployment dai servizi App Engine. Scopri di più sulle Flag --member.

Configura il servizio per utilizzare un connettore

Per ogni servizio App Engine che richiede l'accesso al tuo VPC condiviso, devi specificare il connettore per il servizio. La i passaggi seguenti mostrano come configurare il servizio per l'utilizzo di un connettore.

  1. Disattivare l'impostazione predefinita Recupero URL e interrompere qualsiasi uso esplicito dei urlfetch libreria. L'accesso VPC serverless non è compatibile con il recupero dell'URL completamente gestito di Google Cloud.

  2. Aggiungi vpc_access_connector al file app.yaml del tuo servizio:

    vpc_access_connector:
    name: projects/HOST_PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME
    

    Sostituisci quanto segue:

    • HOST_PROJECT_ID: l'ID del VPC condiviso progetto host
    • REGION: la regione del connettore
    • CONNECTOR_NAME: il nome del tuo connettore
  3. Esegui il deployment del servizio:

    gcloud app deploy

Dopo il deployment, il servizio può inviare richieste ai tuoi Rete VPC condiviso e ricevono le risposte corrispondenti.

Passaggi successivi