Membuat pemeriksa link rusak

Dokumen ini menjelaskan cara mengonfigurasi pengujian berkala terhadap link yang terdapat dalam URI dengan membuat monitor sintetis. Anda menentukan opsi untuk pengujian, seperti URI asal, jumlah link yang diuji, dan jumlah percobaan ulang, lalu men-deploy fungsi Cloud Run yang telah dikonfigurasi sebelumnya. Untuk mendukung upaya pemecahan masalah dan proses debug Anda, monitor sintetis menyimpan informasi mendetail tentang setiap pengujian, termasuk screenshot. Screenshot memungkinkan Anda melihat respons yang tepat yang dilihat oleh pelanggan aplikasi Anda.

Untuk mempelajari monitor sintetis lebih lanjut, lihat artikel Tentang monitor sintetis.

Tentang pemeriksa link rusak

Setiap pemeriksa link rusak menguji link secara berurutan, dan ada waktu tunggu sintetis secara keseluruhan, yang dapat dikonfigurasi.

Secara default, pemeriksa link rusak melakukan hal berikut:

  • Menelusuri URI asal untuk elemen anchor HTML dengan atribut href.
  • Menguji 10 link pertama yang ditemukan di URI asal.
  • Untuk setiap link, pemeriksa akan mengeluarkan permintaan, lalu menunggu respons maksimal 30 detik. Saat respons diterima, pemeriksa akan memverifikasi bahwa status respons HTTP adalah 200, yang menunjukkan respons berhasil. Pemeriksa tidak melakukan percobaan ulang.

Anda menentukan URI asal. Anda dapat mengonfigurasi elemen HTML yang ditelusuri pemeriksa link rusak, jumlah maksimum elemen yang diuji, waktu tunggu per pengujian, dan apakah percobaan ulang dilakukan. Anda juga dapat mengonfigurasi pemeriksa link rusak untuk menunggu pemilih muncul.

Pemeriksa link rusak menggunakan template broken-links-ok. Konfigurasi untuk pemeriksa link rusak ditentukan oleh objek options dari file index.js. Jika Anda membuat pemeriksa menggunakan konsol Google Cloud, Anda akan diminta untuk memasukkan setiap opsi konfigurasi dan fungsi Cloud Run akan diperbarui untuk Anda. Namun, jika menggunakan Cloud Monitoring API atau Terraform, Anda harus mengisi objek ini.

Setelah Anda membuat pemeriksa link rusak, untuk mengubah konfigurasi, perbarui objek options dan deploy ulang fungsi Cloud Run.

Sebelum memulai

  1. Untuk mendapatkan izin yang diperlukan guna melihat dan mengubah monitor sintetis menggunakan konsol Google Cloud, minta administrator untuk memberi Anda peran IAM berikut di project Anda:

    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.

  2. Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.

    Enable the APIs

  3. Pastikan project Google Cloud Anda berisi akun layanan Compute Engine default. Akun layanan ini dibuat saat Anda mengaktifkan Compute Engine API dan memiliki nama yang mirip dengan 12345-compute@.

    Di konsol Google Cloud, buka halaman Service Accounts:

    Buka Service Accounts

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.

    Jika akun layanan Compute Engine default tidak ada, klik Buat akun layanan dan selesaikan dialog.

  4. Pastikan akun layanan Compute Engine default, atau akun layanan yang Anda buat, telah diberi peran Editor (roles/editor).

    Untuk melihat peran yang diberikan ke akun layanan Anda, lakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman IAM:

      Buka IAM

      Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah IAM & Admin.

    2. Pilih Sertakan pemberian peran yang disediakan Google.
    3. Jika akun layanan yang digunakan oleh monitor sintetis Anda tidak tercantum, atau jika akun layanan tersebut belum diberi peran yang menyertakan izin dalam peran Agen Cloud Trace (roles/cloudtrace.agent), berikan peran ini ke akun layanan Anda.
  5. Konfigurasikan saluran notifikasi yang ingin Anda gunakan untuk menerima notifikasi. Sebaiknya buat beberapa jenis saluran notifikasi. Untuk informasi selengkapnya, lihat Membuat dan mengelola saluran notifikasi dan Membuat dan mengelola saluran notifikasi melalui API.

