Halaman ini menjelaskan cara memecahkan masalah 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 dalamnya. Di halaman ini, Anda akan melihat nilai placeholder seperti YOUR_PROJECT_ID.
Setelah melakukan setiap langkah, jalankan kembali perintah gcloud endpoints services deploy
untuk melihat
apakah error telah teratasi.
Tidak dapat mengonversi ke konfigurasi layanan
ERROR: (gcloud.endpoints.services.deploy) INVALID_ARGUMENT:
Cannot convert to service config. http: undefined field <unknown>
on message <RequestType>
Periksa file .proto
untuk menemukan kolom yang tidak cocok antara pesan buffering protokol dan
pemetaan transcoding.
Misalnya, kode berikut dalam file .proto
menghasilkan error
ini. Opsi pemetaan di Unary
menentukan kolom bernama undefined
yang tidak ada dalam definisi pesan Request
.
rpc Unary(Request) Response { option (google.api.http) { get : "/{undefined}" }; } message Request { string defined = 1; }
Tidak diizinkan mendapatkan setelan project
ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID
- 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.
- Pastikan bahwa project ID yang ditampilkan dalam pesan error sesuai dengan project Google Cloud yang Anda inginkan untuk men-deploy konfigurasi Endpoint:
gcloud projects list
- Pastikan gcloud CLI memiliki project ID yang benar sebagai project saat ini:
gcloud config set project YOUR_PROJECT_ID
Penelepon 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 level project. Setelah Pengelolaan Layanan membuat layanan terkelola, izin minimum yang diperlukan untuk men-deploy ulang konfigurasi Endpoint adalah peran Service Config Editor (roles/servicemanagement.configEditor) di layanan. Untuk 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 (misalnya,
example.com
) yang dikonfigurasi di kolomname
pada fileapi_config.yaml
, Anda harus memverifikasi nama domain sebelum dapat men-deploy konfigurasi layanan. - Jika Anda menggunakan domain
cloud.goog
, pastikan nilai untuk kolomname
dalam format berikut, dan project ID sudah benar:API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
Memecahkan masalah error lainnya
Jika Anda menerima error yang tidak tercantum di sini, atau jika informasi tersebut tidak
memecahkan masalah, jalankan lagi perintah gcloud
dengan flag
tersebut untuk menampilkan informasi debug:
gcloud --verbosity=debug endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml