Netzwerk für einen Job angeben

In diesem Dokument wird erläutert, wie Sie das Netzwerk für die VMs angeben, auf denen ein Job ausgeführt wird.

Sie können Verbindungen für die VMs, die einen Job ausführen, steuern, indem Sie ein Netzwerk mit dem gewünschten Zugriff angeben. Sie können beispielsweise ein Netzwerk angeben, das einem Job den Zugriff auf erforderliche Ressourcen ermöglicht oder den Zugriff beschränkt, um die Sicherheit zu verbessern. Wenn Sie keine Netzwerkanforderungen haben und das Netzwerk für einen Job nicht konfigurieren möchten, überspringen Sie alternativ die Angabe des Netzwerks, um stattdessen die Standardnetzwerkkonfiguration zu verwenden.

Weitere Informationen zu Netzwerkkonzepten und zur Konfiguration des Netzwerks finden Sie unter Batch-Netzwerkübersicht.

Hinweise

Job erstellen, der in einem bestimmten Netzwerk ausgeführt wird

Geben Sie das Netzwerk für einen Job an, wenn Sie ihn erstellen. Insbesondere müssen Sie ein VPC-Netzwerk und ein Subnetz angeben, die sich dort befinden, wo dieser Job ausgeführt werden soll.

Wenn Sie beim Erstellen dieses Jobs eine VM-Instanzvorlage verwenden möchten, müssen Sie das Netzwerk in der VM-Instanzvorlage angeben. Andernfalls führen Sie die folgenden Schritte aus, um das Netzwerk für einen Job über die gcloud CLI oder Batch API anzugeben.

gcloud

Wählen Sie eine der folgenden Optionen aus, um einen Job zu erstellen, der in einem bestimmten Netzwerk über die gcloud CLI ausgeführt wird:

Mit gcloud-Flags das Netzwerk für einen Job angeben

So erstellen Sie einen Job und geben mit gcloud-Flags das Netzwerk für den Job an:

  1. Erstellen Sie eine JSON-Datei, in der die Konfigurationsdetails des Jobs angegeben sind.

    Um beispielsweise einen einfachen Skriptjob zu erstellen, erstellen Sie eine JSON-Datei mit dem folgenden Inhalt.

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
                }
              }
            ]
          },
          "taskCount": 3
        }
      ],
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    
  2. Erstellen Sie den Job mit dem Befehl gcloud batch jobs submit. Fügen Sie die Flags --network und --subnetwork hinzu, um das Netzwerk des Jobs anzugeben.

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE \
        --network projects/HOST_PROJECT_ID/global/networks/NETWORK \
        --subnetwork projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
    

    Ersetzen Sie Folgendes:

    • JOB_NAME: der Name für diesen Job.
    • LOCATION: der Standort für diesen Job
    • JSON_CONFIGURATION_FILE: der Pfad für die JSON-Datei mit den Konfigurationsdetails des Jobs.
    • HOST_PROJECT_ID: die Projekt-ID des Projekts für das von Ihnen angegebene Netzwerk:
      • Wenn Sie ein freigegebene VPC-Netzwerk verwenden, geben Sie das Hostprojekt an.
      • Geben Sie andernfalls das aktuelle Projekt an.
    • NETWORK: der Name eines VPC-Netzwerks im aktuellen Projekt oder eines freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet wird oder für das aktuelle Projekt freigegeben ist.
    • REGION: die Region, in der sich das Subnetz und die VMs für den Job befinden:
      • Wenn Sie das Feld allowedLocations verwenden, um den zulässigen Standort für die VMs für den Job anzugeben, müssen Sie hier dieselbe Region angeben.
      • Andernfalls muss die Region mit dem Standort übereinstimmen, den Sie für den Job ausgewählt haben (LOCATION).
    • SUBNET: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die VMs für den Job befindet.

Mit JSON-Feldern das Netzwerk für einen Job angeben