Membuat pemeriksa link rusak

Konsol

Saat Anda membuat monitor sintetis menggunakan konsol Google Cloud, fungsi Cloud Run baru (generasi ke-2) akan di-deploy dan monitor untuk fungsi Cloud Run tersebut akan dibuat. Anda tidak dapat membuat monitor sintetis yang memantau fungsi Cloud Run yang ada.

  1. Pastikan Anda telah mengaktifkan API yang diperlukan, project Anda berisi akun layanan Compute Engine default, dan akun ini telah diberi peran Editor (roles/editor). Untuk informasi selengkapnya, lihat Sebelum memulai.
  2. Di konsol Google Cloud, buka halaman  Synthetic monitoring:

    Buka Pemantauan sintetis

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  3. Pilih Buat Monitor Sintetis.
  4. Untuk template, pilih Pemeriksa link rusak.
  5. Masukkan nama untuk monitor sintetis.
  6. Opsional: Perbarui Response Timeout, Check Frequency, dan tambahkan label yang ditentukan pengguna.

  7. Konfigurasikan URI dan elemen yang akan diuji:

    1. Klik URI Asal, lalu masukkan URI yang ingin Anda uji. Nilai yang Anda masukkan harus berupa endpoint HTTP atau HTTPS. Misalnya, Anda dapat memasukkan https://mywebsite.example.com.

    2. Opsional: Di bagian Jumlah link yang akan diikuti, perbarui jumlah maksimum link yang diuji. Nilai default kolom ini adalah 10.

    3. Opsional: Di kolom Pemilih elemen HTML, masukkan elemen HTML yang ingin Anda cocokkan, sebagai daftar yang dipisahkan koma. Nilai yang Anda masukkan akan dikonversi menjadi string, lalu diteruskan ke metode Document: querySelectorAll().

      Secara default, kolom ini ditetapkan ke a, yang cocok dengan anchor. Anda dapat memasukkan nilai seperti a, img, jika ingin mencocokkan anchor dan gambar.

    4. Opsional: Di kolom Atribut HTML yang akan diikuti, masukkan atribut HTML yang ingin Anda cocokkan. Nilai yang dipisahkan koma yang Anda masukkan akan diteruskan satu per satu ke metode getAttribute().

      Secara default, kolom ini ditetapkan ke href, yang menentukan URI untuk link. Anda dapat memasukkan beberapa atribut, misalnya, Anda dapat memasukkan href, src. Dalam contoh ini, kode menelusuri atribut href, lalu menelusuri atribut src.

    5. Opsional: Konfigurasikan tunggu pemilih, waktu tunggu per URI, percobaan ulang, dan kode status yang diharapkan:

      1. Klik Tampilkan opsi lainnya.
      2. Untuk mengonfigurasi pemeriksa link rusak agar menunggu pemilih tertentu muncul di URI sebelum link di-scrap, masukkan pemilih CSS di kolom Tunggu pemilih elemen. Nilai yang Anda masukkan akan dikonversi menjadi string, lalu diteruskan ke metode page.waitForSelector().

        Jika pemilih tidak muncul sebelum waktu tunggu berakhir, kegagalan akan dicatat dalam log.

      3. Perbarui urutan pemilihan link untuk pengujian.

      4. Konfigurasikan percobaan ulang.

        Secara default, satu permintaan dikirim ke setiap link dan jika permintaan awal gagal karena alasan apa pun, misalnya, waktu tunggu perintah habis atau kode status HTTP bukan 200, link akan ditandai sebagai gagal.

        Kolom ini menentukan frekuensi pemeriksa link rusak dapat mengeluarkan permintaan HTTP ke link sebelum menandai link sebagai gagal.

      5. Konfigurasikan waktu tunggu yang berlaku untuk setiap URI. Secara default, nilai ini ditetapkan ke 30 detik.

      6. Untuk menentukan kode status dan waktu tunggu yang diharapkan untuk URI tertentu, klik Tambahkan opsi per link dan selesaikan dialog.

  8. Opsional: Konfigurasikan apakah screenshot respons dikumpulkan dan disimpan. Jika Anda menggunakan setelan default, screenshot tidak akan disimpan. Jika mengaktifkan pengumpulan screenshot, Anda dapat mengumpulkan screenshot untuk semua pengujian atau hanya untuk pengujian yang gagal. Cloud Monitoring menggunakan konvensi berikut untuk memberi nama bucket Cloud Storage:

    gcm-PROJECT_ID-synthetics-LOCATION
    

    Dalam ekspresi sebelumnya:

    • PROJECT_ID: ID project Google Cloud Anda.
    • LOCATION: Lokasi bucket Cloud Storage Anda.

    Anda memiliki opsi untuk menggunakan bucket Cloud Storage yang ada.

  9. Tinjau konfigurasi Anda dan pastikan konfigurasi tersebut sudah benar dan lengkap, lalu buat fungsi Cloud Run:

    1. Klik Buat fungsi.

      Nilai di kolom URI configuration disalin ke objek Options dalam file index.js saat Anda mengklik Create Function. Setelah Anda mengklik Create Function, untuk mengubah konfigurasi, edit objek Options.

    2. Masukkan nama tampilan dan pilih wilayah. Nama harus unik dalam wilayah.

    3. Di bagian Runtime, build, connections and security settings, lakukan hal berikut:

      • Di tab Koneksi, pastikan Izinkan semua traffic dipilih.

      • Tinjau setelan default dan perbarui jika diperlukan.

      • Di kolom Runtime service account, pilih akun layanan.

    4. Klik Apply function.

  10. Konfigurasikan kebijakan pemberitahuan:

    1. Opsional: Perbarui nama kebijakan pemberitahuan dan durasi kegagalan sebelum notifikasi dikirim.

    2. Tambahkan saluran notifikasi.

  11. Klik Create.

    Fungsi Cloud Run yang Anda tentukan akan di-build dan di-deploy sebagai generasi ke-2, dan monitor sintetis akan dibuat.

