Menentukan jaringan untuk tugas

Dokumen ini menjelaskan cara menentukan jaringan untuk VM yang menjalankan tugas.

Anda dapat mengontrol koneksi untuk VM yang menjalankan tugas dengan menentukan jaringan dengan akses yang diinginkan. Misalnya, Anda dapat menentukan jaringan yang memungkinkan tugas mengakses resource yang diperlukan atau membatasi akses untuk meningkatkan keamanan. Atau, jika Anda tidak memiliki persyaratan jaringan dan tidak ingin mengonfigurasi jaringan untuk suatu tugas, lewati penentuan jaringan untuk menggunakan konfigurasi jaringan default.

Untuk mengetahui informasi selengkapnya mengenai konsep jaringan dan waktu untuk mengonfigurasi jaringan, lihat Ringkasan jaringan batch.

Sebelum memulai

Membuat tugas yang berjalan di jaringan tertentu

Tentukan jaringan untuk tugas saat Anda membuatnya. Secara khusus, Anda perlu menentukan jaringan VPC dan subnet yang terletak di tempat Anda ingin menjalankan tugas ini.

Jika ingin menggunakan template instance VM saat membuat tugas ini, Anda harus menentukan jaringan di template instance VM. Jika tidak, gunakan langkah-langkah berikut untuk menentukan jaringan untuk tugas menggunakan gcloud CLI atau Batch API.

gcloud

Untuk membuat tugas yang berjalan di jaringan tertentu menggunakan gcloud CLI, pilih salah satu opsi berikut:

Menggunakan flag gcloud untuk menentukan jaringan untuk tugas

Untuk membuat tugas dan menggunakan flag gcloud guna menentukan jaringan untuk tugas tersebut, selesaikan langkah-langkah berikut:

  1. Buat file JSON yang menentukan detail konfigurasi tugas Anda.

    Misalnya, untuk membuat tugas skrip dasar, buat file JSON dengan konten berikut.

    {
      "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. Buat tugas menggunakan perintah gcloud batch jobs submit. Untuk menentukan tugas jaringan, sertakan tanda --network dan --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
    

    Ganti kode berikut:

    • JOB_NAME: nama untuk pekerjaan ini.
    • LOCATION: lokasi untuk pekerjaan ini.
    • JSON_CONFIGURATION_FILE: jalur untuk file JSON dengan detail konfigurasi tugas.
    • HOST_PROJECT_ID: project ID project untuk jaringan yang Anda tentukan:
      • Jika Anda menggunakan jaringan VPC Bersama, tentukan project host.
      • Jika tidak, tentukan project saat ini.
    • NETWORK: nama jaringan VPC dalam project saat ini atau jaringan VPC Bersama yang dihosting oleh atau dibagikan dengan project saat ini.
    • REGION: region tempat subnet dan VM untuk tugas berada:
      • Jika Anda menyertakan kolom allowedLocations untuk menentukan lokasi yang diizinkan bagi VM untuk tugas, Anda harus menentukan region yang sama di sini.
      • Jika tidak, region harus sama dengan lokasi yang Anda pilih untuk tugas (LOCATION).
    • SUBNET: nama subnet yang merupakan bagian dari jaringan VPC dan terletak di region yang sama dengan VM untuk tugas tersebut.

Menggunakan kolom JSON untuk menentukan jaringan untuk suatu tugas

Untuk membuat tugas dan menggunakan kolom di file konfigurasi JSON guna menentukan jaringan untuk tugas tersebut, selesaikan langkah-langkah berikut:

  1. Buat file JSON yang menentukan detail konfigurasi tugas Anda. Guna menentukan jaringan untuk tugas, sertakan kolom network dan subnetwork.

    Misalnya, untuk membuat tugas skrip dasar yang berjalan di jaringan tertentu, buat file JSON dengan konten berikut.

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

    Ganti kode berikut:

    • HOST_PROJECT_ID: project ID project untuk jaringan yang Anda tentukan:
      • Jika Anda menggunakan jaringan VPC Bersama, tentukan project host.
      • Jika tidak, tentukan project saat ini.
    • NETWORK: nama jaringan VPC dalam project saat ini atau jaringan VPC Bersama yang dihosting oleh atau dibagikan dengan project saat ini.
    • REGION: region tempat subnet dan VM untuk tugas berada:
      • Jika Anda menyertakan kolom allowedLocations untuk menentukan lokasi yang diizinkan bagi VM untuk tugas, Anda harus menentukan region yang sama di sini.
      • Jika tidak, region harus sama dengan lokasi yang Anda pilih untuk tugas (LOCATION).
    • SUBNET: nama subnet yang merupakan bagian dari jaringan VPC dan terletak di region yang sama dengan VM untuk tugas tersebut.
  2. Buat tugas menggunakan perintah gcloud batch jobs submit.

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

    Ganti kode berikut:

    • JOB_NAME: nama untuk pekerjaan ini.
    • LOCATION: lokasi untuk pekerjaan ini.
    • JSON_CONFIGURATION_FILE: jalur untuk file JSON dengan detail konfigurasi tugas.

API

Untuk membuat tugas menggunakan Batch API, gunakan metode jobs.create dan tentukan detail konfigurasi tugas Anda. Guna menentukan jaringan untuk tugas, sertakan kolom network dan subnetwork.

Misalnya, untuk membuat tugas skrip dasar yang berjalan di jaringan tertentu, buat permintaan POST berikut:

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

Ganti kode berikut:

  • PROJECT_ID: project ID project Anda.
  • LOCATION: lokasi untuk pekerjaan ini.
  • JOB_NAME: nama untuk pekerjaan ini.
  • HOST_PROJECT_ID: project ID project untuk jaringan yang Anda tentukan:
    • Jika Anda menggunakan jaringan VPC Bersama, tentukan project host.
    • Jika tidak, tentukan project saat ini (PROJECT_ID).
  • NETWORK: nama jaringan VPC dalam project saat ini atau jaringan VPC Bersama yang dihosting oleh atau dibagikan dengan project saat ini.
  • REGION: region tempat subnet dan VM untuk tugas berada:
    • Jika Anda menyertakan kolom allowedLocations untuk menentukan lokasi yang diizinkan bagi VM untuk tugas, Anda harus menentukan region yang sama di sini.
    • Jika tidak, region harus sama dengan lokasi yang Anda pilih untuk tugas (LOCATION).
  • SUBNET: nama subnet yang merupakan bagian dari jaringan VPC dan terletak di region yang sama dengan VM untuk tugas tersebut.

Langkah selanjutnya