So erstellen Sie einen Job und verwenden Felder in der JSON-Konfigurationsdatei, um das Netzwerk für den Job anzugeben:

  1. Erstellen Sie eine JSON-Datei, in der die Konfigurationsdetails des Jobs angegeben sind. Fügen Sie die Felder network und subnetwork ein, um das Netzwerk für den Job anzugeben.

    Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der in einem bestimmten Netzwerk ausgeführt wird, erstellen Sie eine JSON-Datei mit folgendem Inhalt.

    {
      "taskGroups": [
        {
          "taskSpec": {
            "runnables": [
              {
                "script": {
                  "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
                }
              }
            ]
          },
          "taskCount": 3
        }
      ],
      "allocationPolicy": {
        "network": {
          "networkInterfaces": [
            {
              "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK",
              "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET"
            }
          ]
        }
      },
      "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    

    Ersetzen Sie Folgendes:

    • HOST_PROJECT_ID: die Projekt-ID des Projekts für das von Ihnen angegebene Netzwerk:
      • Wenn Sie ein freigegebene VPC-Netzwerk verwenden, geben Sie das Hostprojekt an.
      • Geben Sie andernfalls das aktuelle Projekt an.
    • NETWORK: der Name eines VPC-Netzwerks im aktuellen Projekt oder eines freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet wird oder für das aktuelle Projekt freigegeben ist.
    • REGION: die Region, in der sich das Subnetz und die VMs für den Job befinden:
      • Wenn Sie das Feld allowedLocations verwenden, um den zulässigen Standort für die VMs für den Job anzugeben, müssen Sie hier dieselbe Region angeben.
      • Andernfalls muss die Region mit dem Standort übereinstimmen, den Sie für den Job ausgewählt haben (LOCATION).
    • SUBNET: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die VMs für den Job befindet.
  2. Erstellen Sie den Job mit dem Befehl gcloud batch jobs submit.

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE
    

    Ersetzen Sie Folgendes:

    • JOB_NAME: der Name für diesen Job.
    • LOCATION: der Standort für diesen Job
    • JSON_CONFIGURATION_FILE: der Pfad für die JSON-Datei mit den Konfigurationsdetails des Jobs.

API

Verwenden Sie zum Erstellen eines Jobs mit der Batch API die Methode jobs.create und geben Sie die Konfigurationsdetails des Jobs an. Fügen Sie die Felder network und subnetwork ein, um das Netzwerk für den Job anzugeben.

Wenn Sie beispielsweise einen einfachen Skriptjob erstellen möchten, der in einem bestimmten Netzwerk ausgeführt wird, senden Sie die folgende POST-Anfrage:

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
  "taskGroups": [
    {
      "taskSpec": {
        "runnables": [
          {
            "script": {
              "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
            }
          }
        ]
      },
      "taskCount": 3
    }
  ],
  "allocationPolicy": {
    "network": {
      "networkInterfaces": [
        {
          "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK",
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET"
        }
      ]
    }
  },
  "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: die Projekt-ID Ihres Projekts.
  • LOCATION: der Standort für diesen Job.
  • JOB_NAME: der Name für diesen Job.
  • HOST_PROJECT_ID: die Projekt-ID des Projekts für das von Ihnen angegebene Netzwerk:
    • Wenn Sie ein freigegebene VPC-Netzwerk verwenden, geben Sie das Hostprojekt an.
    • Geben Sie andernfalls das aktuelle Projekt an (PROJECT_ID).
  • NETWORK: der Name eines VPC-Netzwerks im aktuellen Projekt oder eines freigegebenen VPC-Netzwerks, das vom aktuellen Projekt gehostet wird oder für das aktuelle Projekt freigegeben ist.
  • REGION: die Region, in der sich das Subnetz und die VMs für den Job befinden:
    • Wenn Sie das Feld allowedLocations verwenden, um den zulässigen Standort für die VMs für den Job anzugeben, müssen Sie hier dieselbe Region angeben.
    • Andernfalls muss die Region mit dem Standort übereinstimmen, den Sie für den Job ausgewählt haben (LOCATION).
  • SUBNET: der Name eines Subnetzes, das Teil des VPC-Netzwerk ist und sich in derselben Region wie die VMs für den Job befindet.

Nächste Schritte