API

Proses pembuatan pemeriksa link rusak menggunakan Cloud Monitoring API sama dengan proses pembuatan monitor sintetis lainnya. Untuk informasi tentang cara menggunakan Cloud Monitoring API untuk membuat monitor sintetis, lihat Membuat monitor sintetis, lalu pilih tab Cloud Monitoring.

Pemeriksa link rusak menggunakan template broken-links-ok. Konfigurasi untuk pemeriksa link rusak ditentukan oleh objek options dari file index.js.

Saat struktur options.screenshot_options ditentukan, pemeriksa link rusak akan mengumpulkan screenshot dan menyimpannya ke bucket Cloud Storage. Jika kolom screenshot_options.storage_location tidak ditentukan atau jika nilainya adalah string kosong, Monitoring akan membuat bucket Cloud Storage dan screenshot akan disimpan ke bucket tersebut. Monitoring menggunakan konvensi berikut untuk memberi nama bucket Cloud Storage:

gcm-PROJECT_ID-synthetics-LOCATION

Dalam ekspresi sebelumnya:

  • PROJECT_ID: ID project Google Cloud Anda.
  • LOCATION: Lokasi bucket Cloud Storage Anda.

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi penyedia Terraform.

Proses pembuatan pemeriksa link rusak menggunakan Terraform sama dengan proses pembuatan monitor sintetis lainnya. Untuk informasi tentang cara menggunakan Terraform untuk membuat monitor sintetis, lihat Membuat monitor sintetis, lalu pilih tab Terraform.

