Connettività ai servizi ospitati in un ambiente serverless
Questa pagina descrive come configurare Integration Connectors per connettersi a servizi ospitati in ambienti serverless come Cloud Run in Google Cloud.
L'immagine seguente mostra la configurazione della connettività di rete privata da Integration Connectors a un servizio ospitato nell'ambiente Cloud Run di Google Cloud:
In questa pagina si presuppone che tu abbia familiarità con i seguenti concetti:
- Collegamenti endpoint
- Zone gestite
- Private Service Connect (PSC)
- Bilanciatore del carico Google Cloud
Considerazioni
Quando crei un collegamento a un servizio PSC, considera i seguenti punti chiave:
- Il collegamento al servizio PSC e il bilanciatore del carico vengono creati in subnet diverse all'interno dello stesso VPC. Nello specifico, il collegamento del servizio viene sempre creato in una subnet NAT.
- Il traffico dal bilanciatore del carico e dal probe del controllo di integrità deve essere inviato alla stessa porta.
- Configura le regole del firewall per facilitare il flusso di traffico.
Regole in entrata
Il traffico proveniente dalla subnet del collegamento del servizio PSC deve raggiungere il servizio di backend.
Regole in uscita
Il traffico in uscita è abilitato per impostazione predefinita in un progetto Google Cloud, a meno che non e regole di negazione.
- Tutti i componenti di Google Cloud, come il collegamento al servizio PSC e il bilanciatore del carico, devono trovarsi nella stessa regione.
Crea un collegamento a un servizio PSC
Per stabilire una connettività privata da Integration Connectors, il servizio deve essere esposto a Integration Connectors utilizzando un collegamento a un servizio PSC. Un collegamento a un servizio utilizza sempre un bilanciatore del carico. Pertanto, se il servizio non si trova dietro un bilanciatore del carico, è necessario configurarne uno.
- Creare un bilanciatore del carico. Se hai già un bilanciatore del carico, salta questo passaggio.
Crea un bilanciatore del carico delle applicazioni utilizzando un NEG serverless come backend seguendo le istruzioni in Configurare un bilanciatore del carico delle applicazioni interno regionale con Cloud Run.
- Crea il collegamento al servizio
- Crea una subnet per PSC NAT. Il comando seguente crea una subnet con il nome
psc-nat-subnet1
e lo scopo èPRIVATE_SERVICE_CONNECT
.gcloud compute networks subnets create psc-nat-subnet1 \ --network=VPC_NETWORK --range=SUBNET_RANGE_1 \ --purpose=PRIVATE_SERVICE_CONNECT
- Crea una regola firewall per consentire il traffico dal NAT PSC al bilanciatore del carico.
gcloud compute network-firewall-policies rules create PRIORITY --firewall-policy FIREWALL_POLICY_NAME_SA \ --direction=INGRESS --network=VPC_NETWORK \ --action=allow --allow=tcp:BACKEND_SERVER_PORT --src-ip-ranges=SUBNET_RANGE_1
- Creare un collegamento a un servizio con approvazione esplicita.
gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME --producer-forwarding-rule=FORWARDING_RULE_NAME --connection-preference=ACCEPT_MANUAL --consumer-accept-list=SERVICE_DIRECTORY_PROJECT_ID=LIMIT --nat-subnets=psc-nat-subnet1
In questo comando, LIMIT è il limite di connessioni per il progetto. Il limite di connessioni è il numero di consumatori Endpoint PSC che possono connettersi a questo servizio. Per ottenere il SERVICE_DIRECTORY_PROJECT_ID, svolgi i seguenti passaggi:
-
Puoi creare il collegamento al servizio PSC in modo che accetti le richieste solo dai progetti Google Cloud specificati. Tuttavia, per farlo, devi avere l'ID progetto della directory dei servizi associata al tuo progetto Google Cloud. Per ottenere l'ID progetto della directory dei servizi, puoi utilizzare l'API List Connections come mostrato di seguito esempio.
Sintassi
curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/CONNECTORS_PROJECT_ID/locations/-/connections"
Sostituisci quanto segue:
- CONNECTORS_PROJECT_ID: l'ID del progetto Google Cloud in cui hai creato la connessione.
Esempio
Questo esempio recupera l'ID progetto della directory dei servizi per il progetto Google Cloud
connectors-test
.curl -X GET \ -H "authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://connectors.googleapis.com/v1/projects/connectors-test/locations/-/connections"
L'esecuzione di questo comando sul terminale mostra un output simile al seguente:
..... { "connections": [ { "name": "projects/connectors-test/locations/asia-northeast1/connections/big-query-iam-invalid-sa", "createTime": "2022-10-07T09:02:31.905048520Z", "updateTime": "2022-10-07T09:22:39.993778690Z", "connectorVersion": "projects/connectors-test/locations/global/providers/gcp/connectors/bigquery/versions/1", "status": { "state": "ACTIVE" }, "configVariables": [ { "key": "project_id", "stringValue": "connectors-test" }, { "key": "dataset_id", "stringValue": "testDataset" } ], "authConfig": {}, "serviceAccount": "564332356444-compute@developer.gserviceaccount.com", "serviceDirectory": "projects/abcdefghijk-tp/locations/asia-northeast1/namespaces/connectors/services/runtime", "nodeConfig": { "minNodeCount": 2, "maxNodeCount": 50 } }, ....
Nell'output di esempio, per il progetto Google Cloud
connectors-test
, l'ID progetto della directory dei servizi èabcdefghijk-tp
.
-
- Crea una subnet per PSC NAT. Il comando seguente crea una subnet con il nome
Crea un collegamento dell'endpoint per utilizzare il collegamento al servizio PSC
Collegamento dell'endpoint come indirizzo IPPer istruzioni su come creare un collegamento endpoint come indirizzo IP, consulta Creare un collegamento dell'endpoint come indirizzo IP.
Collegamento dell'endpoint come nome hostIn alcuni casi, ad esempio con i backend abilitati per TLS, la destinazione richiede l'utilizzo di nomi host anziché di IP privati per eseguire la convalida TLS. Nei casi in cui un utente Il DNS viene utilizzato al posto di un indirizzo IP per la destinazione host, oltre a creare un endpoint come indirizzo IP, devi anche configurare le zone gestite. Per istruzioni su come creare un allegato dell'endpoint come nome host, consulta Creare un allegato dell'endpoint come nome host.
In seguito, quando configuri la connessione per utilizzare il collegamento dell'endpoint, puoi selezionare questo collegamento.
Configura una connessione per utilizzare il collegamento dell'endpoint
Ora che hai creato un collegamento endpoint, utilizzalo nella tua connessione. Quando crei una nuova connessione o aggiorni una esistente, nella sezione Destinazioni seleziona Collegamento di endpoint come Tipo di destinazione e seleziona il collegamento di endpoint che hai creato dall'elenco Collegamento di endpoint.
Se hai creato una zona gestita, seleziona Indirizzo host come Tipo di destinazione e utilizza il record A che hai creato durante la creazione della zona gestita.
Suggerimenti per la risoluzione dei problemi
Segui le linee guida riportate in questa sezione per evitare problemi comuni:
- Per verificare che il collegamento dell'endpoint sia configurato correttamente e che la connessione al PSC sia stabilita, controlla lo stato della connessione. Per ulteriori informazioni, vedi Verificare la connessione del collegamento dell'endpoint.
- Per informazioni sulla risoluzione dei problemi relativi ai bilanciatori del carico, consulta Risolvere i problemi relativi ai bilanciatori del carico delle applicazioni interni.
- Test di connettività Google Cloud può essere utilizzato per identificare eventuali lacune nella configurazione di rete. Per ulteriori informazioni, consulta Creare ed eseguire test di connettività.