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
- 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 untuk membuat tugas yang berjalan di jaringan tertentu, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Batch Job Editor (
roles/batch.jobsEditor
) pada project -
Service Account User (
roles/iam.serviceAccountUser
) pada 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 pemberian peran, lihat Mengelola akses.
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 pekerjaan itu. Jaringan yang Anda tentukan untuk suatu 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 dengan project untuk tugas tersebut.
- Jaringan ini mencakup subnetwork (subnet) di lokasi tempat Anda ingin menjalankan tugas.
-
Jaringan memungkinkan akses yang diperlukan untuk tugas Anda. Misalnya, jika tugas Anda memerlukan komunikasi antar-VM—seperti tugas yang menggunakan library MPI untuk berkomunikasi antara tugas yang terkait erat—pastikan jaringan tersebut memiliki aturan firewall yang mengizinkan koneksi antara VM tugas tersebut.
Pelajari cara Mengonfigurasi aturan firewall VPC untuk kasus penggunaan umum.
-
Jika Anda ingin tugas dijalankan pada subnet jaringan VPC Bersama yang dihosting oleh project lain, agen layanan Batch project Anda harus diberi izin untuk menggunakan subnet tersebut.
Untuk memastikan agen layanan Batch project Anda memiliki izin yang diperlukan untuk membuat tugas yang berjalan pada subnet jaringan VPC Bersama, minta administrator Anda untuk memberikan peran IAM Compute Network User (
roles/compute.networkUser
) pada subnet VPC Bersama kepada agen layanan Batch project Anda.Untuk 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 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 guna menentukan jaringan untuk tugas
- Menggunakan kolom JSON untuk menentukan jaringan untuk suatu tugas
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:
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 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
).
- Jika Anda menyertakan kolom
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:
Buat file JSON yang menentukan detail konfigurasi tugas Anda. Guna menentukan jaringan untuk 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 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
).
- Jika Anda menyertakan kolom
SUBNET
: nama subnet yang merupakan bagian dari jaringan VPC dan terletak di region yang sama dengan VM untuk tugas tersebut.
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
).
- Jika Anda menyertakan kolom
SUBNET
: nama subnet yang merupakan bagian dari jaringan VPC dan terletak di region yang sama dengan VM untuk tugas tersebut.
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.