Dapatkan akses ke 700+ lab dan kursus

Membuat PDF dengan Go dan Cloud Run

Lab 1 jam universal_currency_alt 5 Kredit show_chart Menengah
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Dapatkan akses ke 700+ lab dan kursus

GSP762

Logo lab mandiri Google Cloud

Ringkasan

Dalam lab ini, Anda membangun aplikasi web pengonversi PDF di sebuah layanan serverless, yaitu Cloud Run, untuk secara otomatis mengonversi file yang disimpan di Google Drive menjadi PDF yang disimpan di folder Google Drive terpisah.

Skenario

Anda membantu praktik dokter hewan Pet Theory untuk mengonversi invoice menjadi PDF secara otomatis agar dapat digunakan dengan mudah oleh pelanggan.

Diagram arsitektur

Lab ini memerlukan penggunaan Google API. API berikut sudah diaktifkan untuk Anda:

Nama API
Cloud Build cloudbuild.googleapis.com
Cloud Storage storage-component.googleapis.com
Cloud Run Admin run.googleapis.com

Tujuan

Dalam lab ini, Anda akan mempelajari cara melakukan tugas-tugas berikut:

  • Memperoleh kode sumber untuk lab.
  • Mengonversi aplikasi Go ke container.
  • Membangun container dengan Google Cloud Build.
  • Membuat layanan Cloud Run yang mengonversi file menjadi file PDF di cloud.
  • Membuat akun layanan dan menambahkan izin.
  • Memulai pemicu untuk notifikasi Cloud Storage.
  • Menggunakan pemrosesan peristiwa dengan Cloud Storage.

Penyiapan dan persyaratan

Sebelum mengklik tombol Start Lab

Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.

Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.

Untuk menyelesaikan lab ini, Anda memerlukan:

  • Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
  • Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:

    • Tombol Open Google Cloud console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).

    Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.

    {{{user_0.username | "Username"}}}

    Anda juga dapat menemukan Username di panel Lab Details.

  4. Klik Next.

  5. Salin Password di bawah dan tempel ke dialog Welcome.

    {{{user_0.password | "Password"}}}

    Anda juga dapat menemukan Password di panel Lab Details.

  6. Klik Next.

    Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  7. Klik halaman berikutnya:

    • Setujui persyaratan dan ketentuan.
    • Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
    • Jangan mendaftar uji coba gratis.

Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.

Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search. Ikon Navigation menu dan kolom Search

Mengaktifkan Cloud Shell

Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.

  1. Klik Activate Cloud Shell Ikon Activate Cloud Shell di bagian atas Konsol Google Cloud.

  2. Klik jendela berikut:

    • Lanjutkan melalui jendela informasi Cloud Shell.
    • Beri otorisasi ke Cloud Shell untuk menggunakan kredensial Anda guna melakukan panggilan Google Cloud API.

Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke Project_ID, . Output berisi baris yang mendeklarasikan Project_ID untuk sesi ini:

Project Cloud Platform Anda dalam sesi ini disetel ke {{{project_0.project_id | "PROJECT_ID"}}}

gcloud adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.

  1. (Opsional) Anda dapat menampilkan daftar nama akun yang aktif dengan perintah ini:
gcloud auth list
  1. Klik Authorize.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Untuk menetapkan akun aktif, jalankan: $ gcloud config set account `ACCOUNT`
  1. (Opsional) Anda dapat menampilkan daftar ID project dengan perintah ini:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Catatan: Untuk mendapatkan dokumentasi gcloud yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.

Tugas 1. Mendapatkan kode sumber

Dalam tugas ini, Anda mulai dengan mendownload kode yang diperlukan dalam lab.

  1. Jalankan perintah berikut di Cloud Shell untuk mengaktifkan akun lab Anda:

    gcloud auth list --filter=status:ACTIVE --format="value(account)"
  2. Jalankan perintah berikut untuk meng-clone repositori Pet Theory:

    git clone https://github.com/Deleplace/pet-theory.git
  3. Jalankan perintah berikut untuk pindah ke direktori yang benar:

    cd pet-theory/lab03

