Ce guide explique comment vérifier qu'un job d'entraînement peut accéder aux adresses IP privées de votre réseau. Tout d'abord, vous devez créer une connexion privée entre votre réseau VPC et AI Platform Training.
Présentation
La configuration de ce test s'effectue en deux étapes :
- Configurez un point de terminaison sur votre réseau.
- Envoyez une tâche d'entraînement de test pour accéder à ce point de terminaison.
Configurer un point de terminaison
Pour configurer un point de terminaison, configurez un serveur local sur une instance de VM de votre réseau.
- Créez une instance Compute Engine dans votre réseau VPC.
- Vérifiez vos règles de pare-feu pour vous assurer qu'elles ne limitent pas les entrées du réseau AI Platform Training. Le cas échéant, ajoutez une règle pour vous assurer que le réseau AI Platform Training peut accéder à la plage d'adresses IP que vous avez réservée pour AI Platform Training (et d'autres producteurs de services).
Recherchez l'adresse IP privée de votre VM :
- Accéder à la page "Instances de VM"
- Accédez à la page Détails de l'instance de VM correspondant à votre instance, puis recherchez l'adresse IP interne répertoriée sur la page.
Définissez le nom de votre instance, puis exécutez la commande
gcloud
suivante :INSTANCE_NAME="your-instance-name" gcloud compute instances describe $INSTANCE_NAME \ --format="value(networkInterfaces.networkIP)"
Connectez-vous en SSH à votre VM et installez Node.js.
Copiez l'exemple de code Node.js et saisissez votre adresse IP privée :
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}/'); }); ```
Exécutez votre serveur :
nodejs hw.js
Déconnectez-vous de la VM SSH pour envoyer votre tâche d'entraînement.
Envoyer une tâche d'entraînement de test
Au lieu d'entraîner un modèle, cette tâche d'entraînement accède à votre point de terminaison pour vérifier qu'AI Platform Training peut accéder aux adresses IP privées de votre réseau.
- Copiez l'exemple d'application d'entraînement Python à envoyer à AI Platform Training.
Mettez à jour le code pour inclure votre adresse IP privée :
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()
Créez un fichier config.yaml pour spécifier le réseau. Si vous utilisez un VPC partagé, utilisez le numéro de votre projet hôte VPC.
Assurez-vous que le format du nom du réseau est correct :
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
Envoyez la tâche à 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
Votre tâche doit réussir et afficher "Peering successful" (Appairage réussi). Cela valide votre connexion d'appairage avec AI Platform Training.