Specifica la rete per un job

Questo documento spiega come specificare la rete per le VM che eseguono un job.

Puoi controllare le connessioni per le VM che eseguono un job specificando una rete con l'accesso desiderato. Ad esempio, puoi specificare una rete che consente a un job di accedere alle risorse richieste o di limitare l'accesso per migliorare la sicurezza. In alternativa, se non hai requisiti di networking e non vuoi configurare il networking per un job, ignora la specifica della rete per utilizzare invece la configurazione di rete predefinita.

Per ulteriori informazioni sui concetti di networking e su quando configurare il networking, consulta Panoramica del networking in batch.

Prima di iniziare

Crea un job eseguito su una rete specifica

Specifica la rete per un job durante la creazione. In particolare, devi specificare una rete VPC e una subnet che si trovano dove vuoi eseguire questo job.

Se vuoi utilizzare un modello di istanza VM durante la creazione di questo job, devi specificare la rete nel modello di istanza VM. In caso contrario, segui i passaggi riportati di seguito per specificare la rete per un job utilizzando gcloud CLI o l'API Batch.

gcloud

Per creare un job in esecuzione su una rete specifica utilizzando gcloud CLI, seleziona una delle seguenti opzioni:

Utilizza i flag gcloud per specificare la rete di un job

Per creare un job e utilizzare i flag gcloud per specificare la rete per il job, completa questi passaggi:

  1. Crea un file JSON che specifichi i dettagli di configurazione del job.

    Ad esempio, per creare un job di script di base, crea un file JSON con i contenuti seguenti.

    {
      "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. Crea il job utilizzando il comando gcloud batch jobs submit. Per specificare la rete del job, includi i flag --network e --subnetwork.

    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
    

    Sostituisci quanto segue:

    • JOB_NAME: il nome di questo job.
    • LOCATION: la località per questo job.
    • JSON_CONFIGURATION_FILE: il percorso del file JSON con i dettagli di configurazione del job.
    • HOST_PROJECT_ID: l'ID progetto del progetto per la rete specificata:
      • Se utilizzi una rete VPC condiviso, specifica il progetto host.
      • Altrimenti, specifica il progetto corrente.
    • NETWORK: il nome di una rete VPC nel progetto attuale o di una rete VPC condivisa ospitata o condivisa con il progetto attuale.
    • REGION: la regione in cui si trovano la subnet e le VM per il job:
      • Se includi il campo allowedLocations per specificare la località consentita per le VM per il job, devi specificare qui la stessa regione.
      • In caso contrario, la regione deve essere uguale alla località selezionata per il job (LOCATION).
    • SUBNET: il nome di una subnet che fa parte della rete VPC e si trova nella stessa regione delle VM per il job.

Utilizzare i campi JSON per specificare la rete per un job

Per creare un job e utilizzare i campi del file di configurazione JSON per specificare la rete per il job, completa i seguenti passaggi:

  1. Crea un file JSON che specifichi i dettagli di configurazione del job. Per specificare la rete per il job, includi i campi network e subnetwork.

    Ad esempio, per creare un job di script di base che viene eseguito su una rete specifica, crea un file JSON con i seguenti contenuti.

    {
      "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"
      }
    }
    

    Sostituisci quanto segue:

    • HOST_PROJECT_ID: l'ID progetto del progetto per la rete specificata:
      • Se utilizzi una rete VPC condiviso, specifica il progetto host.
      • Altrimenti, specifica il progetto corrente.
    • NETWORK: il nome di una rete VPC nel progetto attuale o di una rete VPC condivisa ospitata o condivisa con il progetto attuale.
    • REGION: la regione in cui si trovano la subnet e le VM per il job:
      • Se includi il campo allowedLocations per specificare la località consentita per le VM per il job, devi specificare qui la stessa regione.
      • In caso contrario, la regione deve essere uguale alla località selezionata per il job (LOCATION).
    • SUBNET: il nome di una subnet che fa parte della rete VPC e si trova nella stessa regione delle VM per il job.
  2. Crea il job utilizzando il comando gcloud batch jobs submit.

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

    Sostituisci quanto segue:

    • JOB_NAME: il nome di questo job.
    • LOCATION: la località per questo job.
    • JSON_CONFIGURATION_FILE: il percorso del file JSON con i dettagli di configurazione del job.

API

Per creare un job con l'API Batch, utilizza il metodo jobs.create e specifica i dettagli di configurazione del job. Per specificare la rete per il job, includi i campi network e subnetwork.

Ad esempio, per creare un job di script di base che viene eseguito su una rete specifica, effettua la seguente richiesta POST:

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"
  }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto del progetto.
  • LOCATION: la località per questo lavoro.
  • JOB_NAME: il nome di questo job.
  • HOST_PROJECT_ID: l'ID progetto del progetto per la rete specificata:
    • Se utilizzi una rete VPC condiviso, specifica il progetto host.
    • Altrimenti, specifica il progetto corrente (PROJECT_ID).
  • NETWORK: il nome di una rete VPC nel progetto attuale o di una rete VPC condivisa ospitata o condivisa con il progetto attuale.
  • REGION: la regione in cui si trovano la subnet e le VM per il job:
    • Se includi il campo allowedLocations per specificare la località consentita per le VM per il job, devi specificare qui la stessa regione.
    • In caso contrario, la regione deve essere uguale alla località selezionata per il job (LOCATION).
  • SUBNET: il nome di una subnet che fa parte della rete VPC e si trova nella stessa regione delle VM per il job.

Passaggi successivi