Questa guida spiega come verificare che un job di addestramento possa accedere agli IP privati in della tua rete. Innanzitutto, devi creare una connessione privata tra la tua rete VPC e la formazione della piattaforma AI.
Panoramica
La configurazione di questo test prevede due parti:
- Configura un endpoint nella tua rete.
- Invia un job di addestramento di prova per accedere a quell'endpoint.
configura un endpoint
Per configurare un endpoint, configura un server locale su un'istanza VM nella tua rete.
- Crea un'istanza Compute Engine nella tua rete VPC.
- Controlla le regole del firewall per assicurarti che non limitino l'accesso dalla rete di AI Platform Training. In questo caso, aggiungi una regola per assicurarti che la rete di AI Platform Training possa accedere all'intervallo IP che hai riservato per AI Platform Training (e altri produttori di servizi).
Trova l'indirizzo IP privato della VM:
- Vai alla pagina Istanze VM
- Vai alla pagina Dettagli istanza VM della tua istanza e individua l'IP interno elencato nella pagina.
Imposta il nome dell'istanza ed esegui il seguente comando
gcloud
:INSTANCE_NAME="your-instance-name" gcloud compute instances describe $INSTANCE_NAME \ --format="value(networkInterfaces.networkIP)"
Accedi alla VM tramite SSH e installa Node JS.
Copia il codice Node JS di esempio e inserisci il tuo indirizzo IP privato:
const http = require('http'); // Fill in the value of your vm's private IP const hostname = 'your_private_ip'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World ' + req.url + '\n'); }); server.listen(port, hostname, () => { console.log('Server running at http://${hostname}:${port}/'); }); ```
Esegui il server:
nodejs hw.js
Esci dall'SSH della VM per inviare il job di addestramento.
Invio di un job di addestramento di prova
Invece di addestrare un modello, questo job di addestramento accede al tuo endpoint per verificare che l'addestramento di AI Platform possa accedere all'IP privato nella tua rete.
- Copia l'applicazione di addestramento Python di esempio per inviarla a e AI Platform Training.
Aggiorna il codice in modo da includere il tuo indirizzo IP privato:
import logging import os import sys def main(): # Fill in the value of your vm's private IP hostname = "your_private_ip" response = os.system("curl http://" + hostname + ":3000/you_can_write_your_name_here") if response == 0: print(hostname, "is up!") logging.info("%s is up; Peering successful!", hostname) sys.exit(0) else: logging.error("%s is down; Peering failed!", hostname) sys.exit(1) if __name__ == "__main__": logging.getLogger().setLevel(logging.INFO) main()
Crea un file config.yaml per specificare la rete. Se utilizzi VPC condiviso, utilizza il numero di progetto host VPC.
Assicurati che il nome della rete sia formattato correttamente:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)") NETWORK=your-network-name cat << EOF > config.yaml trainingInput: scaleTier: BASIC network: projects/$PROJECT_NUMBER/global/networks/$NETWORK EOF
Invia il job ad AI Platform Training:
BUCKET_NAME=your_bucket_name JOB_ID='test_vpc_peering_job' gcloud ai-platform jobs submit training $JOB_ID \ --module-name trainingcode.test_peering \ --stream-logs \ --runtime-version 1.15 \ --job-dir gs://$BUCKET_NAME/$JOB_ID \ --region us-central1 \ --package-path trainingcode/ \ --config config.yaml
Il job dovrebbe riuscire e stampare "Peering riuscito", il che convalida la connessione di peering con AI Platform Training.