Menyiapkan Cloud Endpoints gRPC untuk Cloud Run for Anthos dengan ESPv2

Halaman ini menunjukkan cara menyiapkan Cloud Endpoints untuk Cloud Run for Anthos. Endpoint menggunakan Extensible Service Proxy V2 (ESPv2) sebagai gateway API. Guna menyediakan pengelolaan API untuk Cloud Run for Anthos, Anda men-deploy container ESPv2 bawaan ke Cloud Run for Anthos yang berjalan di cluster GKE.

Dengan penyiapan ini, ESPv2 mencegat semua permintaan ke layanan Anda dan melakukan pemeriksaan yang diperlukan (seperti autentikasi) sebelum memanggil layanan. Saat layanan merespons, ESPv2 akan mengumpulkan dan melaporkan telemetri.

Untuk ringkasan Endpoint, lihat artikel Tentang Endpoint dan Arsitektur Endpoint.

{i>Task List <i}(Daftar Tugas)

Gunakan daftar tugas berikut saat Anda mengerjakan tutorial. Semua tugas diperlukan untuk menyelesaikan tutorial ini.

  1. Buat project Google Cloud, dan jika Anda belum men-deploy Cloud Run for Anthos sendiri, deploy layanan sampel. Lihat Sebelum memulai.

  2. Buat cluster GKE dengan Cloud Run for Anthos yang telah diaktifkan.

  3. Deploy contoh gRPC dengan layanan Cloud Run for Anthos.

  4. Buat dokumen konfigurasi gRPC API yang mendeskripsikan Endpoints API Anda, dan konfigurasikan rute ke layanan Cloud Run for Anthos Anda. Lihat Mengonfigurasi Endpoint.

  5. Deploy dokumen konfigurasi gRPC API untuk membuat layanan terkelola. Lihat Men-deploy konfigurasi Endpoint.

  6. Bangun image Docker ESPv2 baru dengan konfigurasi layanan Endpoint Anda. Lihat Membuat image ESPv2 baru.

  7. Deploy image ESPv2 Cloud Run for Anthos yang baru. Lihat Men-deploy image ESPv2 Cloud Run.

  8. Buat pemetaan domain ke layanan ESPv2 Cloud Run for Anthos.

  9. Uji konfigurasi Anda dengan Mengirim permintaan ke API.

  10. Lacak aktivitas ke layanan Anda. Lihat Aktivitas Tracking API.

  11. Pembersihan.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.

Sebelum memulai

  1. 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.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  5. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  6. Catat ID project karena akan diperlukan nanti. Di bagian lain halaman ini, project ID ini disebut sebagai ESP_PROJECT_ID.
  7. Download dan instal gcloud CLI.

Menyiapkan command line gcloud

Untuk menyiapkan gcloud CLI untuk Cloud Run for Anthos for Anthos:

  1. Pastikan gcloud CLI diberi otorisasi untuk mengakses data dan layanan Anda.

    1. Log in.

      gcloud auth login

    2. Pada tab browser baru yang terbuka, pilih akun yang memiliki peran Editor atau Pemilik di project Google Cloud yang Anda buat untuk men-deploy ESPv2 ke Cloud Run for Anthos.

  2. Update komponen gcloud yang diinstal:

    gcloud components update
  3. Setel platform ke gke dan tetapkan setelan project default untuk gcloud ke project yang baru saja Anda buat:

    gcloud config set run/platform gke
    gcloud config set project ESP_PROJECT_ID

    Ganti ESP_PROJECT_ID dengan project ID dari project yang Anda buat.

  4. Tetapkan zona yang diinginkan untuk cluster baru. Anda dapat menggunakan zona mana pun tempat GKE didukung, misalnya:

    gcloud config set compute/zone ZONE

    Ganti ZONE dengan zona Anda. Misalnya, gunakan us-central1-a. Anda dapat menggunakan zona apa pun yang didukung oleh GKE.

  5. Aktifkan API berikut untuk project, yang diperlukan untuk membuat cluster, membangun, dan memublikasikan penampung ke Google Container registry:

    gcloud services enable container.googleapis.com containerregistry.googleapis.com cloudbuild.googleapis.com

