Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Connessione a una rete VPC

Questa pagina mostra come utilizzare l'accesso VPC serverless per connettere Cloud Functions direttamente alla rete VPC, consentendo l'accesso alle istanze VM di Compute Engine, alle istanze Memorystore e a qualsiasi altra risorsa con un indirizzo IP interno.

Prima di iniziare

  • Se non hai ancora una rete VPC nel tuo progetto, creane una.

Se utilizzi un VPC condiviso, fornisci l'accesso al connettore e consulta Connessione a una rete VPC condivisa.

Crea un connettore di accesso VPC serverless

Per inviare richieste alla rete VPC e ricevere le risposte corrispondenti senza utilizzare la rete Internet pubblica, devi utilizzare un connettore di accesso VPC serverless.

Puoi creare un connettore utilizzando la console Google Cloud, Google Cloud CLI o Terraform:

Console

  1. Assicurati che l'API Serverless VPC Access sia abilitata per il tuo progetto.

    Abilita API

  2. Vai alla pagina di panoramica dell'accesso VPC serverless.

    Vai ad Accesso VPC serverless

  3. Fai clic su Crea connettore.

  4. Nel campo Nome, inserisci un nome per il connettore. Deve essere conforme alla convenzione di denominazione di Compute Engine, con la restrizione aggiuntiva che è inferiore a 21 caratteri, con i trattini (-) conteggiati come due caratteri.

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

    Se il servizio o il job 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:

    • Se utilizzi un VPC condiviso, che richiede l'utilizzo di una tua subnet, seleziona una subnet /28 non utilizzata.

      • Le subnet devono essere utilizzate esclusivamente dal connettore. Non possono essere utilizzate da altre risorse come VM, Private Service Connect o bilanciamento del carico HTTP(S) interno.
      • Per verificare che la subnet non sia utilizzata per Private Service Connect o il bilanciamento del carico HTTP(S) interno, verifica che la subnet purpose sia PRIVATE eseguendo il comando seguente nell'interfaccia a riga di comando gcloud:
        gcloud compute networks subnets describe SUBNET_NAME
        
        Sostituisci:
        • SUBNET_NAME: il nome della subnet
    • Se non utilizzi il VPC condiviso e preferisci che il connettore crei una subnet invece di crearne una in modo esplicito, seleziona Intervallo IP personalizzato dal menu a discesa, quindi nel campo Intervallo IP inserisci il primo indirizzo di un intervallo IP interno CIDR non prenotato. Questo intervallo IP non deve sovrapporsi ad alcuna prenotazione di indirizzi IP esistente nella tua rete VPC. Ad esempio, 10.8.0.0 (/28) funzionerà nella maggior parte dei nuovi progetti.

  8. (Facoltativo) Per impostare le opzioni di scalabilità per un controllo aggiuntivo sul connettore, fai clic su Mostra impostazioni di scalabilità per visualizzare il modulo di scalabilità.

    1. Imposta il numero minimo e massimo di istanze per il connettore o utilizza i valori predefiniti, che sono 2 (min) e 10 (max). Il connettore fa lo scale out al valore massimo specificato se l'utilizzo del traffico lo richiede, ma il connettore non esegue lo scale down quando il traffico diminuisce. Devi utilizzare valori compresi tra 2 e 10.
    2. Nel menu a discesa Tipo di istanza, scegli il tipo di macchina da utilizzare per il connettore o utilizza il valore predefinito e2-micro. Osserva la barra laterale dei costi a destra quando scegli il tipo di istanza, che mostra le stime della larghezza di banda e dei costi.
  9. Fai clic su Crea.

  10. Quando è pronto per l'uso, accanto al nome del connettore viene visualizzato un segno di spunta verde.