Pemeriksa link rusak menggunakan template broken-links-ok. Konfigurasi untuk pemeriksa link rusak ditentukan oleh objek options dari file index.js.

Saat struktur options.screenshot_options ditentukan, pemeriksa link rusak akan mengumpulkan screenshot dan menyimpannya ke bucket Cloud Storage. Jika kolom screenshot_options.storage_location tidak ditentukan atau jika nilainya adalah string kosong, Monitoring akan membuat bucket Cloud Storage dan screenshot akan disimpan ke bucket tersebut. Monitoring menggunakan konvensi berikut untuk memberi nama bucket Cloud Storage:

gcm-PROJECT_ID-synthetics-LOCATION

Dalam ekspresi sebelumnya:

  • PROJECT_ID: ID project Google Cloud Anda.
  • LOCATION: Lokasi bucket Cloud Storage Anda.

Menjelajahi hasil

Untuk setiap eksekusi, pemeriksa link rusak akan melakukan hal berikut:

  • Menghasilkan tabel, dengan setiap baris memberikan informasi tentang pengujian URI tertentu. Informasi ringkasan mencakup URI target, latensi, status, dan ID elemen HTML. Misalnya, kolom ini mencantumkan a saat elemen anchor HTML diuji. Jika baris sesuai dengan URI asal, nilai ID elemen HTML adalah -.

  • Mengumpulkan metrik, data rekaman aktivitas, dan data log.

  • Mengumpulkan screenshot, jika dikonfigurasi.

Untuk informasi selengkapnya tentang cara menjelajahi data yang dikumpulkan, lihat Menjelajahi hasil monitor sintetis.

Memecahkan masalah

Bagian ini memberikan informasi yang dapat Anda gunakan untuk membantu memecahkan masalah pengecek link rusak.

Tidak dapat mengedit konfigurasi pemeriksa link rusak

Anda telah membuat pemeriksa link rusak menggunakan konsol Google Cloud, dan ingin mengubah elemen HTML yang diuji, atau ingin mengubah waktu tunggu URI, percobaan ulang, tunggu pemilih, dan opsi per link. Namun, saat Anda mengedit pemeriksa link rusak, konsol Google Cloud tidak menampilkan kolom konfigurasi.

Untuk mengatasi kegagalan ini, lakukan tindakan berikut:

  1. Di konsol Google Cloud, buka halaman  Synthetic monitoring:

    Buka Pemantauan sintetis

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil yang subjudulnya adalah Monitoring.

  2. Cari monitor sintetis yang ingin diedit, klik More options, lalu pilih Edit.
  3. Klik Edit function.
  4. Edit objek options dalam file index.js, lalu klik Terapkan fungsi.

    Untuk mengetahui informasi tentang kolom dan sintaksis untuk objek ini, lihat broken-links-ok/index.js.

  5. Klik Simpan.

Konsol Google Cloud menampilkan bahwa penyimpanan screenshot gagal

Anda telah membuat pemeriksa link rusak dan mengonfigurasinya untuk menyimpan screenshot. Namun, konsol Google Cloud menampilkan salah satu pesan peringatan berikut bersama dengan informasi yang lebih mendetail:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Untuk mengatasi kegagalan ini, coba langkah berikut:

  • Jika Anda melihat pesan InvalidStorageLocation, verifikasi keberadaan bucket Cloud Storage yang ditentukan di kolom bernama options.screenshot_options.storage_location.

  • Melihat log yang terkait dengan fungsi Cloud Run Anda. Untuk mengetahui informasi selengkapnya, lihat Menemukan log.

  • Pastikan akun layanan yang digunakan dalam fungsi Cloud Run yang sesuai memiliki peran Identity and Access Management yang memungkinkannya membuat, mengakses, dan menulis ke bucket Cloud Storage.

Langkah selanjutnya