Membuat cluster GKE dengan Cloud Run for Anthos yang diaktifkan

Untuk membuat cluster dan mengaktifkannya untuk Cloud Run for Anthos di Google Cloud:

  1. Buat cluster baru menggunakan perintah:

    gcloud container clusters create CLUSTER_NAME \
      --addons=HttpLoadBalancing,CloudRun \
      --machine-type=n1-standard-4 \
      --num-nodes=3

    Ganti CLUSTER_NAME dengan nama cluster yang Anda inginkan.

    Meskipun petunjuk ini tidak mengaktifkan penskalaan cluster guna mengubah ukuran cluster sesuai permintaan, Cloud Run for Anthos di Google Cloud akan otomatis menskalakan instance dalam cluster.

  2. Tunggu hingga cluster selesai dibuat. Selama proses pembuatan, Anda akan melihat pesan yang mirip dengan pesan berikut:

    Creating cluster CLUSTER_NAME...done.
    Created [https://container.googleapis.com/v1/projects/ESP_PROJECT_ID/zones/ZONE/clusters/CLUSTER_NAME].

    Output juga menunjukkan versi cluster pada kolom NODE_VERSION output. Misalnya 1.15.11-gke.1 atau 1.14.10-gke.27. Catat versi cluster untuk digunakan nanti dalam dokumen ini.

  3. Tetapkan default gcloud untuk menggunakan cluster baru dan lokasi cluster Anda agar tidak perlu menetapkannya saat menggunakan gcloud CLI:

    gcloud config set run/cluster CLUSTER_NAME
    gcloud config set run/cluster_location ZONE
  4. Gunakan perintah berikut untuk melihat detail tentang cluster baru:

    gcloud container clusters describe CLUSTER_NAME
  5. Gunakan perintah berikut untuk mengambil kredensial cluster Anda:

    gcloud container clusters get-credentials CLUSTER_NAME

Men-deploy contoh layanan gRPC Cloud Run

Untuk men-deploy container contoh Cloud Run for Anthos "grpc-bookstore" ke cluster yang baru saja Anda buat:

  1. Ikuti langkah-langkah dalam panduan memulai Python gRPC untuk menginstal gRPC dan alat gRPC.

  2. Contoh server gRPC ini berisi image Docker pra-build untuk "layanan grpc-bookstore" Python: gcr.io/endpointsv2/python-grpc-bookstore-server:2. Gunakan perintah berikut untuk men-deploy "grpc-bookstore" ke cluster Anda:

    gcloud run deploy GRPC_SERVICE \
      --image=gcr.io/endpointsv2/python-grpc-bookstore-server:2 \
      --platform=gke \
     --connectivity=internal \
      --use-http2

    Perhatikan bahwa Anda menetapkannya sebagai layanan internal sehingga layanan ini tidak dapat diakses secara eksternal.

    Ganti GRPC_SERVICE dengan nama yang Anda inginkan untuk layanan. Contoh:

    gcloud run deploy grpc-bookstore \
      --image=gcr.io/endpointsv2/python-grpc-bookstore-server:2 \
      --platform=gke \
      --connectivity=internal \
      --use-http2

    Setelah selesai, pesan berikut akan muncul:

    Service [grpc-bookstore] revision [grpc-bookstore-00001-nuk] has been deployed and is serving 100 percent of traffic at http://grpc-bookstore.default.svc.cluster.local

    Saat Anda membuat layanan internal, GKE membuat nama DNS (dalam contoh ini grpc-bookstore.default.svc.cluster.local) yang hanya dapat diselesaikan untuk permintaan yang berasal dari dalam cluster itu sendiri, bukan untuk permintaan eksternal. Anda tidak dapat mengakses DNS ini secara eksternal dari cluster. Lihat layanan Cloud Run untuk informasi selengkapnya.

  3. Untuk memverifikasi bahwa layanan Anda berfungsi dengan benar, deploy pod dengan image Docker yang sama ke cluster Anda. Gambar ini berisi kode klien gRPC untuk "grpc-bookstore" yang dapat Anda gunakan untuk menguji layanan internal.

    1. Gunakan perintah kubectl berikut untuk men-deploy pod ke cluster yang sama seperti yang Anda deploy di atas:

      kubectl run grpc --generator=run-pod/v1 \
        --image=gcr.io/endpointsv2/python-grpc-bookstore-server:2

      Gambar ini berisi skrip bookstore_client.py yang dapat Anda gunakan untuk membuat permintaan klien dari dalam cluster.

      Catatan: Untuk versi kubectl yang lebih baru, perintah mungkin mengeluarkan peringatan berikut:

      Flag --generator has been deprecated, has no effect and will be removed in the future".

      Anda dapat mengabaikan peringatan tersebut.

    2. Dapatkan nama pod "grpc-bookstore" yang dibuat di cluster saat Anda men-deploy image Docker di langkah sebelumnya:

      kubectl get pods

      Anda akan melihat output dalam bentuk:

      NAME   READY    STATUS    RESTARTS   AGE
      grpc   1/1      Running   0          23h

      Di mana grp nama pod "grpc-bookstore". Pastikan bahwa Status pod adalah Running sebelum melanjutkan.

    3. Gunakan perintah berikut untuk membuat permintaan klien ke layanan "grpc-bookstore":

      kubectl exec grpc -ti -- python3 bookstore_client.py \
        --host grpc-bookstore.default.svc.cluster.local --port=80

      Perintah ini menjalankan skrip bookstore_client.py secara internal di cluster untuk membuat permintaan gRPC ke layanan "grpc-bookstore" pada nama host grpc-bookstore.default.svc.cluster.local.

      Jika semuanya berfungsi dengan benar, Anda akan melihat respons dalam formulir:

      ListShelves: shelves {
        id: 1
        theme: "Fiction"
      }
      shelves {
        id: 2
        theme: "Fantasy"
      }

Mengonfigurasi Endpoint

Anda harus memiliki spesifikasi gRPC API yang menjelaskan platform layanan backend Anda dan persyaratan autentikasi apa pun.

Tentang menetapkan kolom nama spesifikasi gRPC API

Di kolom name pada spesifikasi gRPC API, tentukan nama layanan Endpoint yang digunakan untuk mengakses layanan Cloud Run for Anthos Anda. Nama layanan Endpoint dalam bentuk nama domain:

API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog

Karena nama layanan Endpoint sesuai dengan nama domain, nama tersebut harus mengikuti aturan berikut:

  • Hanya boleh berisi huruf kecil, angka, titik, atau tanda pisah.
  • Tidak boleh diawali dengan tanda hubung.
  • Tidak boleh berisi garis bawah.

Contoh:

grpc-boostore-api.endpoints.ESP_PROJECT_ID.cloud.goog

Membuat spesifikasi gRPC API

Contoh bookstore-grpc berisi file yang perlu Anda salin secara lokal dan konfigurasi.

  1. Buat direktori baru untuk spesifikasi gRPC API, seperti my-anthos-grpc. Kemudian {i>cd<i} ke direktori tersebut.

  2. Clone repo git tempat kode klien gRPC dihosting ke direktori baru Anda:

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
  3. Ubah direktori kerja Anda:

    cd python-docs-samples/endpoints/bookstore-grpc/

    Perhatikan bahwa direktori ini berisi file bookstore.proto. File ini menentukan API layanan Bookstore.

  4. Buat file deskriptor protobuf mandiri dari file .proto layanan Anda:

    1. Buat direktori generated_pb2 di bawah direktori kerja Anda.

    2. Buat file deskripsi, api_descriptor.pb, dengan menggunakan compiler buffering protokol protoc. Jalankan perintah berikut di direktori yang berisi bookstore.proto:

      python3 -m grpc_tools.protoc \
      --include_imports \
      --include_source_info \
      --proto_path=. \
      --descriptor_set_out=api_descriptor.pb \
      --python_out=generated_pb2 \
      --grpc_python_out=generated_pb2 \
      bookstore.proto

    Dalam perintah sebelumnya, --proto_path ditetapkan ke direktori kerja saat ini. Di lingkungan build gRPC, jika Anda menggunakan direktori berbeda untuk file input .proto, ubah --proto_path agar compiler menelusuri direktori tempat Anda menyimpan bookstore.proto.

  5. Ubah file api_config_anthos.yaml di direktori kerja Anda saat ini (direktori yang sama yang berisi bookstore.proto) untuk menambahkan konten berikut ke file:

    type: google.api.Service
    config_version: 3
    #
    # Name of the service configuration.
    #
    name: API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog
    #
    # API title to appear in the user interface (Google Cloud console).
    #
    title: Bookstore gRPC API In Cloud Run Anthors
    apis:
    - name: endpoints.examples.bookstore.Bookstore
    #
    # Create a DNS record to map your service name to IP address
    #
    endpoints:
      - name: API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog
        target: IP_ADDRESS
    #
    # Specify the backend address to route to
    #
    backend:
      rules:
        - selector: "*"
          address: grpc://GRPC_SERVICE.default.svc.cluster.local
          disable_auth: true
    #
    # API usage restrictions.
    #
    usage:
      rules:
      # ListShelves methods can be called without an API Key.
      - selector: endpoints.examples.bookstore.Bookstore.ListShelves
        allow_unregistered_calls: true

    Indentasi penting untuk format yaml.

  6. Di kolom name, tentukan nama domain Endpoints API yang digunakan untuk mengakses layanan Cloud Run for Anthos, dalam bentuk:

    API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog

    Contoh:

    grpc-bookstore-api.endpoints.ESP_PROJECT_ID.cloud.goog

  7. Bagian endpoints mendaftarkan entri DNS untuk layanan Endpoint Anda di domain cloud.goog, dalam bentuk:

    endpoints:
      - name: API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog
        target: IP_ADDRESS

    IP_ADDRESS adalah IP layanan istio-ingress untuk cluster Anda. Untuk menentukan alamat IP ini:

    1. Buka halaman Google Kubernetes Engine di Cloud Console:

      Buka Google Kubernetes Engine

    2. Klik Layanan & Ingress di panel navigasi kiri untuk menampilkan daftar layanan.

    3. Jika versi cluster Anda adalah 1.15.3-gke.19 atau lebih baru, 1.14.3-gke.12 atau lebih baru, atau 1.13.10-gke.8 atau lebih baru, scroll ke bawah ke layanan istio-ingress. Untuk semua versi cluster lainnya, scroll ke bawah ke layanan istio-ingressgateway.

    4. Salin alamat IP eksternal yang ditampilkan di samping Load Balancer, tanpa setelan port, jika ada. Misalnya, jika IP adalah XX.XXX.XX.XXX:15020, hilangkan :15020. Abaikan alamat IP lainnya yang tercantum.

  8. Kolom address di bagian backend menentukan nama DNS internal layanan "grpc-bookstore" Cloud Run dengan skema proto grpc://, dan menonaktifkan autentikasi untuk layanan ini:

    address: grpc://GRPC_SERVICE.default.svc.cluster.local
    disable_auth: true

    Contoh:

    address: grpc://grpc-bookstore.default.svc.cluster.local
    disable_auth: true

    Hal ini diperlukan karena panggilan dari ESPv2 ke layanan Cloud Run for Anthos dilakukan sebagai panggilan internal dari dalam cluster sehingga autentikasi tidak diperlukan.

  9. Perhatikan nilai properti title dalam file api_config_authos.yaml:

    title: Bookstore gRPC API In Cloud Run Anthos

    Nilai properti title menjadi nama layanan Endpoint setelah Anda men-deploy konfigurasi.

  10. Simpan dokumen gRPC API Anda.

Untuk mengetahui informasi tentang kolom dalam dokumen OpenAPI yang diperlukan Endpoint, lihat Mengonfigurasi Endpoint.

Men-deploy konfigurasi Endpoint

Untuk men-deploy konfigurasi Endpoint, gunakan perintah gcloud endpoint services deploy. Perintah ini menggunakan Pengelolaan Layanan untuk membuat layanan terkelola.

Untuk men-deploy konfigurasi Endpoint:

  1. Pastikan Anda berada di direktori yang berisi dokumen gRPC Anda.

  2. Mengupload konfigurasi dan membuat layanan terkelola.

    gcloud endpoints services deploy api_descriptor.pb api_config_anthos.yaml \
      --project ESP_PROJECT_ID

    Tindakan ini akan membuat layanan Endpoint baru dengan nama yang Anda tentukan di kolom name pada file api_config_anthos.yaml. Layanan Endpoint dikonfigurasi sesuai dengan dokumen OpenAPI Anda.

    Saat membuat dan mengonfigurasi layanan Endpoint, Pengelolaan Layanan menghasilkan informasi ke terminal. Saat deployment selesai, pesan yang mirip dengan hal berikut akan ditampilkan:

    Service Configuration [CONFIG_ID] uploaded for service [API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog]

    CONFIG_ID adalah ID konfigurasi layanan Endpoint unik yang dibuat oleh deployment. Contoh:

    Service Configuration [2019-02-01r0] uploaded for service [grpc-bookstore-api.endpoints.ESP_PROJECT_ID.cloud.goog] 

    ID konfigurasi layanan terdiri dari stempel tanggal yang diikuti dengan nomor revisi. Jika Anda men-deploy api_config_anthos.yaml lagi pada hari yang sama, nomor revisi akan bertambah di ID konfigurasi layanan. Anda dapat melihat konfigurasi layanan dan histori deployment di halaman Endpoint > Services di Konsol Google Cloud.

    Jika Anda mendapatkan pesan error, lihat Memecahkan masalah deployment konfigurasi Endpoint.

Memeriksa layanan yang diperlukan

Setidaknya, Endpoint dan ESP mengharuskan layanan Google berikut diaktifkan:
Nama Judul
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API
endpoints.googleapis.com Google Cloud Endpoints

Dalam sebagian besar kasus, perintah gcloud endpoints services deploy akan mengaktifkan layanan wajib ini. Namun, perintah gcloud berhasil diselesaikan tetapi tidak mengaktifkan layanan yang diperlukan dalam situasi berikut:

  • Jika Anda menggunakan aplikasi pihak ketiga seperti Terraform, dan Anda tidak menyertakan layanan ini.

  • Anda telah men-deploy konfigurasi Endpoint ke project Google Cloud yang ada, yang menonaktifkan layanan ini secara eksplisit.

Gunakan perintah berikut untuk mengonfirmasi bahwa layanan yang diperlukan telah diaktifkan:

gcloud services list

Jika Anda tidak melihat layanan yang diperlukan tercantum, aktifkan layanan tersebut:

gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com
gcloud services enable endpoints.googleapis.com

Aktifkan juga layanan Endpoint Anda:

gcloud services enable ENDPOINTS_SERVICE_NAME

Untuk menentukan ENDPOINTS_SERVICE_NAME, Anda dapat:

  • Setelah men-deploy konfigurasi Endpoint, buka halaman Endpoint di Cloud Console. Daftar kemungkinan ENDPOINTS_SERVICE_NAME ditampilkan di bawah kolom Service name.

  • Untuk OpenAPI, ENDPOINTS_SERVICE_NAME adalah yang Anda tentukan dalam kolom host pada spesifikasi OpenAPI. Untuk gRPC, ENDPOINTS_SERVICE_NAME adalah yang Anda tentukan di kolom name pada konfigurasi Endpoint gRPC Anda.

Untuk mengetahui informasi selengkapnya tentang perintah gcloud, lihat layanan gcloud.

Membangun image ESPv2 Cloud Run for Anthos yang baru

Build konfigurasi layanan Endpoint menjadi image docker ESPv2 baru. Setelah membuat image ini, Anda dapat men-deploy image tersebut ke cluster.

Untuk mem-build konfigurasi layanan ke dalam image docker ESPv2 baru:

  1. Download skrip ini ke mesin lokal tempat gcloud CLI diinstal, lalu jalankan sebagai:

    chmod +x gcloud_build_image
    ./gcloud_build_image -s API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog \
    -c CONFIG_ID -p ESP_PROJECT_ID

    Skrip ini menggunakan perintah gcloud untuk mendownload konfigurasi layanan, mem-build konfigurasi layanan ke image ESPv2 yang baru, dan mengupload image baru ke container registry project Anda. Skrip secara otomatis menggunakan rilis terbaru ESPv2, yang dilambangkan dengan ESP_VERSION dalam nama image output. Gambar output diupload ke:

    gcr.io/ESP_PROJECT_ID/endpoints-runtime-serverless:ESP_VERSION-API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog-CONFIG_ID

Men-deploy image ESPv2 Cloud Run for Anthos

Deploy image layanan ESPv2 Cloud Run for Anthos ke cluster Anda:

  1. Deploy layanan ESPv2 Cloud Run for Anthos dengan image baru:

    gcloud run deploy ESP_V2_SERVICE_NAME \
      --image="gcr.io/ESP_PROJECT_ID/endpoints-runtime-serverless:API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog-CONFIG_ID" \
      --platform gke \
      --use-http2 \
      --project=ESP_PROJECT_ID

    Untuk ESP_PROJECT_ID, tentukan nama yang ingin digunakan untuk layanan ESPv2. Dalam contoh ini, tetapkan ESP_V2_SERVICE_NAME ke espv2.

  2. Jika ingin mengonfigurasi Endpoint untuk menggunakan opsi startup ESPv2 tambahan, seperti mengaktifkan CORS, Anda dapat meneruskan argumen dalam variabel lingkungan ESPv2_ARGS:

    gcloud run deploy ESP_V2_SERVICE_NAME \
      --image="gcr.io/ESP_PROJECT_ID/endpoints-runtime-serverless:API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog-CONFIG_ID" \
      --set-env-vars=ESPv2_ARGS=--cors_preset=basic \
      --platform gke --use-http2 \
      --project ESP_PROJECT_ID

    Untuk mengetahui informasi dan contoh selengkapnya tentang cara menetapkan variabel lingkungan ESPv2_ARGS, termasuk daftar opsi yang tersedia dan informasi tentang cara menentukan beberapa opsi, lihat tanda Extensible Service Proxy V2.

Membuat pemetaan domain ke layanan ESPv2 Cloud Run for Anthos

Agar dapat menghilangkan header host saat Anda membuat permintaan, tambahkan pemetaan domain untuk layanan ESPv2:

  1. Buka Cloud Run

  2. Pilih Kelola Domain Kustom.

  3. Pilih Tambahkan Pemetaan.

  4. Dari menu dropdown, pilih Tambahkan pemetaan domain layanan.

  5. Di kolom Select a service to map to pada pop-up Add mapping, pilih layanan ESPv2 Anda.

  6. Di kolom Enter domain name, tentukan nama domain yang ingin digunakan untuk mengakses layanan Cloud Run for Anthos melalui Endpoint. Misalnya, tentukan:

    API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog

    Dengan API_NAME adalah nama Endpoints API Anda. Untuk contoh ini, Anda dapat menggunakan "hello-api":

    grpc-bookstore-api.endpoints.ESP_PROJECT_ID.cloud.goog

  7. Klik Lanjutkan. Ringkasan pemetaan akan muncul.

  8. Pilih Selesai untuk menyimpan pemetaan.

Mengirim permintaan ke API

Untuk mengirim permintaan ke API contoh, Anda dapat menggunakan klien gRPC contoh yang ditulis dalam Python.

  1. Pastikan Anda berada di direktori yang berisi dokumen gRPC, seperti api_config_anthos.yaml.

  2. Instal dependensi:

    pip3 install virtualenv
    virtualenv env
    source env/bin/activate
    pip3 install -r requirements.txt
  3. Kirim permintaan ke API contoh:

    python3 bookstore_client.py --host API_NAME.endpoints.ESP_PROJECT_ID.cloud.goog --port 80

    Contoh:

    python3 bookstore_client.py --host grpc-bookstore-api.endpoints.ESP_PROJECT_ID.cloud.goog --port 80

    Jika semuanya berfungsi dengan benar, Anda akan melihat respons dalam formulir:

    ListShelves: shelves {
      id: 1
      theme: "Fiction"
    }
    shelves {
      id: 2
      theme: "Fantasy"
    }

Jika tidak mendapatkan respons yang berhasil, lihat Memecahkan masalah error respons.

Anda baru saja men-deploy dan menguji API di Endpoint.

Mengonfigurasi Endpoints API untuk menggunakan HTTPS

Dukungan TLS otomatis dinonaktifkan secara default untuk Cloud Run for Anthos di Google Cloud. Oleh karena itu, dalam contoh ini saat mengakses Endpoints API melalui ESPv2, Anda melakukan panggilan menggunakan HTTP.

Anda dapat mengonfigurasi ESPv2 untuk mendukung permintaan menggunakan HTTPS. Perlu diketahui bahwa Anda mengonfigurasi dukungan HTTPS di ESPv2, yaitu layanan eksternal, bukan di layanan backend internal "halo".

Untuk mendukung HTTPS dengan ESPv2, Anda harus:

  1. Memiliki domain. Jika tidak memiliki domain, Anda bisa mendapatkannya dari Google atau dari vendor domain lain.

  2. Buat pemetaan domain untuk layanan ESPv2 dan perbarui data DNS Anda sesuai dengan petunjuk di halaman pemetaan domain.

    Jika Anda memperoleh domain dari Google Domains, gunakan domain tersebut sebagai server DNS Anda. Jika tidak, gunakan Cloud DNS atau server DNS pilihan Anda. Menggunakan domain dari Google Domains adalah opsi termudah.

  3. Di spesifikasi OpenAPI Endpoints:

    1. Tetapkan kolom name untuk merujuk ke domain Anda, bukan ke *.cloud.goog.

    2. Hapus tag endpoints dan dua properti turunannya.

Untuk mengetahui petunjuk dan tutorial selengkapnya, baca artikel Mengaktifkan sertifikat HTTPS dan otomatis TLS.

Melacak aktivitas API

  1. Lihat grafik aktivitas untuk API Anda di halaman Endpoint > Layanan di Google Cloud Console.

    Melihat grafik aktivitas Endpoint

    Mungkin perlu waktu beberapa saat agar permintaan terlihat dalam grafik.

  2. Lihat log permintaan untuk API Anda di halaman Logs Explorer.

    Melihat log permintaan Endpoint

Membuat portal developer untuk API

Anda dapat menggunakan Portal Cloud Endpoints untuk membuat portal developer, yaitu situs yang dapat digunakan untuk berinteraksi dengan contoh API. Untuk mempelajari lebih lanjut, lihat Ringkasan Portal Cloud Endpoints.

Pembersihan

Agar akun Google Cloud Anda tidak dikenakan biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

Lihat Menghapus instance API dan API untuk mengetahui informasi tentang cara menghentikan layanan yang digunakan oleh tutorial ini.

Langkah selanjutnya