Menjalankan tugas Batch menggunakan Workflows


Batch adalah layanan terkelola sepenuhnya yang membuat Anda dapat menjadwalkan, memasukkan dalam antrean, dan menjalankan workload batch processing di instance virtual machine (VM) Compute Engine. Batch menyediakan resource dan mengelola kapasitas atas nama Anda, sehingga memungkinkan workload batch Anda berjalan dalam skala besar.

Alur kerja memungkinkan Anda menjalankan layanan yang diperlukan dalam urutan yang Anda tentukan yang dijelaskan menggunakan sintaksis alur kerja.

Dalam tutorial ini, Anda menggunakan konektor alur kerja untuk Batch guna menjadwalkan dan menjalankan tugas Batch yang menjalankan enam tugas secara paralel pada dua VM Compute Engine. Dengan menggunakan Batch dan Workflows, Anda dapat menggabungkan keunggulan yang ditawarkan serta menyediakan dan mengorkestrasi seluruh proses secara efisien.

Tujuan

Dalam tutorial ini, Anda akan:

  1. Membuat repositori Artifact Registry untuk image container Docker.
  2. Dapatkan kode untuk beban kerja batch processing dari GitHub: program contoh yang menghasilkan bilangan prima dalam batch 10.000.
  3. Membangun image Docker untuk beban kerja.
  4. Deploy dan jalankan alur kerja yang melakukan hal berikut:
    1. Membuat bucket Cloud Storage untuk menyimpan hasil generator bilangan prima.
    2. Menjadwalkan dan menjalankan tugas Batch yang menjalankan container Docker sebagai enam tugas secara paralel di dua VM Compute Engine.
    3. Secara opsional, menghapus tugas Batch setelah selesai.
  5. Konfirmasi bahwa hasilnya sesuai yang diharapkan dan bahwa batch bilangan prima yang dihasilkan disimpan di Cloud Storage.

Anda dapat menjalankan sebagian besar perintah berikut di Google Cloud Console, atau menjalankan semua perintah menggunakan Google Cloud CLI di terminal atau Cloud Shell.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Sebelum memulai

Batasan keamanan yang ditentukan oleh organisasi mungkin mencegah Anda menyelesaikan langkah-langkah berikut. Untuk mengetahui informasi pemecahan masalah, lihat Mengembangkan aplikasi di lingkungan Google Cloud yang terbatas.

Konsol

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.

  3. Aktifkan Artifact Registry, Batch, Cloud Build, Compute Engine, Workflow Executions, dan Workflows API.

    Mengaktifkan API

  4. Buat akun layanan untuk alur kerja Anda yang akan digunakan untuk autentikasi dengan layanan Google Cloud lainnya dan berikan peran yang sesuai:

    1. Di konsol Google Cloud, buka halaman Create service account.

      Buka Create service account

    2. Pilih project Anda.

    3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud mengisi kolom Service account ID berdasarkan nama ini.

      Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Misalnya, Service account for tutorial.

    4. Klik Buat dan lanjutkan.

    5. Pada daftar Select a role, filter untuk peran berikut yang akan diberikan ke akun layanan yang dikelola pengguna yang Anda buat di langkah sebelumnya:

      • Editor tugas batch: untuk mengedit tugas Batch.
      • Logs Writer: untuk menulis log.
      • Storage Admin: untuk mengontrol resource Cloud Storage.

      Untuk peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran lainnya.

    6. Klik Lanjutkan.

    7. Untuk menyelesaikan pembuatan akun, klik Selesai.

  5. Berikan peran IAM Service Account User pada akun layanan default ke akun layanan yang dikelola pengguna yang dibuat pada langkah sebelumnya. Setelah Anda mengaktifkan Compute Engine API, akun layanan default-nya adalah akun layanan default Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com), dan izin biasanya ditetapkan melalui peran roles/iam.serviceAccountUser.

    1. Di halaman Service Accounts, klik alamat email akun layanan default (PROJECT_NUMBER-compute@developer.gserviceaccount.com).

    2. Klik tab Izin.

    3. Klik tombol Berikan akses.

    4. Untuk menambahkan akun utama baru, masukkan alamat email akun layanan Anda (SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com).

    5. Pada daftar Select a role, pilih peran Service Accounts > Service Account User.

    6. Klik Save.