Mengaktifkan Gemini Code Assist di Cloud Shell IDE

Anda dapat menggunakan Gemini Code Assist di lingkungan pengembangan terintegrasi (IDE) seperti Cloud Shell untuk menerima panduan tentang kode atau menyelesaikan masalah dengan kode Anda. Sebelum mulai menggunakan Gemini Code Assist, Anda perlu mengaktifkannya.

  1. Di Cloud Shell, aktifkan Gemini for Google Cloud API dengan perintah berikut:
gcloud services enable cloudaicompanion.googleapis.com
  1. Klik Open Editor di toolbar Cloud Shell.
Catatan: Untuk membuka Cloud Shell Editor, klik Open Editor di toolbar Cloud Shell. Anda dapat beralih antara Cloud Shell dan Editor kode dengan mengklik Open Editor atau Open Terminal, sesuai kebutuhan.
  1. Di panel kiri, klik ikon Settings, lalu di tampilan Settings, cari Gemini Code Assist.

  2. Temukan dan pastikan kotak centang dipilih untuk Geminicodeassist: Enable, lalu tutup Settings.

  3. Klik Cloud Code - No Project di status bar di bagian bawah layar.

  4. Berikan otorisasi pada plugin seperti yang ditunjukkan. Jika project tidak dipilih secara otomatis, klik Select a Google Cloud Project, lalu pilih .

  5. Pastikan project Google Cloud Anda () ditampilkan dalam pesan status Cloud Code di status bar.

Tugas 2. Membuat microservice invoice