gcloud

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

    gcloud components update
    
  2. Assicurati che l'API Serverless VPC Access sia abilitata per il tuo progetto:

    gcloud services enable vpcaccess.googleapis.com
    
  3. Se utilizzi un VPC condiviso, che richiede l'utilizzo di una tua subnet, crea un connettore con il comando seguente:

    gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
    --region REGION \
    --subnet SUBNET \
    # If you are not using Shared VPC, omit the following line.
    --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. Questo deve essere conforme alla convenzione di denominazione di Compute Engine, con la restrizione aggiuntiva che è inferiore a 21 caratteri con i trattini (-) conteggiati come due caratteri.
    • REGION: una regione per il tuo connettore; deve corrispondere alla regione del tuo servizio o job serverless. Se il servizio o il job si trova nella regione us-central o europe-west, utilizza us-central1 o europe-west1.
    • SUBNET: il nome di una subnet /28 non utilizzata.
      • Le subnet devono essere utilizzate esclusivamente dal connettore. Non possono essere utilizzate da altre risorse come VM, Private Service Connect o bilanciamento del carico HTTP(S) interno.
      • Per verificare che la subnet non sia utilizzata per Private Service Connect o il bilanciamento del carico HTTP(S) interno, verifica che la subnet purpose sia PRIVATE eseguendo il comando seguente nell'interfaccia a riga di comando gcloud:
        gcloud compute networks subnets describe SUBNET_NAME
        
        Sostituisci:
        • SUBNET_NAME: il nome della subnet.
    • HOST_PROJECT_ID: l'ID del progetto host; fornisci questo solo se stai utilizzando un VPC condiviso.
    • MIN: 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: 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 a [MAX] istanze, ma non esegue lo scale down. Per saperne di più sulla scalabilità dei connettori, consulta Velocità effettiva e scalabilità.
    • MACHINE_TYPE: f1-micro, e2-micro o e2-standard-4. Per informazioni sulla velocità effettiva del connettore, inclusi tipo di macchina e scalabilità, consulta Velocità effettiva e scalabilità.

    Per maggiori dettagli e argomenti facoltativi, consulta il riferimento gcloud.

  4. Se non usi il VPC condiviso e vuoi fornire un intervallo IP personalizzato anziché utilizzare una subnet, crea un connettore con il comando seguente:

    gcloud compute networks vpc-access connectors create CONNECTOR_NAME \
    --network VPC_NETWORK \
    --region REGION \
    --range IP_RANGE
    

    Sostituisci quanto segue:

    • CONNECTOR_NAME: un nome per il connettore. Deve essere conforme alla convenzione di denominazione Compute Engine, con la restrizione aggiuntiva in quanto è inferiore a 21 caratteri con i trattini (-) conteggiati come due caratteri.
    • VPC_NETWORK: la rete VPC a cui collegare il connettore.
    • REGION: una regione per il tuo connettore. Deve corrispondere all'area geografica del servizio o del job serverless. Se il servizio o il job si trova nella regione us-central o europe-west, utilizza us-central1 o europe-west1.
    • IP_RANGE: è necessaria una rete IP interna non prenotata e /28 di spazio non allocato. Il valore fornito è la rete in notazione CIDR (10.8.0.0/28). Questo intervallo IP non deve sovrapporsi ad alcuna prenotazione di indirizzi IP esistente nella rete VPC. Ad esempio, 10.8.0.0/28 funziona nella maggior parte dei nuovi progetti.

    Per ulteriori dettagli e argomenti facoltativi come i controlli di velocità effettiva, consulta il riferimento gcloud.

  5. 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, ovvero il nome specificato nel passaggio precedente.
    • REGION: la regione del connettore; è la regione che hai specificato nel passaggio precedente.

    L'output deve contenere la riga state: READY.

Terraform

Puoi usare 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, quindi crea il connettore.

module "test-vpc-module" {
  source       = "terraform-google-modules/network/google"
  version      = "~> 6.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    = "~> 6.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
  ]
}

Configurare la funzione per utilizzare un connettore

Dopo aver creato un connettore di accesso VPC serverless, devi configurare ogni funzione che vuoi connettere alla tua rete VPC. Puoi configurare una funzione per utilizzare un connettore dalla console di Google Cloud o da Google Cloud CLI:

Console

  1. Vai alla pagina Panoramica di Cloud Functions nella console Google Cloud:

    Vai a Cloud Functions

  2. Fai clic su Crea funzione. In alternativa, fai clic su una funzione esistente per andare alla relativa pagina dei dettagli e fai clic su Modifica.

  3. Espandi le impostazioni avanzate facendo clic su RUNTIME, BUILD AND CONNECTIONS SETTINGS.

  4. Nella scheda Connessioni in Impostazioni in uscita, inserisci il nome del tuo connettore nel campo Connettore VPC o cancella questo campo per scollegare il servizio da una rete VPC.