gcloud

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda. Pelajari cara memeriksa apakah penagihan telah diaktifkan pada suatu project.

  3. Aktifkan Artifact Registry, Batch, Cloud Build, Compute Engine Workflow Executions, dan Workflows API.

    gcloud services enable artifactregistry.googleapis.com \
      batch.googleapis.com \
      cloudbuild.googleapis.com \
      compute.googleapis.com \
      workflowexecutions.googleapis.com \
      workflows.googleapis.com
    
  4. Buat akun layanan untuk alur kerja Anda yang akan digunakan untuk autentikasi dengan layanan Google Cloud lainnya dan berikan peran yang sesuai kepadanya.

    1. Buat akun layanan:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
      

      Ganti SERVICE_ACCOUNT_NAME dengan nama untuk akun layanan.

    2. Berikan peran ke akun layanan yang dikelola pengguna yang Anda buat di langkah sebelumnya. Jalankan perintah berikut satu kali untuk setiap peran IAM berikut:

      • roles/batch.jobsEditor: untuk mengedit tugas Batch.
      • roles/logging.logWriter: untuk menulis log.
      • roles/storage.admin: untuk mengontrol resource Cloud Storage.
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role=ROLE
      

      Ganti kode berikut:

      • PROJECT_ID: project ID tempat Anda membuat akun layanan
      • ROLE: peran yang akan diberikan
  5. Berikan peran IAM Service Account User di akun layanan default ke akun layanan yang dikelola pengguna yang Anda buat di langkah sebelumnya. Setelah Anda mengaktifkan Compute Engine API, akun layanan default adalah akun layanan default Compute Engine (PROJECT_NUMBER-compute@developer.gserviceaccount.com), dan izin biasanya ditetapkan melalui peran roles/iam.serviceAccountUser.

    PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)')
    gcloud iam service-accounts add-iam-policy-binding \
      $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
      --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role=roles/iam.serviceAccountUser
    

Membuat repositori Artifact Registry

Buat repositori untuk menyimpan image container Docker Anda.

Konsol

  1. Di konsol Google Cloud, buka halaman Repositories.

    Buka Repositori

  2. Klik Create Repository.

  3. Masukkan containers sebagai nama repositori.

  4. Untuk Format, pilih Docker.

  5. Untuk Location Type, pilih Region.

  6. Pada daftar Region, pilih us-central1.

  7. Klik Create.

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 sampel.

  1. 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.

  2. Ubah ke direktori yang berisi kode contoh:

    cd batch-samples/primegen
    

Sekarang Anda telah memiliki kode sumber untuk aplikasi di lingkungan pengembangan.

Membangun image Docker menggunakan Cloud Build