Dalam tugas ini, Anda akan membuat aplikasi Go untuk memproses permintaan. Sebagaimana diuraikan dalam diagram arsitektur, Anda ingin mengintegrasikan Cloud Storage sebagai bagian dari solusi.

  1. Di File Explorer Cloud Shell Editor, buka pet-theory > lab03 > server.go.

  2. Buka file server.go. Tindakan ini mengaktifkan Gemini Code Assist, seperti yang ditunjukkan oleh keberadaan ikon Gemini Code Assist: Smart Actions di sudut kanan atas editor.

  3. Buka kode sumber server.go, lalu edit agar sama dengan kode berikut:

    package main import ( "fmt" "log" "net/http" "os" "os/exec" "regexp" "strings" ) func main() { http.HandleFunc("/", process) port := os.Getenv("PORT") if port == "" { port = "8080" log.Printf("Defaulting to port %s", port) } log.Printf("Listening on port %s", port) err := http.ListenAndServe(fmt.Sprintf(":%s", port), nil) log.Fatal(err) } func process(w http.ResponseWriter, r *http.Request) { log.Println("Serving request") if r.Method == "GET" { fmt.Fprintln(w, "Ready to process POST requests from Cloud Storage trigger") return } // // Read request body containing Cloud Storage object metadata // gcsInputFile, err1 := readBody(r) if err1 != nil { log.Printf("Error reading POST data: %v", err1) w.WriteHeader(http.StatusBadRequest) fmt.Fprintf(w, "Problem with POST data: %v \n", err1) return } // // Working directory (concurrency-safe) localDir, err := os.MkdirTemp("", "") if err != nil { log.Printf("Error creating local temp dir: %v", err) w.WriteHeader(http.StatusInternalServerError) fmt.Fprintf(w, "Could not create a temp directory on server. \n") return } defer os.RemoveAll(localDir) // // Download input file from Cloud Storage // localInputFile, err2 := download(gcsInputFile, localDir) if err2 != nil { log.Printf("Error downloading Cloud Storage file [%s] from bucket [%s]: %v", gcsInputFile.Name, gcsInputFile.Bucket, err2) w.WriteHeader(http.StatusInternalServerError) fmt.Fprintf(w, "Error downloading Cloud Storage file [%s] from bucket [%s]", gcsInputFile.Name, gcsInputFile.Bucket) return } // // Use LibreOffice to convert local input file to local PDF file. // localPDFFilePath, err3 := convertToPDF(localInputFile.Name(), localDir) if err3 != nil { log.Printf("Error converting to PDF: %v", err3) w.WriteHeader(http.StatusInternalServerError) fmt.Fprintf(w, "Error converting to PDF.") return } // // Upload the freshly generated PDF to Cloud Storage // targetBucket := os.Getenv("PDF_BUCKET") err4 := upload(localPDFFilePath, targetBucket) if err4 != nil { log.Printf("Error uploading PDF file to bucket [%s]: %v", targetBucket, err4) w.WriteHeader(http.StatusInternalServerError) fmt.Fprintf(w, "Error downloading Cloud Storage file [%s] from bucket [%s]", gcsInputFile.Name, gcsInputFile.Bucket) return } // // Delete the original input file from Cloud Storage. // err5 := deleteGCSFile(gcsInputFile.Bucket, gcsInputFile.Name) if err5 != nil { log.Printf("Error deleting file [%s] from bucket [%s]: %v", gcsInputFile.Name, gcsInputFile.Bucket, err5) // This is not a blocking error. // The PDF was successfully generated and uploaded. } log.Println("Successfully produced PDF") fmt.Fprintln(w, "Successfully produced PDF") } func convertToPDF(localFilePath string, localDir string) (resultFilePath string, err error) { log.Printf("Converting [%s] to PDF", localFilePath) cmd := exec.Command("libreoffice", "--headless", "--convert-to", "pdf", "--outdir", localDir, localFilePath) cmd.Stdout, cmd.Stderr = os.Stdout, os.Stderr log.Println(cmd) err = cmd.Run() if err != nil { return "", err } pdfFilePath := regexp.MustCompile(`\.\w+$`).ReplaceAllString(localFilePath, ".pdf") if !strings.HasSuffix(pdfFilePath, ".pdf") { pdfFilePath += ".pdf" } log.Printf("Converted %s to %s", localFilePath, pdfFilePath) return pdfFilePath, nil }
  4. Klik ikon Gemini Code Assist: Smart Actions Gemini Code Assist: Smart Actions, lalu pilih Explain this.

  5. Gemini Code Assist akan membuka panel chat dengan perintah yang telah diisi sebelumnya, yakni Explain this. Di kotak teks inline chat Code Assist, ganti perintah yang sudah terisi dengan perintah berikut, lalu klik Send:

You are an expert Go developer at Cymbal AI. A new team member is unfamiliar with this server implementation. Explain this "server.go" file in detail, breaking down its key components used in the code. For the suggested improvements, don't update this file.

Penjelasan untuk kode dalam file server.go akan muncul di chat Gemini Code Assist.

  1. Di terminal Cloud Shell, jalankan perintah berikut untuk membangun aplikasi:

    go build -o server

    Fungsi yang dipanggil oleh kode tingkat atas ini ada di file sumber:

    • server.go
    • notification.go
    • gcs.go

Setelah aplikasi berhasil dibangun, Anda dapat membuat layanan konversi PDF.

Tugas 3. Membuat layanan konversi PDF

Layanan PDF ini menggunakan Cloud Run dan Cloud Storage untuk memulai proses setiap kali file diupload ke penyimpanan yang ditentukan.

Untuk mewujudkan hal ini, Anda memutuskan untuk menggunakan pola notifikasi peristiwa umum bersama dengan Cloud Pub/Sub. Dengan melakukan ini, aplikasi akan hanya berkonsentrasi pada pemrosesan informasi. Pengiriman dan penyampaian informasi dilakukan oleh layanan lain, sehingga aplikasi dapat dibuat sederhana.

Membangun modul invoice memerlukan integrasi dua komponen:

Container meliputi dua komponen: server dan LibreOffice

Dengan ditambahkan ke container, LibreOffice dapat digunakan dalam aplikasi Anda.

  1. Di Open editor, buka manifes Dockerfile yang ada dan ubah file seperti berikut:

    FROM amd64/debian RUN apt-get update -y \ && apt-get install -y libreoffice \ && apt-get clean WORKDIR /usr/src/app COPY server . CMD [ "./server" ]
  2. Klik Save untuk menyimpan Dockerfile yang sudah diubah.

  3. Klik ikon Gemini Code Assist: Smart Actions Gemini Code Assist: Smart Actions, lalu pilih Explain this.

  4. Gemini Code Assist akan membuka panel chat dengan perintah yang telah diisi sebelumnya, yakni Explain this. Di kotak teks inline chat Code Assist, ganti perintah yang sudah terisi dengan perintah berikut, lalu klik Send:

You are a Senior DevOps Engineer at Cymbal AI. A new team member has asked you to explain the Dockerfile. Provide a comprehensive explanation of the contents and structure of this Dockerfile, including key instructions and best practices. For the suggested improvements, don't update this Dockerfile.

Penjelasan untuk kode dalam file Dockerfile akan muncul di chat Gemini Code Assist.

  1. Mulai bangun ulang image pdf-converter dengan menggunakan Cloud Build:

    gcloud builds submit \ --tag gcr.io/$GOOGLE_CLOUD_PROJECT/pdf-converter

    Klik Periksa progres saya untuk memverifikasi bahwa Anda telah menjalankan tugas di atas.

    Membangun image dengan Cloud Build
  2. Deploy layanan pengonversi PDF yang diperbarui.

    Catatan: Sebaiknya berikan LibreOffice RAM sebesar 2 GB untuk digunakan. Lihat baris yang terdapat opsi --memory.
  3. Jalankan perintah berikut untuk membangun container dan men-deploy-nya:

    gcloud run deploy pdf-converter \ --image gcr.io/$GOOGLE_CLOUD_PROJECT/pdf-converter \ --platform managed \ --region {{{ project_0.default_region | "REGION" }}} \ --memory=2Gi \ --no-allow-unauthenticated \ --set-env-vars PDF_BUCKET=$GOOGLE_CLOUD_PROJECT-processed \ --max-instances=3

    Klik Periksa progres saya untuk memverifikasi bahwa Anda telah menjalankan tugas ini.

    Men-deploy layanan pengonversi PDF

Layanan Cloud Run kini telah berhasil di-deploy. Namun, aplikasi yang di-deploy memerlukan izin yang benar untuk mengaksesnya.

Tugas 4. Membuat akun layanan

Akun Layanan adalah jenis akun khusus yang memiliki akses ke Google API.

Lab ini menggunakan akun layanan untuk mengakses Cloud Run saat peristiwa Cloud Storage diproses. Cloud Storage mendukung beragam notifikasi yang dapat digunakan untuk memicu peristiwa.

Dalam tugas ini, Anda akan mengubah kode untuk memberi notifikasi kepada aplikasi ketika file telah diupload.

  1. Klik Navigation menu > Cloud Storage, dan pastikan bahwa dua bucket telah dibuat. Seharusnya Anda melihat:

    • -processed
    • -upload
  2. Buat notifikasi Pub/Sub yang menandakan bahwa ada file baru yang diupload ke bucket dokumen ("uploaded"). Notifikasi ini diberi label dengan topik "new-doc".

    gsutil notification create -t new-doc -f json -e OBJECT_FINALIZE gs://$GOOGLE_CLOUD_PROJECT-upload

    Output yang diharapkan:

    Created Cloud Pub/Sub topic projects/{{{project_0.project_id | "PROJECT_ID"}}}/topics/new-doc Created notification config projects/_/buckets/{{{project_0.project_id | "PROJECT_ID"}}}-upload/notificationConfigs/1
  3. Buat akun layanan baru untuk memicu layanan Cloud Run:

    gcloud iam service-accounts create pubsub-cloud-run-invoker --display-name "PubSub Cloud Run Invoker"

    Output yang diharapkan:

    Created service account [pubsub-cloud-run-invoker].
  4. Beri akun layanan ini izin untuk memanggil layanan pengonversi PDF:

    gcloud run services add-iam-policy-binding pdf-converter \ --member=serviceAccount:pubsub-cloud-run-invoker@$GOOGLE_CLOUD_PROJECT.iam.gserviceaccount.com \ --role=roles/run.invoker \ --region {{{ project_0.default_region | "REGION" }}} \ --platform managed

    Output yang diharapkan:

    Updated IAM policy for service [pdf-converter]. bindings: - members: - serviceAccount:pubsub-cloud-run-invoker@{{{project_0.project_id | "PROJECT_ID"}}}.iam.gserviceaccount.com role: roles/run.invoker etag: BwYYfbXS240= version: 1
  5. Temukan nomor project Anda dengan menjalankan perintah berikut:

    PROJECT_NUMBER=$(gcloud projects list \ --format="value(PROJECT_NUMBER)" \ --filter="$GOOGLE_CLOUD_PROJECT")
  6. Aktifkan project Anda untuk membuat token autentikasi Cloud Pub/Sub:

    gcloud projects add-iam-policy-binding $GOOGLE_CLOUD_PROJECT \ --member=serviceAccount:{{{ project_0.project_id | "PROJECT_ID" }}}@{{{ project_0.project_id | "PROJECT_ID" }}}.iam.gserviceaccount.com \ --role=roles/iam.serviceAccountTokenCreator

    Klik Periksa progres saya untuk memverifikasi bahwa Anda telah menjalankan tugas ini.

    Membuat akun layanan

Akun layanan yang sudah dibuat dapat digunakan untuk memanggil Layanan Cloud Run.

Tugas 5. Menguji layanan Cloud Run

Sebelum melanjutkan lebih jauh, Anda perlu menguji layanan yang di-deploy. Karena layanan ini memerlukan autentikasi, pengujian akan membantu memastikan bahwa layanan memang benar bersifat pribadi.

  1. Simpan URL layanan Anda di variabel lingkungan $SERVICE_URL:

    SERVICE_URL=$(gcloud run services describe pdf-converter \ --platform managed \ --region {{{ project_0.default_region | "REGION" }}} \ --format "value(status.url)")
  2. Tampilkan URL LAYANAN:

    echo $SERVICE_URL
  3. Buat permintaan GET anonim ke layanan baru Anda:

    curl -X GET $SERVICE_URL

    Output yang diharapkan:

    <html><head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>403 Forbidden</title> </head> <body text=#000000 bgcolor=#ffffff> <h1>Error: Forbidden</h1> <h2>Your client does not have permission to get URL <code>/</code> from this server.</h2> <h2></h2> Catatan: Permintaan GET anonim menghasilkan pesan error: "Your client does not have permission to get URL". Memang ini yang dikehendaki. Kita tidak menginginkan layanan tersebut dapat dipanggil oleh pengguna anonim.
  4. Sekarang, cobalah memanggil layanan tersebut sebagai pengguna yang diizinkan:

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-identity-token)" $SERVICE_URL

    Output yang diharapkan:

    Ready to process POST requests from Cloud Storage trigger