gcloud

Utilizza il comando gcloud functions deploy per eseguire il deployment della funzione e specificare il flag --vpc-connector:

gcloud functions deploy FUNCTION_NAME \
--vpc-connector CONNECTOR_NAME \
FLAGS...

dove:

  • FUNCTION_NAME è il nome della tua funzione.
  • CONNECTOR_NAME è il nome del connettore.
  • FLAGS... si riferisce ad altri flag trasmessi durante il deployment delle funzioni.

Utilizza il flag --clear-vpc-connector per disconnettere la tua funzione da una rete VPC:

gcloud functions deploy FUNCTION_NAME \
--clear-vpc-connector \
FLAGS...

Per un maggiore controllo sulle richieste instradate tramite il connettore, consulta Impostazioni del traffico in uscita.

Limita l'accesso alle risorse VPC

Puoi limitare l'accesso del connettore alla rete VPC utilizzando le regole firewall.

Quando ti connetti a una rete VPC condivisa con connettori nei progetti di servizio, le regole firewall non vengono create automaticamente. Un utente con il ruolo Amministratore di rete sul progetto host imposta le regole firewall quando configura il progetto host.

Quando ti connetti a una rete VPC autonoma o a una rete VPC condivisa con il connettore nel progetto host, viene creata automaticamente una regola firewall implicita con priorità 1000 sulla rete VPC per consentire il traffico in entrata dalla subnet del connettore o dall'intervallo IP personalizzato a tutte le destinazioni nella rete VPC. La regola firewall implicita non è visibile nella console Google Cloud ed esiste solo finché esiste il connettore associato. Se non vuoi che il connettore possa raggiungere tutte le destinazioni nella rete VPC, puoi limitarne l'accesso.

Puoi limitare l'accesso al connettore creando regole in entrata nella risorsa di destinazione o creando regole in uscita sul connettore VPC.

Limita l'accesso utilizzando le regole in entrata

Scegli gli tag di rete o gli intervalli CIDR per controllare il traffico in entrata verso la tua rete VPC.

Tag di rete

I passaggi seguenti mostrano come creare regole in entrata che limitano l'accesso di un connettore alla tua rete VPC in base ai tag di rete del connettore.

  1. Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi disporre di uno dei seguenti ruoli di Identity and Access Management (IAM):

  2. Nega il traffico dei connettori sulla tua rete VPC.

    Crea una regola firewall in entrata con priorità inferiore a 1000 sulla tua rete VPC per negare il traffico in entrata dal tag di rete del connettore. Questa operazione sostituisce la regola firewall implicita creata per impostazione predefinita dell'accesso VPC serverless sulla rete VPC.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY
    

    Sostituisci quanto segue:

    • RULE_NAME: il nome della nuova regola firewall. Ad esempio: deny-vpc-connector.
    • PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. Devi specificare uno o più valori per ah, all, esp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,udp consente il traffico TCP attraverso la porta 80 e il traffico UDP. Per ulteriori informazioni, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi quelli futuri) oppure il tag di rete univoco se vuoi limitare l'accesso per un connettore specifico.

      • Tag rete universale: vpc-connector
      • Tag di rete univoco: vpc-connector-REGION-CONNECTOR_NAME

        Sostituisci:

        • REGION: la regione del connettore che vuoi limitare
        • CONNECTOR_NAME: il nome del connettore che vuoi limitare

      Per scoprire di più sui tag di rete del connettore, consulta Tag di rete.

    • VPC_NETWORK: il nome della tua rete VPC

    • PRIORITY: un numero intero compreso tra 1 e 999 incluso. Ad esempio, 990.

  3. Consenti il traffico del connettore verso la risorsa che dovrebbe ricevere il traffico del connettore.

    Utilizza i flag allow e target-tags per creare una regola firewall in entrata che abbia come target la risorsa nella tua rete VPC a cui vuoi che il connettore VPC acceda. Imposta la priorità per questa regola in modo che sia un valore inferiore a quello della regola che hai creato nel passaggio precedente.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-tags=VPC_CONNECTOR_NETWORK_TAG \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY
    

    Sostituisci quanto segue:

    • RULE_NAME: il nome della nuova regola firewall. Ad esempio: allow-vpc-connector-for-select-resources.
    • PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. Devi specificare uno o più valori come ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per ulteriori informazioni, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore universale se vuoi limitare l'accesso per tutti i connettori (inclusi quelli futuri) oppure il tag di rete univoco se vuoi limitare l'accesso per un connettore specifico. Deve corrispondere al tag di rete specificato nel passaggio precedente.

      • Tag rete universale: vpc-connector
      • Tag di rete univoco: vpc-connector-REGION-CONNECTOR_NAME

        Sostituisci:

        • REGION: la regione del connettore che vuoi limitare
        • CONNECTOR_NAME: il nome del connettore che vuoi limitare

      Per scoprire di più sui tag di rete del connettore, consulta Tag di rete.

    • VPC_NETWORK: il nome della tua rete VPC

    • RESOURCE_TAG: il tag di rete per la risorsa VPC a cui vuoi che il connettore VPC possa accedere

    • PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità per la regola che hai creato nel passaggio precedente su 990, prova 980.

Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione per gcloud compute firewall-rules create.

