Memecahkan masalah deployment konfigurasi Cloud Endpoints

Halaman ini menjelaskan cara memecahkan masalah error yang mungkin Anda alami saat men-deploy konfigurasi Cloud Endpoints. Pesan error yang Anda lihat berisi informasi khusus untuk project Anda. Misalnya, Anda mungkin melihat pesan error yang berisi project ID Anda. Di halaman ini, Anda akan melihat nilai placeholder seperti YOUR_PROJECT_ID.

Setelah setiap langkah, jalankan kembali perintah gcloud endpoints services deploy untuk melihat apakah error telah teratasi.

Tidak dapat mengonversi ke konfigurasi layanan

ERROR: unknown location: http: In path template '[PATH]': unexpected end of input '/'.'

Error ini ditampilkan saat satu atau beberapa jalur dalam dokumen OpenAPI Anda menyertakan karakter garis miring (/) di akhir. Untuk memperbaiki masalah ini, hapus garis miring di akhir dari semua jalur. Misalnya, cuplikan berikut dalam dokumen OpenAPI akan menghasilkan error ini:

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

Untuk memperbaikinya, hapus garis miring di akhir dari /echo/:

paths:
  "/echo":
    post:
      description: "Echo back a given message."

Tidak diizinkan untuk mendapatkan setelan project

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID

  1. Lakukan autentikasi dengan gcloud CLI lagi untuk mengonfirmasi bahwa Anda melakukan autentikasi dengan akun yang memiliki izin untuk mengakses project yang ditampilkan dalam pesan error:
    gcloud auth login

    Tab browser baru akan terbuka dan Anda akan diminta untuk memilih akun.

  2. Pastikan ID project yang ditampilkan dalam pesan error sesuai dengan project Google Cloud yang menjadi tujuan deployment konfigurasi Endpoints:
    gcloud projects list
  3. Pastikan gcloud CLI memiliki project ID yang benar yang ditetapkan sebagai project saat ini:
    gcloud config set project YOUR_PROJECT_ID

Pemanggil tidak memiliki izin

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on project YOUR_PROJECT_ID

Saat Anda pertama kali men-deploy konfigurasi Endpoint, Pengelolaan Layanan akan membuat layanan terkelola untuk API Anda. Untuk membuat layanan terkelola, setidaknya Anda harus memiliki peran Editor di tingkat project. Setelah Pengelolaan Layanan membuat layanan terkelola, izin minimum yang diperlukan untuk men-deploy ulang konfigurasi Endpoints adalah peran Service Config Editor (roles/servicemanagement.configEditor) di layanan. Untuk mengetahui informasi selengkapnya, lihat Memberikan akses ke API.

Kepemilikan untuk nama domain tidak dapat diverifikasi

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Ownership for domain name YOUR_DOMAIN_NAME on project YOUR_PROJECT_ID cannot be verified

  • Jika memiliki domain kustom (seperti example.com) yang dikonfigurasi di kolom host dokumen OpenAPI, Anda harus memverifikasi nama domain sebelum dapat men-deploy dokumen OpenAPI.
  • Jika Anda menggunakan domain cloud.goog, pastikan nilai untuk kolom host dalam format berikut, dan project ID sudah benar:
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
  • Jika Anda menggunakan domain appspot.com (hanya didukung untuk App Engine), pastikan kolom host dalam format berikut, dan project ID-nya sudah benar:
    YOUR_PROJECT_ID.appspot.com

Memecahkan masalah error lainnya

Jika Anda menerima error yang tidak tercantum di sini, atau jika informasi tersebut tidak menyelesaikan masalah Anda, jalankan kembali perintah gcloud dengan flag untuk menampilkan informasi debug:

gcloud --verbosity=debug endpoints services deploy openapi.yaml

Langkah selanjutnya