Bagus sekali, Anda telah berhasil men-deploy layanan Cloud Run yang diautentikasi.

Tugas 6. Mengonfigurasi pemicu Cloud Storage

Untuk memulai notifikasi ketika ada konten baru yang diupload ke Cloud Storage, tambahkan langganan ke Topik Pub/Sub Anda yang ada.

Catatan: Notifikasi Cloud Storage otomatis mengirimkan pesan ke antrean Topik Anda ketika ada konten baru diupload. Dengan menggunakan notifikasi, Anda dapat membuat aplikasi berguna yang merespons peristiwa tanpa perlu menulis kode tambahan.
  • Buat langganan Pub/Sub agar pengonversi PDF akan berjalan setiap kali ada pesan yang dipublikasikan ke topik new-doc:

    gcloud pubsub subscriptions create pdf-conv-sub \ --topic new-doc \ --push-endpoint=$SERVICE_URL \ --push-auth-service-account=pubsub-cloud-run-invoker@$GOOGLE_CLOUD_PROJECT.iam.gserviceaccount.com

    Output yang diharapkan:

    Created subscription [projects/{{{ project_0.project_id| "PROJECT_ID" }}}/subscriptions/pdf-conv-sub].

    Klik Periksa progres saya untuk memverifikasi bahwa Anda telah menjalankan tugas ini.

    Mengonfirmasi langganan Pub/Sub