Intervallo CIDR

I passaggi seguenti mostrano come creare regole in entrata che limitano l'accesso di un connettore alla tua rete VPC in base all'intervallo CIDR del connettore.

  1. Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi disporre di uno dei seguenti ruoli di Identity and Access Management (IAM):

  2. Nega il traffico dei connettori sulla tua rete VPC.

    Crea una regola firewall in entrata con priorità inferiore a 1000 sulla tua rete VPC per negare il traffico in entrata dall'intervallo CIDR del connettore. Questa operazione sostituisce la regola firewall implicita creata per impostazione predefinita dell'accesso VPC serverless sulla rete VPC.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=<_1, PROTOCOL> \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --priority=PRIORITY
    

    Sostituisci quanto segue:

    • RULE_NAME: il nome della nuova regola firewall. Ad esempio: deny-vpc-connector.
    • VPC_CONNECTOR_CIDR_RANGE: l'intervallo CIDR per il connettore di cui stai limitando l'accesso
    • VPC_NETWORK: il nome della tua rete VPC
    • PRIORITY: un numero intero compreso tra 1 e 999. Ad esempio, 990.
  3. Consenti il traffico del connettore verso la risorsa che dovrebbe ricevere il traffico del connettore.

    Utilizza i flag allow e target-tags per creare una regola firewall in entrata che abbia come target la risorsa nella tua rete VPC a cui vuoi che il connettore VPC acceda. Imposta la priorità per questa regola in modo che sia un valore inferiore a quello della regola che hai creato nel passaggio precedente.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --source-ranges=VPC_CONNECTOR_CIDR_RANGE \
    --direction=INGRESS \
    --network=VPC_NETWORK \
    --target-tags=RESOURCE_TAG \
    --priority=PRIORITY
    

    Sostituisci quanto segue:

    • RULE_NAME: il nome della nuova regola firewall. Ad esempio: allow-vpc-connector-for-select-resources.
    • PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. Devi specificare uno o più valori come ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per ulteriori informazioni, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_CIDR_RANGE: l'intervallo CIDR per il connettore a cui stai limitando l'accesso
    • VPC_NETWORK: il nome della tua rete VPC
    • RESOURCE_TAG: il tag di rete per la risorsa VPC a cui vuoi che il connettore VPC possa accedere
    • PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità per la regola che hai creato nel passaggio precedente su 990, prova 980.

Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione di gcloud compute firewall-rules create.

Limita l'accesso utilizzando le regole in uscita

