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 tugas, lewati penentuan jaringan untuk menggunakan konfigurasi jaringan default.
Untuk informasi selengkapnya tentang konsep jaringan dan kapan harus mengonfigurasi jaringan, lihat Ringkasan jaringan batch.
Sebelum memulai
- Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
-
Untuk mendapatkan izin yang Anda perlukan guna membuat tugas yang berjalan di jaringan tertentu, minta administrator untuk memberi Anda peran IAM berikut:
-
Batch Job Editor (
roles/batch.jobsEditor
) di project -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser
) di akun layanan tugas, yang secara default adalah akun layanan Compute Engine default -
Untuk mengidentifikasi jaringan dan subnet:
Compute Network Viewer (
roles/compute.networkViewer
) pada project
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Batch Job Editor (
-
Identifikasi jaringan yang ingin Anda
gunakan untuk tugas. Jaringan yang Anda tentukan untuk tugas harus memenuhi persyaratan
berikut:
- Jaringan tersebut adalah jaringan Virtual Private Cloud (VPC) yang berada dalam project yang sama dengan tugas atau merupakan jaringan VPC Bersama yang dihosting oleh atau dibagikan ke project untuk tugas tersebut.
- Jaringan menyertakan subnetwork (subnet) di lokasi tempat Anda ingin menjalankan tugas.
-
Jaringan memungkinkan akses yang diperlukan untuk pekerjaan Anda. Misalnya, jika tugas Anda memerlukan komunikasi antar-VM—seperti tugas yang menggunakan library MPI untuk berkomunikasi antar-tugas yang terikat erat—pastikan jaringan memiliki aturan firewall yang mengizinkan koneksi antar-VM tugas.
Pelajari cara Mengonfigurasi aturan firewall VPC untuk kasus penggunaan umum.
-
Jika Anda ingin tugas berjalan di subnet jaringan VPC Bersama yang
dihosting oleh project lain, Agen layanan batch
project Anda harus diberi izin untuk menggunakan subnet tersebut.
Untuk memastikan bahwa agen layanan Batch project Anda memiliki izin yang diperlukan untuk membuat tugas yang berjalan di subnet jaringan VPC Bersama, minta administrator untuk memberikan peran IAM Compute Network User (
roles/compute.networkUser
) kepada agen layanan Batch project Anda di subnet VPC Bersama.Untuk mengetahui informasi selengkapnya, lihat dokumentasi untuk menyiapkan VPC Bersama untuk akun layanan.
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 dengan 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
- Menggunakan kolom JSON untuk menentukan jaringan untuk tugas
Menggunakan flag gcloud untuk menentukan jaringan untuk tugas
Untuk membuat tugas dan menggunakan flag gcloud guna menentukan jaringan untuk tugas, selesaikan langkah-langkah berikut:
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" } }
Buat tugas menggunakan perintah
gcloud batch jobs submit
. Untuk menentukan jaringan tugas, sertakan flag--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 tugas ini.LOCATION
: lokasi untuk tugas 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 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
).
- Jika menyertakan
kolom
SUBNET
: nama subnet yang merupakan bagian dari jaringan VPC dan berada di region yang sama dengan VM untuk tugas.
Menggunakan kolom JSON untuk menentukan jaringan untuk tugas
Untuk membuat tugas dan menggunakan kolom dalam file konfigurasi JSON guna menentukan jaringan untuk tugas, selesaikan langkah-langkah berikut:
Buat file JSON yang menentukan detail konfigurasi tugas Anda. Untuk menentukan jaringan bagi tugas, sertakan kolom
network
dansubnetwork
.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 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
).
- Jika menyertakan
kolom
SUBNET
: nama subnet yang merupakan bagian dari jaringan VPC dan berada di region yang sama dengan VM untuk tugas.
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 tugas ini.LOCATION
: lokasi untuk tugas ini.JSON_CONFIGURATION_FILE
: jalur untuk file JSON dengan detail konfigurasi tugas.
Java
Node.js
Python
API
Untuk membuat tugas menggunakan Batch API, gunakan
metode jobs.create
dan tentukan detail konfigurasi tugas Anda.
Untuk menentukan jaringan bagi 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 tugas ini.JOB_NAME
: nama untuk tugas 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 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
).
- Jika menyertakan
kolom
SUBNET
: nama subnet yang merupakan bagian dari jaringan VPC dan berada di region yang sama dengan VM untuk tugas.
Langkah selanjutnya
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Pelajari jaringan lebih lanjut.
- Pelajari lebih lanjut cara membuat tugas.
- Pelajari cara melihat tugas dan tugas.