Tutorial ini menunjukkan cara developer layanan dapat memecahkan masalah kerusakan Layanan Cloud Run yang menggunakan alat Kemampuan Observasi Google Cloud untuk penemuan dan pengembangan aplikasi untuk penyelidikan.
Pendamping "studi kasus" langkah demi langkah untuk panduan pemecahan masalah ini menggunakan project contoh yang menghasilkan error runtime saat di-deploy, yang Anda pecahkan masalahnya untuk ditemukan dan diperbaiki masalahnya.
Tujuan
- Menulis, membangun, dan men-deploy layanan ke Cloud Run
- Menggunakan Error Reporting dan Cloud Logging untuk mengidentifikasi sebuah error
- Mengambil image container dari Container Registry untuk analisis akar masalah
- Perbaiki layanan "produksi", lalu tingkatkan kualitas layanan untuk mengurangi masalah di masa mendatang
Biaya
Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
- Aktifkan Cloud Run Admin API
- Instal dan lakukan inisialisasi gcloud CLI.
- Perbarui komponen:
gcloud components update
- Ikuti petunjuk untuk menginstal Docker secara lokal
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna menyelesaikan tutorial ini, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:
-
Editor Cloud Build (
roles/cloudbuild.builds.editor
) -
Admin Cloud Run (
roles/run.admin
) -
Viewer Error Reporting (
roles/errorreporting.viewer
) -
Aksesor Tampilan Log (
roles/logging.viewAccessor
) -
Project IAM Admin ()
roles/resourcemanager.projectIamAdmin
-
Service Account User (
roles/iam.serviceAccountUser
) -
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer
) -
Storage Admin (
roles/storage.admin
)
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.
Menyiapkan default gcloud
Untuk mengonfigurasi gcloud dengan setelan default untuk layanan Cloud Run Anda:
Setel project default Anda:
gcloud config set project PROJECT_ID
Ganti PROJECT_ID dengan nama project yang Anda buat untuk tutorial ini.
Konfigurasi gcloud untuk region yang Anda pilih:
gcloud config set run/region REGION
Ganti REGION dengan region Cloud Run pilihan Anda yang didukung.
Lokasi Cloud Run
Cloud Run bersifat regional, berarti infrastruktur yang
menjalankan layanan Cloud Run Anda terletak di region tertentu dan
dikelola oleh Google agar tersedia secara redundan di
semua zona dalam region tersebut.
Memenuhi persyaratan latensi, ketersediaan, atau ketahanan adalah faktor utama
untuk memilih region tempat layanan Cloud Run dijalankan.
Pada umumnya, Anda dapat memilih region yang paling dekat dengan pengguna Anda, tetapi Anda harus mempertimbangkan
lokasi dari produk Google Cloud
lain yang digunakan oleh layanan Cloud Run Anda.
Menggunakan produk Google Cloud secara bersamaan di beberapa lokasi dapat memengaruhi
latensi serta biaya layanan Anda.
Cloud Run tersedia di region berikut:
Tergantung harga Tingkat 1
asia-east1
(Taiwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlandia) Rendah CO2europe-southwest1
(Madrid) Rendah CO2europe-west1
(Belgia) Rendah CO2europe-west4
(Belanda) Rendah CO2europe-west8
(Milan)europe-west9
(Paris) Rendah CO2me-west1
(Tel Aviv)us-central1
(Iowa) Rendah CO2us-east1
(South Carolina)us-east4
(North Virginia)us-east5
(Columbus)us-south1
(Dallas) Rendah CO2us-west1
(Oregon) Rendah CO2
Tergantung harga Tingkat 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Seoul, Korea Selatan)asia-southeast1
(Singapura)asia-southeast2
(Jakarta)asia-south1
(Mumbai, India)asia-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warsawa, Polandia)europe-west10
(Berlin) Rendah CO2europe-west12
(Turin)europe-west2
(London, Inggris) Rendah CO2europe-west3
(Frankfurt, Jerman) Rendah CO2europe-west6
(Zurich, Swiss) Rendah CO2me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal) Rendah CO2northamerica-northeast2
(Toronto) Rendah CO2southamerica-east1
(Sao Paulo, Brasil) Rendah CO2southamerica-west1
(Santiago, Cile) Rendah CO2us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Jika sudah membuat layanan Cloud Run, Anda dapat melihat region di dasbor Cloud Run di Konsol Google Cloud.
Susun kode
Bangun layanan penyambut Cloud Run baru langkah demi langkah. Sebagai sebuah pengingat, layanan ini sengaja membuat error runtime untuk latihan pemecahan masalah.
Membuat sebuah project baru.
Node.js
Membuat sebuah project Node.js dengan menentukan paket layanan, dependensi awal, dan beberapa operasi umum.Membuat direktori
hello-service
baru:mkdir hello-service cd hello-service
Membuat project Node.js baru dengan membuat
package.json
file:npm init --yes npm install --save express@4
Buka file
package.json
baru di editor Anda dan konfigurasikan skripstart
untuk menjalankannode index.js
Setelah selesai, filenya akan terlihat seperti ini:
Jika Anda terus mengembangkan layanan ini hingga lebih dari sekadar tutorial langsung, pertimbangkan untuk mengisi deskripsi, penulis, dan mengevaluasi lisensinya. Untuk mengetahui detail lengkapnya, baca dokumentasi package.json.
Python
Membuat direktori
hello-service
baru:mkdir hello-service cd hello-service
Membuat file requirements.txt dan salin dependensi Anda ke dalamnya:
Go
Membuat direktori
hello-service
baru:mkdir hello-service cd hello-service
Membuat project Go dengan melakukan inisialisasi modul go baru:
go mod init example.com/hello-service
Anda dapat memperbarui nama spesifiknya sesuai keinginan: Anda harus memperbarui nama tersebut jika kode dipublikasikan ke repositori kode yang dapat diakses melalui web.
Java
Membuat project Maven baru:
mvn archetype:generate \ -DgroupId=com.example.cloudrun \ -DartifactId=hello-service \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false
Salin dependensi ke daftar dependensi
pom.xml
Anda (di antara elemen<dependencies>
):Salin setelan build ke dalam
pom.xml
Anda (di bawah elemen<dependencies>
):
Membuat layanan HTTP untuk menangani permintaan masuk:
Node.js
Python
Go
Java
Membuat
Dockerfile
untuk menentukan image container yang digunakan untuk men-deploy layanan:Node.js
Python
Go
Java
Contoh ini menggunakan Jib untuk mem-build image Docker menggunakan alat Java umum. Jib mengoptimalkan build container tanpa memerlukan Dockerfile atau menginstal Docker. Pelajari lebih lanjut cara mem-build container Java dengan Jib.
Mengirimkan kode
Kode pengiriman terdiri dari tiga langkah: mem-build image container dengan Cloud Build, mengupload image container ke Container Registry, dan men-deploy image container ke Cloud Run.
Untuk kode pengiriman Anda:
Build container Anda dan publikasikan di Container Registry:
Node.js
gcloud builds submit --tag gcr.io/PROJECT_ID/hello-service
Dengan PROJECT_ID sebagai project ID Google Cloud Anda. Anda dapat memeriksa project ID Anda saat ini dengan
gcloud config get-value project
.Setelah berhasil, Anda akan melihat pesan SUCCESS yang berisi ID, waktu pembuatan, dan nama image. Image tersebut disimpan di Container Registry dan dapat digunakan kembali bila diinginkan.
Python
gcloud builds submit --tag gcr.io/PROJECT_ID/hello-service
Dengan PROJECT_ID sebagai project ID Google Cloud Anda. Anda dapat memeriksa project ID Anda saat ini dengan
gcloud config get-value project
.Setelah berhasil, Anda akan melihat pesan SUCCESS yang berisi ID, waktu pembuatan, dan nama image. Image tersebut disimpan di Container Registry dan dapat digunakan kembali bila diinginkan.
Go
gcloud builds submit --tag gcr.io/PROJECT_ID/hello-service
Dengan PROJECT_ID sebagai project ID Google Cloud Anda. Anda dapat memeriksa project ID Anda saat ini dengan
gcloud config get-value project
.Setelah berhasil, Anda akan melihat pesan SUCCESS yang berisi ID, waktu pembuatan, dan nama image. Image tersebut disimpan di Container Registry dan dapat digunakan kembali bila diinginkan.
Java
- Gunakan gcloud kredensial helper
untuk memberi otorisasi Docker agar dikirim ke Container Registry Anda.
gcloud auth configure-docker
- Gunakan Plugin Maven Jib untuk mem-build dan mengirim container ke Container Registry.
mvn compile jib:build -Dimage=gcr.io/PROJECT_ID/hello-service
Dengan PROJECT_ID sebagai project ID Google Cloud Anda. Anda dapat memeriksa project ID Anda saat ini dengan
gcloud config get-value project
.Setelah berhasil, Anda akan melihat pesan BUILD SUCCESS. Image tersebut disimpan di Container Registry dan dapat digunakan kembali bila diinginkan.
- Gunakan gcloud kredensial helper
untuk memberi otorisasi Docker agar dikirim ke Container Registry Anda.
Jalankan perintah berikut ini untuk menggunakan aplikasi anda:
gcloud run deploy hello-service --image gcr.io/PROJECT_ID/hello-service
Ganti PROJECT_ID dengan ID project Google Cloud anda.
hello-service
adalah nama gambar penampung dan nama dari layanan Cloud Run. Perhatikan bahwa gambar penampung digunakan untuk layanan dan region yang anda konfigurasikan sebelumnya pada bagian Menyiapkan gcloudBerikan tanggapan
y
, "Yes", pada perintah allow unauthenticated. Kunjungi Managing Access untuk detail lebih lanjut pada autentikasi berdasarkan IAM.Tunggu hingga deployment selesai: proses ini memerlukan waktu sekitar setengah menit. Apabila berhasil, command line akan menampilkan URL layanan:
Melakukan Percobaan
Cobalah layanan untuk mengonfirmasi bahwa anda telah berhasil men-deploy-nya. Berbagai permintaan akan gagal apabila menggunakan HTTP 500 atau 503 error (anggota-anggota dari kelas 5xx Server errors). Tutorial ini berisi penjelasan mengenai pemecahan masalah pada tanggapan yang error.
Layanan ini ditetapkan secara otomatis oleh URL yang dapat dinavigasi.
Buka URL ini pada browser web anda:
Buka sebuah browser web.
Temukan layanan URL output pada perintah deploy sebelumnya.
Jika perintah deploy tidak memberikan URL, maka terjadi error. Evaluasi pesan dan tindakan yang error dengan sesuai: jika tidak ada panduan yang dapat ditindaklanjuti, tinjau troubleshooting guide dan coba lagi menu perintah deployment.
Buka URL ini dengan menyalinnya ke kolom URL pada browser anda dan tekan ENTER.
Lihat error pada HTTP 500 atau HTTP 503.
Jika menerima error pada HTTP 403, anda mungkin telah menolak
allow unauthenticated invocations
pada perintah deployment. Berikan akses yang tidak diautentikasi ke layanan untuk memperbaiki masalah ini:gcloud run services add-iam-policy-binding hello-service \ --member="allUsers" \ --role="roles/run.invoker"
Untuk informasi selengkapnya, baca Allowing public (unauthenticated) access.
Menyelidiki masalahnya
Visualisasikan bahwa HTTP 5xx error yang ditemukan di atas dalam Trying it out ditemukan sebagai sebuah error runtime production. Tutorial ini berisi penjelasan mengenai proses formal untuk menangani itu. Meskipun proses resolusi error produksi sangat bervariasi, tutorial ini menyajikan langkah-langkah tertentu untuk menunjukkan pengaplikasian dari fitur-fitur dan teknik-teknik yang berguna.
Untuk menyelidiki masalah ini kamu akan menggunakan fase ini:
- Kumpulkan detail selengkapnya tentang error yang dilaporkan untuk mendukung penyelidikan lebih lanjut dan menetapkan strategi mitigasi.
- Kurangi dampak pengguna dengan memutuskan untuk meneruskan perbaikan atau rollback ke versi yang sehat.
- Reproduksi error untuk konfirmasi bahwa detail yang benar telah dikumpulkan dan error bukanlah glitch satu kali
- Lakukan analisis akar masalah pada bug untuk menemukan kode konfigurasi, atau proses yang membuat error ini
Pada saat memulai investigasi anda memiliki URL, stempel waktu, dan pesan. "Error Server Internal"
Mengumpulkan detail selengkapnya
Kumpulkan informasi selengkapnya tentang masalah untuk memahami yang terjadi dan menentukan langkah selanjutnya.
Gunakan alat Kemampuan Observasi Google Cloud yang tersedia untuk mengumpulkan detail lebih lanjut:
Gunakan console Error Reporting, yang menyediakan dasbor dengan detail dan pelacakan pengulangan untuk error dengan kenali stack trace.
Klik pada error untuk melihat detail pelacakan tumpukan, perhatikan panggilan fungsi yang dibuat sebelum terjadinya error.
Gunakan Cloud Logging untuk meninjau urutan dari operasi yang membuka masalah, termasuk pesan error yang tidak dimasukkan di konsol Error Reporting karena kurangnya pengenalan pelacakan tumpukan error:
Pilihlah Revisi Cloud Run > hello-service dari kotak drop-down pertama. Ini akan memfilter entri log pada entri log yang dihasilkan oleh layanan anda.
Baca selengkapnya tentang melihat log pada Cloud Run
Rollback ke versi stabil
jika ini adalah layanan yang sudah ada, dapat digunakan, maka akan ada revisi sebelumnya dari layanan pada Cloud Run. Tutorial ini menggunakan sebuah layanan baru tanpa versi sebelumnya, jadi anda tidak dapat melakukan rollback.
Namun, jika anda memiliki sebuah layanan dengan versi sebelumnya anda dapat rollback, ikuti Melihat detail revisi untuk mengekstrak nama container dan detail konfigurasi penting untuk membuat deployment pengerjaan baru dari layanan anda.
Mengulangi error
Gunakan detail anda dapat sebelumnya, konfirmasi masalah yang terjadi secara konsisten pada kondisi tes.
kirim permintaan HTTP yang sama dengan melakukan percobaan lagi, dan lihat jika detail dan error yang sama di laporkan. Itu mungkin membutuhkan beberapa waktu untuk detail error muncul.
Karena layanan sampel pada tutorial ini adalah hanya baca dan tidak dapat memicu berbagai efek samping yang rumit, reproduksi error pada produksi adalah aman. Namun, untuk layanan nyata kebanyakan, ini tidak akan menjadi kasus: anda mungkin butuh untuk mereproduksi error dalam lingkungan pengujian atau batas langkah ini pada penyelidikan lokal.
mereproduksi error akan membangun konteks untuk pekerjaan lebih lanjut. misalnya, jika developer tidak dapat mereproduksi error, penyelidikan selanjutnya mungkin diperlukan instrumentasi tambahan dari layanan.
Melakukan analisis akar masalah
Analisis akar masalah adalah langkah penting dalam pemecahan masalah yang efektif untuk memastikan bahwa anda menyelesaikan masalah, bukan menemukan gejala.
Sebelumnya dalam tutorial ini, anda mereproduksi masalah di Cloud Run yang mengonfirmasi bahwa masalah aktif saat layanan dihosting pada Cloud Run. Sekarang, reproduksi masalah secara lokal untuk menentukan apakah masalah tersebut terisolasi pada kode atau itu hanya muncul di hosting produksi.
Jika Anda belum menggunakan Docker CLI secara lokal dengan mengautentikasi Container Registry, itu dengan gcloud:
gcloud auth configure-docker
Untuk pendekatan alternatif lihat metode autentifikasi Container Registry.
Jika nama image container yang paling baru digunakan tidak tersedia, deskripsi layanan tersebut memiliki informasi mengenai image container yang di-deploy paling baru:
gcloud run services describe hello-service
Temukan nama image container di dalam objek
spec
. Perintah yang lebih ditargetkan dapat secara langsung mengambilnya:gcloud run services describe hello-service \ --format="value(spec.template.spec.containers.image)"
Perintah ini menampilkan nama image container seperti
gcr.io/PROJECT_ID/hello-service
.Tarik image container dari Container Registry ke lingkungan anda. langkah ini mungkin memerlukan waktu beberapa menit saat mendownload image container:
docker pull gcr.io/PROJECT_ID/hello-service
pembaruan selanjutnya pada image container yang menggunakan kembali nama ini dapat diambil dengan perintah yang sama. Jika anda melewati langkah ini, perintah
docker run
di bawah akan menarik image container jika tidak ada di komputer lokal.Jalankan secara lokal untuk mengonfirmasi bahwa masalahnya tidak hanya terjadi di Cloud Run:
PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ gcr.io/PROJECT_ID/hello-service
lihat rincian elemen dari perintah di atas,
- Variabel lingkungan
PORT
digunakan oleh layanan untuk menentukan port yang akan memproses di dalam container. - Perintah
run
memulai container, secara default ke perintah entrypoint yang ditentukan di Dockerfile atau image container induk. - Flag
--rm
akan menghapus instance container saat keluar. - Tanda
-e
menetapkan nilai ke variabel lingkungan.-e PORT=$PORT
menerapkan variabelPORT
dari sistem lokal ke dalam container dengan nama variabel yang sama. - Flag
-p
memublikasikan container sebagai layanan yang tersedia di host lokal pada port 9000. Permintaan ke host lokal:9000 akan diarahkan kepada penampung pada port 8080. Artinya, output dari layanan tentang nomor port yang digunakan tidak akan cocok dengan cara layanan yang diakses. - Argumen terakhir
gcr.io/PROJECT_ID/hello-service
adalah image containertag
, label yang dapat dibaca manusia untuk sebuah pengidentifikasi hash sha256 milik image container Jika tidak tersedia secara lokal, Docker akan mencoba untuk mengambil image dari registry jarak jauh.
Pada browser anda, buka http://localhost:9000. Periksa output terminal untuk menemukan pesan error yang cocok dengan pesan di {ops_name}}.
Jika masalah tidak dapat direproduksi secara lokal, masalah mungkin hanya terjadi di lingkungan Cloud Run. Tinjau panduan pemecahan masalah Cloud Run untuk area tertentu yang perlu diselidiki.
Dalam hal ini, error direproduksi secara lokal.
- Variabel lingkungan
Setelah error dikonfirmasi dua kali sebagai persisten dan disebabkan oleh kode layanan bukan platform hosting, saatnya untuk menyelidiki kode tersebut lebih mendalam.
Untuk tujuan tutorial ini, anda dapat mengasumsikan bahwa kode di dalam penampung dan kode di sistem lokal adalah identik.
Tinjau kembali pelacakan tumpukan laporan error dan referensi silang dengan kode untuk menemukan baris spesifik yang bermasalah.
Node.js
Temukan sumber pesan error di dalam fileindex.js
di sekitar nomor baris
yang dipanggil dalam pelacakan tumpukan yang ditampilkan dalam log:
Python
Temukan sumber pesan error di dalam filemain.py
di sekitar nomor baris
yang dipanggil dalam pelacakan tumpukan yang ditampilkan dalam log:
Go
Temukan sumber pesan error di dalam file main.go
di sekitar nomor baris
yang dipanggil dalam pelacakan tumpukan yang ditampilkan dalam log:
Java
Temukan sumber dari pesan error dalam file App.java
di sekitar nomor baris
yang dipanggil dalam pelacakan tumpukan yang ditampilkan dalam log:
Memeriksa kode ini, tindakan berikut akan dilakukan saat variabel lingkungan NAME
tidak ditetapkan:
- Error dicatat ke Google Cloud Observability
- Respon error HTTP dikirim
Masalah ini disebabkan oleh tidak adanya variabel, tetapi akar masalahnya lebih spesifik: perubahan kode yang menambahkan dependensi keras pada variabel lingkungan tidak menyertakan perubahan terkait pada skrip deployment dan dokumentasi persyaratan runtime.
Memperbaiki akar masalah
Setelah mengumpulkan kode dan mengidentifikasi potensi penyebab utamanya, kita dapat mengambil langkah-langkah untuk memperbaikinya.
Periksa apakah layanan berfungsi secara lokal dengan lingkungan
NAME
yang tersedia di tempat:Jalankan container secara lokal dengan variabel lingkungan yang telah ditambahkan:
PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ -e NAME="Local World!" \ gcr.io/PROJECT_ID/hello-service
Buka http://localhost:9000 pada browser anda
Lihat "Hello Local World!" muncul pada halaman tersebut
Ubah lingkungan layanan Cloud Run yang sedang berjalan untuk menyertakan variabel ini:
Jalankan perintah update layanan untuk menambahkan variabel lingkungan:
gcloud run services update hello-service \ --set-env-vars NAME=Override
Tunggu beberapa detik ketika Cloud Run membuat revisi baru berdasarkan revisi sebelumnya dengan menambahkan variabel lingkungan baru.
Pastikan bahwa layanan telah diperbaiki:
- Arahkan browser anda menuju URL layanan Cloud Run.
- Lihat "Halo Penggantian!" akan muncul pada halaman tersebut.
- Pastikan tidak ada pesan atau error yang tidak terduga yang muncul di Cloud Logging atau Error Reporting.
Meningkatkan kecepatan pemecahan masalah di masa mendatang
Dalam contoh masalah produksi ini, error terkait dengan konfigurasi operasional. Ada perubahan kode yang akan meminimalkan dampak masalah ini di masa mendatang.
- Memperbaiki log error untuk menyertakan detail yang lebih spesifik.
- Daripada menampilkan error, buat layanan kembali ke default yang aman. Jika penggunaan default mewakili perubahan pada fungsi normal, gunakan pesan peringatan untuk tujuan pemantauan.
Mari kita lanjutkan dengan menghapus variabel lingkungan NAME
sebagai dependensi kuat.
Hapus kode penanganan
NAME
yang sudah ada:Node.js
Python
Go
Java
Tambahkan kode baru yang menetapkan nilai penggantian:
Node.js
Python
Go
Java
Uji secara lokal dengan mem-build ulang dan menjalankan container melalui kasus konfigurasi yang terpengaruh:
Node.js
docker build --tag gcr.io/PROJECT_ID/hello-service .
Python
docker build --tag gcr.io/PROJECT_ID/hello-service .
Go
docker build --tag gcr.io/PROJECT_ID/hello-service .
Java
mvn compile jib:build
Pastikan variabel lingkungan
NAME
masih berfungsi:PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ -e NAME="Robust World" \ gcr.io/PROJECT_ID/hello-service
Pastikan layanan berfungsi tanpa variabel
NAME
:PORT=8080 && docker run --rm -e PORT=$PORT -p 9000:$PORT \ gcr.io/PROJECT_ID/hello-service
Jika layanan tidak menampilkan hasil, pastikan penghapusan kode pada langkah pertama tidak menghapus baris tambahan, seperti yang digunakan untuk menulis respons.
Deploy ini dengan membuka kembali bagian Men-deploy kode Anda.
Setiap deployment ke layanan membuat revisi baru dan otomatis mulai menyalurkan traffic jika sudah siap.
Untuk menghapus variabel lingkungan yang telah disetel sebelumnya:
gcloud run services update hello-service --clear-env-vars
Tambahkan fungsi baru untuk nilai default ke cakupan pengujian otomatis untuk layanan.
Menemukan masalah lain di log
Anda mungkin melihat masalah lain di Log Viewer untuk layanan ini. Misalnya, panggilan sistem yang tidak didukung akan muncul di log sebagai "Container Sandbox Limitation".
Misalnya, layanan Node.js terkadang menghasilkan pesan log ini:
Container Sandbox Limitation: Unsupported syscall statx(0xffffff9c,0x3e1ba8e86d88,0x0,0xfff,0x3e1ba8e86970,0x3e1ba8e86a90). Please, refer to https://gvisor.dev/c/linux/amd64/statx for more information.
Dalam hal ini, kurangnya dukungan tidak mempengaruhi layanan sampel hello-service.
Pemecahan masalah Terraform
Untuk pertanyaan atau pemecahan masalah terkait Terraform, baca Pemecahan masalah validasi kebijakan Terraform atau hubungi dukungan Terraform.
Pembersihan
Jika Anda membuat project baru untuk tutorial ini, hapus project tersebut. Jika Anda menggunakan project yang ada dan ingin mempertahankannya tanpa ada 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:
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource tutorial
Hapus layanan Cloud Run yang Anda deploy dalam tutorial ini:
gcloud run services delete SERVICE-NAME
Dengan SERVICE-NAME adalah nama layanan pilihan Anda.
Anda juga dapat menghapus layanan Cloud Run dari Konsol Google Cloud.
Hapus konfigurasi region default gcloud yang Anda tambahkan selama penyiapan tutorial:
gcloud config unset run/region
Hapus konfigurasi project:
gcloud config unset project
Hapus resource Google Cloud lain yang dibuat dalam tutorial ini:
- Hapus image container seperti
gcr.io/<var>PROJECT_ID</var>/hello-service
dari Container Registry.
- Hapus image container seperti
Langkah berikutnya
- Pelajari lagi mengenai bagaimana cara menggunakan Cloud Logging dan Error Reporting untuk memperoleh insight pada perilaku produksi.
- untuk informasi selanjutnya mengenai pemecahan masalah Cloud Run, lihat panduan pemecahan masalah.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.