I passaggi seguenti mostrano come creare regole in uscita per limitare l'accesso ai connettori.

  1. Assicurati di disporre delle autorizzazioni necessarie per inserire le regole firewall. Devi avere uno dei seguenti ruoli Identity and Access Management (IAM):

  2. Nega il traffico in uscita dal connettore.

    Crea una regola firewall in uscita sul connettore di accesso VPC serverless per impedire l'invio di traffico in uscita.

    gcloud compute firewall-rules create RULE_NAME \
    --action=DENY \
    --rules=PROTOCOL \
    --direction=EGRESS \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --network=VPC_NETWORK \
    --priority=PRIORITY
    

    Sostituisci quanto segue:

    • RULE_NAME: il nome della nuova regola firewall. Ad esempio: deny-vpc-connector.
    • PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. Devi specificare uno o più valori come ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per ulteriori informazioni, consulta la documentazione per il flag allow.
    • VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore VPC universale se vuoi che la regola venga applicata a tutti i connettori VPC esistenti e a qualsiasi connettore VPC creato in futuro. Oppure il tag di rete del connettore VPC univoco se vuoi controllare un connettore specifico.
    • VPC_NETWORK: il nome della tua rete VPC
    • PRIORITY: un numero intero compreso tra 1 e 999. Ad esempio, 990.
  3. Consenti il traffico in uscita quando la destinazione rientra nell'intervallo CIDR a cui vuoi che il connettore acceda.

    Utilizza i flag allow e destination-ranges per creare una regola firewall che consenta il traffico in uscita dal connettore per un intervallo di destinazione specifico. Imposta l'intervallo di destinazione sull'intervallo CIDR della risorsa nella rete VPC a cui vuoi che il connettore possa accedere. Imposta la priorità per questa regola con un valore inferiore a quello della regola che hai creato nel passaggio precedente.

    gcloud compute firewall-rules create RULE_NAME \
    --allow=PROTOCOL \
    --destination-ranges=RESOURCE_CIDR_RANGE \
    --direction=EGRESS \
    --network=VPC_NETWORK \
    --target-tags=VPC_CONNECTOR_NETWORK_TAG \
    --priority=PRIORITY
    

    Sostituisci quanto segue:

    • RULE_NAME: il nome della nuova regola firewall. Ad esempio: allow-vpc-connector-for-select-resources.
    • PROTOCOL: uno o più protocolli che vuoi consentire dal connettore VPC. Devi specificare uno o più valori come ah, all, esp, icmp, ipip, sctp, tcp, udp o un numero di protocollo IP compreso tra 0 e 255. Ad esempio, tcp:80,icmp consente il traffico TCP attraverso la porta 80 e il traffico ICMP. Per ulteriori informazioni, consulta la documentazione per il flag allow.
    • RESOURCE_CIDR_RANGE: l'intervallo CIDR per il connettore di cui stai limitando l'accesso
    • VPC_NETWORK: il nome della tua rete VPC
    • VPC_CONNECTOR_NETWORK_TAG: il tag di rete del connettore VPC universale se vuoi che la regola venga applicata a tutti i connettori VPC esistenti e a qualsiasi connettore VPC creato in futuro. Oppure il tag di rete del connettore VPC univoco se vuoi controllare un connettore specifico. Se hai utilizzato il tag di rete univoco nel passaggio precedente, utilizza il tag di rete univoco.
    • PRIORITY: un numero intero inferiore alla priorità impostata nel passaggio precedente. Ad esempio, se imposti la priorità per la regola che hai creato nel passaggio precedente su 990, prova 980.

Per ulteriori informazioni sui flag obbligatori e facoltativi per la creazione di regole firewall, consulta la documentazione di gcloud compute firewall-rules create.

Gestisci il connettore

Disconnetti una funzione da una rete VPC

Puoi scollegare una funzione dalla rete VPC mediante la console Google Cloud o Google Cloud CLI:

Console

  1. Vai alla pagina Panoramica di Cloud Functions nella console Google Cloud:

    Vai a Cloud Functions

  2. Fai clic su una funzione esistente per andare alla relativa pagina dei dettagli, quindi fai clic su Modifica.

  3. Espandi le impostazioni avanzate facendo clic su RUNTIME, BUILD AND CONNECTIONS SETTINGS.

  4. Nella scheda Connessioni in Impostazioni in uscita, inserisci il nome del tuo connettore nel campo Connettore VPC o cancella questo campo per scollegare il servizio da una rete VPC.

gcloud

Utilizza il flag --clear-vpc-connector per disconnettere la tua funzione dalla rete VPC:

gcloud functions deploy FUNCTION_NAME \
--clear-vpc-connector \
FLAGS...

dove:

  • FUNCTION_NAME è il nome della tua funzione.
  • CONNECTOR_NAME è il nome del connettore.
  • FLAGS... si riferisce ad altri flag trasmessi durante il deployment delle funzioni.