Dockerfile berisi informasi yang diperlukan untuk membangun image Docker menggunakan Cloud Build. Jalankan perintah berikut untuk membangunnya:

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 seperti berikut:

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 menggunakan Dockerfile, Anda telah membangun image Docker bernama primegen-service dan mengirim image 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

  1. Di konsol Google Cloud, buka halaman Workflows.

    Buka Workflows

  2. Klik Buat.

  3. Masukkan nama untuk alur kerja baru, seperti batch-workflow.

  4. Pada daftar Region, pilih us-central1.

  5. Pilih Akun layanan yang telah dibuat sebelumnya.

  6. Klik Next.

  7. Di editor alur kerja, masukkan definisi berikut untuk alur kerja Anda:

    YAML

    main:
      params: [args]
      steps:
        - init:
            assign:
              - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
              - region: "us-central1"
              - imageUri: ${region + "-docker.pkg.dev/" + projectId + "/containers/primegen-service:v1"}
              - jobId: ${"job-primegen-" + string(int(sys.now()))}
              - bucket: ${projectId + "-" + jobId}
        - createBucket:
            call: googleapis.storage.v1.buckets.insert
            args:
              query:
                project: ${projectId}
              body:
                name: ${bucket}
        - logCreateBucket:
            call: sys.log
            args:
              data: ${"Created bucket " + bucket}
        - logCreateBatchJob:
            call: sys.log
            args:
              data: ${"Creating and running the batch job " + jobId}
        - createAndRunBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.create
            args:
                parent: ${"projects/" + projectId + "/locations/" + region}
                jobId: ${jobId}
                body:
                  taskGroups:
                    taskSpec:
                      runnables:
                        - container:
                            imageUri: ${imageUri}
                          environment:
                            variables:
                              BUCKET: ${bucket}
                    # Run 6 tasks on 2 VMs
                    taskCount: 6
                    parallelism: 2
                  logsPolicy:
                    destination: CLOUD_LOGGING
            result: createAndRunBatchJobResponse
        # You can delete the batch job or keep it for debugging
        - logDeleteBatchJob:
            call: sys.log
            args:
              data: ${"Deleting the batch job " + jobId}
        - deleteBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.delete
            args:
                name: ${"projects/" + projectId + "/locations/" + region + "/jobs/" + jobId}
            result: deleteResult
        - returnResult:
            return:
              jobId: ${jobId}
              bucket: ${bucket}

    JSON

    {
      "main": {
        "params": [
          "args"
        ],
        "steps": [
          {
            "init": {
              "assign": [
                {
                  "projectId": "${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}"
                },
                {
                  "region": "us-central1"
                },
                {
                  "imageUri": "${region + \"-docker.pkg.dev/\" + projectId + \"/containers/primegen-service:v1\"}"
                },
                {
                  "jobId": "${\"job-primegen-\" + string(int(sys.now()))}"
                },
                {
                  "bucket": "${projectId + \"-\" + jobId}"
                }
              ]
            }
          },
          {
            "createBucket": {
              "call": "googleapis.storage.v1.buckets.insert",
              "args": {
                "query": {
                  "project": "${projectId}"
                },
                "body": {
                  "name": "${bucket}"
                }
              }
            }
          },
          {
            "logCreateBucket": {
              "call": "sys.log",
              "args": {
                "data": "${\"Created bucket \" + bucket}"
              }
            }
          },
          {
            "logCreateBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Creating and running the batch job \" + jobId}"
              }
            }
          },
          {
            "createAndRunBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.create",
              "args": {
                "parent": "${\"projects/\" + projectId + \"/locations/\" + region}",
                "jobId": "${jobId}",
                "body": {
                  "taskGroups": {
                    "taskSpec": {
                      "runnables": [
                        {
                          "container": {
                            "imageUri": "${imageUri}"
                          },
                          "environment": {
                            "variables": {
                              "BUCKET": "${bucket}"
                            }
                          }
                        }
                      ]
                    },
                    "taskCount": 6,
                    "parallelism": 2
                  },
                  "logsPolicy": {
                    "destination": "CLOUD_LOGGING"
                  }
                }
              },
              "result": "createAndRunBatchJobResponse"
            }
          },
          {
            "logDeleteBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Deleting the batch job \" + jobId}"
              }
            }
          },
          {
            "deleteBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.delete",
              "args": {
                "name": "${\"projects/\" + projectId + \"/locations/\" + region + \"/jobs/\" + jobId}"
              },
              "result": "deleteResult"
            }
          },
          {
            "returnResult": {
              "return": {
                "jobId": "${jobId}",
                "bucket": "${bucket}"
              }
            }
          }
        ]
      }
    }
    
  8. Klik Deploy.

