Batch adalah layanan terkelola sepenuhnya yang memungkinkan Anda menjadwalkan, memasukkan dalam antrean, dan menjalankan batch processing workload pada instance virtual machine (VM) Compute Engine. Batch menyediakan resource dan mengelola kapasitas untuk Anda, sehingga beban kerja batch Anda dapat berjalan dalam skala besar.
Workflows memungkinkan Anda mengeksekusi layanan yang diperlukan dalam urutan yang Anda tentukan menggunakan sintaksis Workflows.
Dalam tutorial ini, Anda akan menggunakan konektor Workflows untuk Batch guna menjadwalkan dan menjalankan tugas Batch yang mengeksekusi enam tugas secara paralel di dua VM Compute Engine. Dengan menggunakan Batch dan Workflows, Anda dapat menggabungkan keunggulan yang ditawarkan keduanya serta menyediakan dan mengatur seluruh proses secara efisien.
Membuat repositori Artifact Registry
Buat repositori untuk menyimpan image container Docker Anda.
Konsol
Di konsol Google Cloud , buka halaman Repositories.
Klik
Create Repository.Masukkan containers sebagai nama repositori.
Untuk Format, pilih Docker.
Untuk Jenis Lokasi, pilih Region.
Dalam daftar Region, pilih us-central1.
Klik Buat.
gcloud
Jalankan perintah berikut:
gcloud artifacts repositories create containers \
--repository-format=docker \
--location=us-central1
Anda telah membuat repositori Artifact Registry bernama containers
di region
us-central1
. Untuk mengetahui informasi selengkapnya tentang region yang didukung, lihat
Lokasi Artifact Registry.
Mendapatkan contoh kode
Google Cloud menyimpan kode sumber aplikasi untuk tutorial ini di GitHub. Anda dapat meng-clone repositori tersebut atau mendownload contohnya.
Clone repositori aplikasi contoh ke komputer lokal Anda:
git clone https://github.com/GoogleCloudPlatform/batch-samples.git
Atau, Anda dapat mendownload contoh dalam file
main.zip
dan mengekstraknya.Ubah ke direktori yang berisi kode contoh:
cd batch-samples/primegen
Anda kini memiliki kode sumber untuk aplikasi di lingkungan pengembangan.
Bangun image Docker menggunakan Cloud Build
Dockerfile
berisi informasi yang diperlukan untuk membangun image Docker menggunakan Cloud Build. Jalankan perintah berikut untuk mem-build-nya:
gcloud builds submit \
-t us-central1-docker.pkg.dev/PROJECT_ID/containers/primegen-service:v1 PrimeGenService/
Ganti PROJECT_ID
dengan project ID Google Cloud
Anda.
Setelah build selesai, Anda akan melihat output yang mirip dengan berikut ini:
DONE
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ID: a54818cc-5d14-467b-bfda-5fc9590af68c
CREATE_TIME: 2022-07-29T01:48:50+00:00
DURATION: 48S
SOURCE: gs://project-name_cloudbuild/source/1659059329.705219-17aee3a424a94679937a7200fab15bcf.tgz
IMAGES: us-central1-docker.pkg.dev/project-name/containers/primegen-service:v1
STATUS: SUCCESS
Dengan Dockerfile, Anda telah membangun image Docker bernama primegen-service
dan
mengirim image tersebut ke repositori Artifact Registry bernama containers
.
Men-deploy alur kerja yang menjadwalkan dan menjalankan tugas Batch
Alur kerja berikut menjadwalkan dan menjalankan tugas Batch yang menjalankan container Docker sebagai enam tugas secara paralel di dua VM Compute Engine. Hasilnya adalah pembuatan enam batch bilangan prima, yang disimpan di bucket Cloud Storage.
Konsol
Di konsol Google Cloud , buka halaman Workflows.
Klik
Buat.Masukkan nama untuk alur kerja baru, seperti
batch-workflow
.Dalam daftar Region, pilih us-central1.
Pilih Service account yang Anda buat sebelumnya.
Klik Berikutnya.
Di editor alur kerja, masukkan definisi berikut untuk alur kerja Anda:
YAML
JSON
Klik Deploy.
gcloud
Buat file kode sumber untuk alur kerja Anda:
touch batch-workflow.JSON_OR_YAML
Ganti
JSON_OR_YAML
denganyaml
ataujson
bergantung pada format alur kerja Anda.Di editor teks, salin alur kerja berikut ke file kode sumber Anda:
YAML
JSON
Deploy alur kerja dengan memasukkan perintah berikut:
gcloud workflows deploy batch-workflow \ --source=batch-workflow.yaml \ --location=us-central1 \ --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Ganti
SERVICE_ACCOUNT_NAME
dengan nama akun layanan yang Anda buat sebelumnya.
Menjalankan alur kerja
Mengeksekusi alur kerja menjalankan definisi alur kerja saat ini yang terkait dengan alur kerja.
Konsol
Di konsol Google Cloud , buka halaman Workflows.
Di halaman Workflows, klik alur kerja batch-workflow untuk membuka halaman detailnya.
Di halaman Workflow details, klik play_arrow Execute.
Klik Execute lagi.
Eksekusi alur kerja akan memerlukan waktu beberapa menit.
Lihat hasil alur kerja di panel Output.
Hasilnya akan terlihat seperti berikut:
{ "bucket": "project-name-job-primegen-TIMESTAMP", "jobId": "job-primegen-TIMESTAMP" }
gcloud
Menjalankan alur kerja:
gcloud workflows run batch-workflow \ --location=us-central1
Eksekusi alur kerja akan memerlukan waktu beberapa menit.
Anda dapat memeriksa status eksekusi yang berjalan lama.
Untuk mendapatkan status eksekusi terakhir yang selesai, jalankan perintah berikut:
gcloud workflows executions describe-last
Hasilnya akan mirip dengan berikut ini:
name: projects/PROJECT_NUMBER/locations/us-central1/workflows/batch-workflow/executions/EXECUTION_ID result: '{"bucket":"project-name-job-primegen-TIMESTAMP","jobId":"job-primegen-TIMESTAMP"}' startTime: '2022-07-29T16:08:39.725306421Z' state: SUCCEEDED status: currentSteps: - routine: main step: returnResult workflowRevisionId: 000001-9ba
Mencantumkan objek di bucket output
Anda dapat mengonfirmasi bahwa hasilnya sesuai yang diharapkan dengan mencantumkan objek di bucket output Cloud Storage.
Konsol
- Di Google Cloud konsol, buka halaman Bucket Cloud Storage.
Di listing bucket, klik nama bucket yang isinya ingin Anda lihat.
Hasilnya akan mirip dengan berikut, dengan total enam file, dan setiap listingan berisi 10.000 bilangan prima:
primes-1-10000.txt primes-10001-20000.txt primes-20001-30000.txt primes-30001-40000.txt primes-40001-50000.txt primes-50001-60000.txt
gcloud
Ambil nama bucket output Anda:
gcloud storage ls
Outputnya mirip dengan hal berikut ini:
gs://PROJECT_ID-job-primegen-TIMESTAMP/
Mencantumkan objek di bucket output Anda:
gcloud storage ls gs://PROJECT_ID-job-primegen-TIMESTAMP/** --recursive
Ganti
TIMESTAMP
dengan stempel waktu yang ditampilkan oleh perintah sebelumnya.Outputnya akan mirip dengan berikut ini, dengan total enam file, dan setiap file mencantumkan 10.000 bilangan prima:
gs://project-name-job-primegen-TIMESTAMP/primes-1-10000.txt gs://project-name-job-primegen-TIMESTAMP/primes-10001-20000.txt gs://project-name-job-primegen-TIMESTAMP/primes-20001-30000.txt gs://project-name-job-primegen-TIMESTAMP/primes-30001-40000.txt gs://project-name-job-primegen-TIMESTAMP/primes-40001-50000.txt gs://project-name-job-primegen-TIMESTAMP/primes-50001-60000.txt