I connettori continuano a essere addebitati anche se non hanno traffico e sono disconnessi. Per i dettagli, consulta le informazioni sui prezzi. Se non hai più bisogno del connettore, assicurati di eliminarlo per evitare che la fatturazione continui.

Aggiorna un connettore

Puoi aggiornare i seguenti attributi del connettore utilizzando la console Google Cloud, Google Cloud CLI o l'API:

  • Tipo di macchina (istanza)
  • Numero minimo e massimo di istanze

Aggiorna tipo di macchina

Console

  1. Vai alla pagina di panoramica dell'accesso VPC serverless.

    Vai ad Accesso VPC serverless

  2. Seleziona il connettore da modificare e fai clic su Modifica.

    Nella pagina Dettagli connettore vengono visualizzati i grafici relativi alla velocità effettiva del connettore, al numero di istanze e alle metriche di utilizzo della CPU.

  3. Nell'elenco Tipo di istanza, seleziona il tipo di macchina (istanza) che preferisci. Per informazioni sui tipi di macchina disponibili, consulta la documentazione su velocità effettiva e scalabilità.

gcloud

  1. Per aggiornare il tipo di macchina del connettore, esegui il comando seguente nel terminale:

    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --machine-type=MACHINE_TYPE
    
    Sostituisci quanto segue:

    • CONNECTOR_NAME: il nome del connettore
    • REGION: nome della regione del connettore
    • MACHINE_TYPE: il tuo tipo di macchina preferito. Per informazioni sui tipi di macchine disponibili, consulta la documentazione su velocità effettiva e scalabilità.

Riduci il numero minimo e massimo di istanze

Per ridurre il numero minimo e massimo di istanze, devi eseguire le seguenti operazioni:

  1. Crea un nuovo connettore con i valori che preferisci.
  2. Aggiorna il servizio o la funzione per utilizzare il nuovo connettore.
  3. Elimina il vecchio connettore quando hai spostato il traffico.

Per ulteriori informazioni, consulta la pagina Creare un connettore di accesso VPC serverless.

Aumenta il numero minimo e massimo di istanze

Console

  1. Vai alla pagina di panoramica dell'accesso VPC serverless.

    Vai ad Accesso VPC serverless

  2. Seleziona il connettore da modificare e fai clic su Modifica.

  3. Nel campo Numero minimo di istanze, seleziona il numero minimo di istanze che preferisci.

    Il valore minimo possibile per questo campo è il valore corrente. Il valore più alto possibile per questo campo è il valore corrente nel campo Numero massimo di istanze meno 1. Ad esempio, se il valore nel campo Numero massimo di istanze è 8, il valore più alto possibile per il campo Istanze minime è 7.

  4. Nel campo Numero massimo di istanze, seleziona il numero massimo di istanze che preferisci.

    Il valore minimo possibile per questo campo è il valore corrente. Il valore più alto possibile per questo campo è 10.

gcloud

  1. Per aumentare il numero minimo o massimo di istanze per il connettore, esegui il comando seguente nel terminale:
    gcloud beta compute networks vpc-access connectors update CONNECTOR_NAME --region=REGION --min-instances=MIN_INSTANCES --max-instances=MAX_INSTANCES
    
    Sostituisci quanto segue:
  • CONNECTOR_NAME: il nome del connettore
  • REGION: nome della regione del connettore
  • MIN_INSTANCES: il tuo numero minimo preferito di istanze.
    • Il valore minimo possibile per questo campo è il valore corrente di min_instances. Per trovare il valore corrente, consulta Trovare i valori dell'attributo attuale.
    • Il valore massimo possibile per questo campo è l'attuale valore max_instances meno 1, perché min_instances deve essere inferiore a max_instances. Ad esempio, se max_instances è 8, il valore più alto possibile per questo campo è 7. Se il connettore utilizza il valore predefinito max-instances di 10, il valore più alto possibile di questo campo è 9. Per trovare il valore di max-instances, consulta Trovare i valori degli attributi correnti.
  • MAX_INSTANCES:

    • Il valore minimo possibile per questo campo è il valore corrente di max_instances. Per trovare il valore corrente, consulta Trovare i valori dell'attributo attuale.
    • Il valore massimo possibile per questo campo è 10.

    Se vuoi aumentare solo il numero minimo di istanze ma non il numero massimo, devi comunque specificare il numero massimo di istanze. Al contrario, se vuoi aggiornare solo il numero massimo di istanze ma non il numero minimo, devi comunque specificare il numero minimo di istanze. Per mantenere il numero minimo o massimo di istanze al valore attuale, specifica il valore attuale. Per trovare il valore attuale, consulta Trovare i valori degli attributi correnti.