gcloud

  1. Buat file kode sumber untuk alur kerja Anda:

    touch batch-workflow.JSON_OR_YAML
    

    Ganti JSON_OR_YAML dengan yaml atau json, bergantung pada format alur kerja Anda.

  2. Di editor teks, salin alur kerja berikut ke file kode sumber Anda:

    YAML

    main:
      params: [args]
      steps:
        - init:
            assign:
              - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
              - region: "us-central1"
              - imageUri: ${region + "-docker.pkg.dev/" + projectId + "/containers/primegen-service:v1"}
              - jobId: ${"job-primegen-" + string(int(sys.now()))}
              - bucket: ${projectId + "-" + jobId}
        - createBucket:
            call: googleapis.storage.v1.buckets.insert
            args:
              query:
                project: ${projectId}
              body:
                name: ${bucket}
        - logCreateBucket:
            call: sys.log
            args:
              data: ${"Created bucket " + bucket}
        - logCreateBatchJob:
            call: sys.log
            args:
              data: ${"Creating and running the batch job " + jobId}
        - createAndRunBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.create
            args:
                parent: ${"projects/" + projectId + "/locations/" + region}
                jobId: ${jobId}
                body:
                  taskGroups:
                    taskSpec:
                      runnables:
                        - container:
                            imageUri: ${imageUri}
                          environment:
                            variables:
                              BUCKET: ${bucket}
                    # Run 6 tasks on 2 VMs
                    taskCount: 6
                    parallelism: 2
                  logsPolicy:
                    destination: CLOUD_LOGGING
            result: createAndRunBatchJobResponse
        # You can delete the batch job or keep it for debugging
        - logDeleteBatchJob:
            call: sys.log
            args:
              data: ${"Deleting the batch job " + jobId}
        - deleteBatchJob:
            call: googleapis.batch.v1.projects.locations.jobs.delete
            args:
                name: ${"projects/" + projectId + "/locations/" + region + "/jobs/" + jobId}
            result: deleteResult
        - returnResult:
            return:
              jobId: ${jobId}
              bucket: ${bucket}

    JSON

    {
      "main": {
        "params": [
          "args"
        ],
        "steps": [
          {
            "init": {
              "assign": [
                {
                  "projectId": "${sys.get_env(\"GOOGLE_CLOUD_PROJECT_ID\")}"
                },
                {
                  "region": "us-central1"
                },
                {
                  "imageUri": "${region + \"-docker.pkg.dev/\" + projectId + \"/containers/primegen-service:v1\"}"
                },
                {
                  "jobId": "${\"job-primegen-\" + string(int(sys.now()))}"
                },
                {
                  "bucket": "${projectId + \"-\" + jobId}"
                }
              ]
            }
          },
          {
            "createBucket": {
              "call": "googleapis.storage.v1.buckets.insert",
              "args": {
                "query": {
                  "project": "${projectId}"
                },
                "body": {
                  "name": "${bucket}"
                }
              }
            }
          },
          {
            "logCreateBucket": {
              "call": "sys.log",
              "args": {
                "data": "${\"Created bucket \" + bucket}"
              }
            }
          },
          {
            "logCreateBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Creating and running the batch job \" + jobId}"
              }
            }
          },
          {
            "createAndRunBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.create",
              "args": {
                "parent": "${\"projects/\" + projectId + \"/locations/\" + region}",
                "jobId": "${jobId}",
                "body": {
                  "taskGroups": {
                    "taskSpec": {
                      "runnables": [
                        {
                          "container": {
                            "imageUri": "${imageUri}"
                          },
                          "environment": {
                            "variables": {
                              "BUCKET": "${bucket}"
                            }
                          }
                        }
                      ]
                    },
                    "taskCount": 6,
                    "parallelism": 2
                  },
                  "logsPolicy": {
                    "destination": "CLOUD_LOGGING"
                  }
                }
              },
              "result": "createAndRunBatchJobResponse"
            }
          },
          {
            "logDeleteBatchJob": {
              "call": "sys.log",
              "args": {
                "data": "${\"Deleting the batch job \" + jobId}"
              }
            }
          },
          {
            "deleteBatchJob": {
              "call": "googleapis.batch.v1.projects.locations.jobs.delete",
              "args": {
                "name": "${\"projects/\" + projectId + \"/locations/\" + region + \"/jobs/\" + jobId}"
              },
              "result": "deleteResult"
            }
          },
          {
            "returnResult": {
              "return": {
                "jobId": "${jobId}",
                "bucket": "${bucket}"
              }
            }
          }
        ]
      }
    }
    
  3. 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 akan menjalankan definisi alur kerja saat ini yang terkait dengan alur kerja.

