In diesem Abschnitt wird erläutert, wie Sie testen können, ob ein Trainingsjob auf private IP-Adressen in Ihrem Netzwerk zugreifen kann. Zuerst müssen Sie eine private Verbindung zwischen Ihrem VPC-Netzwerk und AI Platform Training erstellen,
Übersicht
Das Einrichten dieses Tests besteht aus zwei Teilen:
- Endpunkt in Ihrem Netzwerk einrichten
- Einen Testtrainingsjob senden, um Zugriff auf diesen Endpunkt zu erhalten
Endpunkt einrichten
Zum Einrichten eines Endpunkts richten Sie einen lokalen Server auf einer VM-Instanz in Ihrem Netzwerk ein.
- Erstellen Sie eine Compute Engine-Instanz in Ihrem VPC-Netzwerk.
- Prüfen Sie Ihre Firewallregeln, um sicherzustellen, dass sie den eingehenden Traffic aus dem AI Platform-Trainingsnetzwerk nicht einschränken. Falls ja, fügen Sie eine Regel hinzu, um sicherzustellen, dass das AI Platform Training-Netzwerk auf den IP-Bereich zugreifen kann, den Sie für AI Platform Training (und andere Dienstersteller) reserviert haben.
Suchen Sie die private IP-Adresse Ihrer VM:
- Zur Seite "VM-Instanzen"
- Gehen Sie zur Seite VM-Instanzdetails Ihrer Instanz und suchen Sie die interne IP-Adresse, die auf der Seite aufgeführt ist.
Legen Sie den Namen Ihrer Instanz fest und führen Sie den folgenden
gcloud
-Befehl aus:INSTANCE_NAME="your-instance-name" gcloud compute instances describe $INSTANCE_NAME \ --format="value(networkInterfaces.networkIP)"
Stellen Sie eine SSH-Verbindung zu Ihrer VM her und installieren Sie Node.js.
Kopieren Sie den Node JS-Beispielcode und geben Sie Ihre private IP-Adresse ein:
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}/'); }); ```
Führen Sie den Server aus:
nodejs hw.js
Beenden Sie die VM-SSH-Verbindung, um den Trainingsjob zu senden.
Testtrainingsjob senden
Anstatt ein Modell zu trainieren, greift dieser Trainingsjob auf den Endpunkt zu, um zu prüfen, ob AI Platform Training auf die private IP-Adresse in Ihrem Netzwerk zugreifen kann.
- Kopieren Sie die Python-Trainingsanwendung, die Sie an AI Platform Training senden möchten.
Aktualisieren Sie den Code mit Ihrer privaten IP-Adresse:
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()
Erstellen Sie eine config.yaml, um das Netzwerk anzugeben. Wenn Sie eine freigegebene VPC verwenden, geben Sie die Nummer Ihres VPC-Hostprojekts an.
Prüfen Sie, ob der Netzwerkname richtig formatiert ist:
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
Senden Sie den Job an 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
Wenn der Job erfolgreich ist, sehen Sie "Peering erfolgreich". Damit ist die Peering-Verbindung mit AI Platform Training validiert.