Setelah API Anda di-deploy, pengguna API Anda harus mengaksesnya melalui nama domain, bukan alamat IP. Anda dapat:
- Konfigurasikan
.endpoints.PROJECT_ID.cloud.goog
sebagai nama domain (denganPROJECT_ID
sebagai project ID Google Cloud Anda). - Atau daftarkan nama domain Anda sendiri, seperti
example.com
, yang memerlukan:- Mengonfigurasi server nama DNS (atau menggunakan Cloud DNS).
- Memperbarui alamat registry.
- Membuat dan memelihara catatan DNS.
Jika Anda sudah memiliki infrastruktur DNS, atau ingin mendaftarkan nama domain Anda sendiri, lihat Menayangkan API dari nama domain Anda untuk mengetahui informasi selengkapnya.
Halaman ini menjelaskan cara mengonfigurasi Cloud Endpoints API untuk menggunakan .endpoints.PROJECT_ID.cloud.goog
sebagai nama domain. Langkah-langkah konfigurasi di halaman ini berlaku untuk API yang menggunakan OpenAPI yang berjalan di Compute Engine, Google Kubernetes Engine, atau Kubernetes.
Nama domain .endpoints.PROJECT_ID.cloud.goog
tidak didukung untuk API yang berjalan di App Engine. Untuk API di App Engine, sebaiknya gunakan PROJECT_ID.appspot.com
sebagai nama layanan Endpoint. Saat Anda men-deploy API ke App Engine, entri DNS dengan nama dalam format PROJECT_ID.appspot.com
akan dibuat secara otomatis.
Domain .cloud.goog
dikelola oleh Google dan dibagikan oleh pelanggan Google Cloud. Karena project Google Cloud dijamin memiliki project ID yang unik secara global, nama domain dalam format .endpoints.PROJECT_ID.cloud.goog
bersifat unik dan dapat digunakan sebagai nama domain untuk API Anda. Mengonfigurasi nama domain
.endpoints.PROJECT_ID.cloud.goog
bersifat opsional. Jika mau, Anda dapat mendaftarkan
nama domain Anda sendiri.
Prasyarat
Sebagai titik awal, halaman ini mengasumsikan bahwa Anda telah membuat Cloud Endpoints API dan men-deploy-nya ke Compute Engine, Google Kubernetes Engine, atau Kubernetes. Jika memerlukan API untuk pengujian, Anda dapat menggunakan salah satu tutorial yang akan memandu Anda dalam mengonfigurasi dan men-deploy API contoh.
Mengkonfigurasi DNS
Prosedur berikut menjelaskan cara mengonfigurasi DNS untuk Cloud Endpoints API yang menggunakan .endpoints.[PROJECT_ID].cloud.goog
sebagai nama layanan Endpoint, dengan [PROJECT_ID]
mewakili project ID Google Cloud Anda. Untuk memudahkan, prosedur ini mengacu pada
file konfigurasi OpenAPI Anda sebagai openapi.yaml
.
Untuk mengonfigurasi DNS:
- Buka
openapi.yaml
, lalu tambahkan kolomx-google-endpoints
ke file seperti ditunjukkan dalam cuplikan berikut:swagger: "2.0" host: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" x-google-endpoints: - name: "[API_NAME].endpoints.[PROJECT_ID].cloud.goog" target: "[IP_ADDRESS]"
Biasanya, Anda mengonfigurasi kolom
host
dan kolomx-google-endpoints.name
agar sama. Saat Anda men-deploy spesifikasi OpenAPI, teks yang ditentukan dalam kolomhost
digunakan sebagai nama layanan Endpoint Anda. - Ganti
[API_NAME]
dengan nama API Anda (misalnya,bookstore
ataumy-cool-api
). - Ganti
[PROJECT_ID]
dengan ID project Google Cloud Anda. - Ganti
[IP_ADDRESS]
dengan alamat IPv4.Misalnya, jika Anda men-deploy layanan Endpoints API ke instance virtual machine Compute Engine, Anda dapat menggunakan IP eksternal dari virtual machine tersebut. Atau, jika Anda menjalankan kode pada sekelompok instance virtual machine (atau pod GKE) di belakang load balancer, Anda dapat menggunakan alamat IP load balancer.
- Deploy spesifikasi OpenAPI baru Anda ke Pengelolaan Layanan menggunakan perintah berikut:
gcloud endpoints services deploy openapi.yaml
Misalnya, jika hal berikut ditentukan dalam file openapi.yaml
:
swagger: "2.0" host: "my-cool-api.endpoints.my-project-id.cloud.goog" x-google-endpoints: - name: "my-cool-api.endpoints.my-project-id.cloud.goog" target: "192.0.2.1"
Saat Anda men-deploy openapi.yaml
menggunakan perintah gcloud
sebelumnya, Pengelolaan Layanan akan membuat data A DNS, my-cool-api.endpoints.my-project-
id.cloud.goog
, yang di-resolve ke alamat IP target, 192.0.2.1
. Anda mungkin perlu menunggu beberapa menit hingga konfigurasi DNS baru diterapkan.
Langkah selanjutnya
- Mengaktifkan SSL untuk Endpoint
- Mengonfigurasi alamat IP
- Menamai layanan API
- Menayangkan API dari nama domain Anda