Konsol

  1. Di konsol Google Cloud, buka halaman Workflows.

    Buka Workflows

  2. Di halaman Workflows, klik alur kerja batch-workflow untuk membuka halaman detailnya.

  3. Di halaman Workflow details, klik Execute.

  4. Klik Execute lagi.

    Eksekusi alur kerja akan memerlukan waktu beberapa menit.

  5. Lihat hasil alur kerja di panel Output.

    Hasilnya akan terlihat seperti berikut:

    {
      "bucket": "project-name-job-primegen-TIMESTAMP",
      "jobId": "job-primegen-TIMESTAMP"
    }
    

gcloud

  1. Menjalankan alur kerja:

    gcloud workflows run batch-workflow \
      --location=us-central1

    Eksekusi alur kerja akan memerlukan waktu beberapa menit.

  2. Anda dapat memeriksa status eksekusi yang berjalan lama.

  3. Untuk mendapatkan status eksekusi terakhir yang diselesaikan, jalankan perintah berikut:

    gcloud workflows executions describe-last

    Hasilnya akan terlihat seperti berikut:

    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 harapan dengan mencantumkan objek di bucket output Cloud Storage.

Konsol

  1. Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.

    Buka Bucket

  2. Di listing bucket, klik nama bucket yang isinya ingin Anda lihat.

    Hasilnya akan mirip dengan berikut ini, dengan total enam file, dan masing-masing mencantumkan batch 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

  1. Ambil nama bucket output Anda:

    gsutil ls

    Outputnya mirip dengan hal berikut ini:

    gs://PROJECT_ID-job-primegen-TIMESTAMP/

  2. Cantumkan objek dalam bucket output Anda:

    gsutil ls -r gs://PROJECT_ID-job-primegen-TIMESTAMP/**

    Ganti TIMESTAMP dengan stempel waktu yang ditampilkan oleh perintah sebelumnya.

    Output-nya akan mirip dengan berikut ini, dengan total enam file, dan masing-masing mencantumkan batch 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
    

Pembersihan

Jika Anda membuat project baru untuk tutorial ini, hapus project tersebut. Jika Anda menggunakan project yang ada dan ingin mempertahankannya tanpa perubahan yang ditambahkan dalam tutorial ini, hapus resource yang dibuat untuk tutorial.

Menghapus project

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Menghapus resource yang dibuat dalam tutorial ini

  1. Hapus tugas Batch:

    1. Pertama, ambil nama tugas:

      gcloud batch jobs list --location=us-central1
      

      Outputnya akan mirip dengan berikut ini:

      NAME: projects/project-name/locations/us-central1/jobs/job-primegen-TIMESTAMP
      STATE: SUCCEEDED
      

      Dengan job-primegen-TIMESTAMP adalah nama tugas Batch.

    2. Hapus tugas:

      gcloud batch jobs delete BATCH_JOB_NAME --location us-central1
      
  2. Hapus alur kerja:

    gcloud workflows delete WORKFLOW_NAME
    
  3. Hapus repositori container:

    gcloud artifacts repositories delete REPOSITORY_NAME --location=us-central1
    
  4. Cloud Build menggunakan Cloud Storage untuk menyimpan resource build. Untuk menghapus bucket Cloud Storage, lihat Menghapus bucket.

Langkah selanjutnya