Trova gli attuali valori degli attributi

  1. Per trovare gli attuali valori degli attributi per il connettore, esegui questo comando nel terminale:

    gcloud compute networks vpc-access connectors describe CONNECTOR_NAME --region=REGION --project=PROJECT
    
    Sostituisci quanto segue:

    • CONNECTOR_NAME: il nome del connettore
    • REGION: nome della regione del connettore
    • PROJECT: il nome del tuo progetto Google Cloud

Eliminare un connettore

Prima di eliminare un connettore, assicurati che non vi siano ancora servizi o job ancora collegati.

Per gli utenti di VPC condivisi che hanno configurato connettori nel progetto host del VPC condiviso, puoi utilizzare il comando gcloud compute networks vpc-access connectors describe per elencare i progetti in cui sono presenti servizi o job che utilizzano un determinato connettore.

Per eliminare un connettore, utilizza la console Google Cloud o Google Cloud CLI:

Console

  1. Vai alla pagina Panoramica dell'accesso VPC serverless nella console Google Cloud:

    Vai ad Accesso VPC serverless

  2. Seleziona il connettore da eliminare.

  3. Fai clic su Elimina.

gcloud

Utilizza il seguente comando gcloud per eliminare un connettore:

gcloud compute networks vpc-access connectors delete CONNECTOR_NAME --region=REGION

Sostituisci quanto segue:

  • CONNECTOR_NAME con il nome del connettore che vuoi eliminare
  • REGION con la regione in cui si trova il connettore

Risolvere i problemi

Autorizzazioni account di servizio

Per eseguire le operazioni nel progetto Cloud, l'accesso VPC serverless utilizza l'account di servizio agente di servizio VPC di accesso serverless. L'indirizzo email di questo account di servizio ha il seguente formato:

service-PROJECT_NUMBER@gcp-sa-vpcaccess.iam.gserviceaccount.com

Per impostazione predefinita, questo account di servizio ha il ruolo Agente di servizio VPC di accesso serverless (roles/vpcaccess.serviceAgent). Le operazioni di accesso VPC serverless potrebbero non riuscire se modifichi le autorizzazioni di questo account.

Errori

Se la creazione di un connettore genera un errore, prova quanto segue:

  • Specifica un intervallo IP interno RFC 1918 che non si sovrapponga a prenotazioni di indirizzi IP esistenti nella rete VPC.
  • Concedi al tuo progetto l'autorizzazione per utilizzare le immagini VM di Compute Engine dal progetto con ID serverless-vpc-access-images. Per ulteriori informazioni su come aggiornare i criteri dell'organizzazione di conseguenza, consulta Impostare i vincoli di accesso alle immagini.

Se hai specificato un connettore, ma non riesci ancora ad accedere alle risorse nella rete VPC, assicurati che non esistano regole firewall sulla rete VPC con priorità prima di 1000 che neghino l'accesso dall'intervallo IP del connettore.

Se ricevi connection refused errori che riducono le prestazioni della rete, le connessioni potrebbero crescere senza limiti nelle chiamate dell'applicazione serverless. Per limitare il numero massimo di connessioni utilizzate per istanza, utilizza una libreria client che supporti i pool di connessioni. Per esempi dettagliati su come utilizzare i pool di connessioni, consulta Gestire le connessioni ai database.

Autorizzazione necessaria mancante: vpcaccess.connectors.use per l'account di servizio...

Innanzitutto, assicurati che il ruolo roles/vpcaccess.user sia assegnato all'account di servizio.

Se continui a riscontrare problemi di autorizzazione con il connettore VPC, verifica se si tratta di un VPC condiviso. In questo caso, è necessaria una configurazione aggiuntiva sul progetto host.

Passaggi successivi