Sekarang, setiap kali file diupload, langganan Pub/Sub akan berinteraksi dengan akun layanan Anda. Akun layanan kemudian memulai layanan Cloud Run Pengonversi PDF Anda.

Tugas 7. Menguji notifikasi Cloud Storage

Untuk menguji layanan Cloud Run, gunakan contoh file yang tersedia.

  1. Salin file pengujian ke bucket upload:

    gsutil -m cp -r gs://spls/gsp762/* gs://$GOOGLE_CLOUD_PROJECT-upload

    Output yang diharapkan:

    Copying gs://spls/gsp762/cat-and-mouse.jpg [Content-Type=image/jpeg]... Copying gs://spls/gsp762/file-sample_100kB.doc [Content-Type=application/msword]... Copying gs://spls/gsp762/file-sample_500kB.docx [Content-Type=application/vnd.openxmlformats-officedocument.wordprocessingml.document]... Copying gs://spls/gsp762/file_example_XLS_10.xls [Content-Type=application/vnd.ms-excel]... Copying gs://spls/gsp762/file-sample_1MB.docx [Content-Type=application/vnd.openxmlformats-officedocument.wordprocessingml.document]... Copying gs://spls/gsp762/file_example_XLSX_50.xlsx [Content-Type=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet]... Copying gs://spls/gsp762/file_example_XLS_100.xls [Content-Type=application/vnd.ms-excel]... Copying gs://spls/gsp762/file_example_XLS_50.xls [Content-Type=application/vnd.ms-excel]... Copying gs://spls/gsp762//Copy of cat-and-mouse.jpg [Content-Type=image/jpeg]...
  2. Di Konsol Cloud, klik Cloud Storage > Buckets, lalu klik nama bucket yang diakhiri dengan "-upload"

  3. Klik tombol Refresh beberapa kali dan lihat bahwa file dihapus satu per satu setelah dikonversi menjadi PDF.

  4. Kemudian, klik Buckets, lalu klik nama bucket yang diakhiri dengan "-processed". Bucket tersebut akan menampung versi PDF dari semua file.

    Catatan: Diperlukan waktu beberapa menit untuk memproses file. Gunakan opsi Bucket refresh untuk memeriksa status penyelesaian pemrosesan.
  5. Silakan buka file PDF tersebut untuk memastikan konversinya diproses dengan benar.

  6. Setelah upload selesai, klik Navigation menu > Cloud Run, lalu klik layanan pdf-converter.

  7. Pilih tab LOGS dan tambahkan filter "Converting" untuk melihat file yang dikonversi.

  8. Buka Navigation menu > Cloud Storage, lalu buka nama bucket yang diakhiri dengan "-upload" untuk mengonfirmasi bahwa semua file yang diupload sudah diproses.

Bagus. Anda berhasil membangun layanan baru yang membuat PDF dari file yang diupload ke Cloud Storage.

Selamat!

Dalam lab ini, Anda telah mempelajari cara mengonversi suatu aplikasi Go menjadi container, membuat container dengan menggunakan Google Cloud Build, dan meluncurkan layanan Cloud Run.

Anda juga mendapat keterampilan dalam mengaktifkan izin melalui akun layanan dan memanfaatkan pemrosesan peristiwa Cloud Storage, yang semuanya merupakan bagian dari pengoperasian layanan pengonversi PDF yang mengubah dokumen menjadi PDF dan menyimpannya dalam bucket "processed".

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 18 Agustus 2025

Lab Terakhir Diuji pada 14 Oktober 2025

Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.