Panduan memulai: Membuat kueri API

Prasyarat

  1. Selesaikan semua langkah yang diperlukan di panduan memulai sebelum memulai.
  2. Men-deploy API.

Ringkasan

Anda dapat membuat kueri API menggunakan metode yang sama, terlepas dari metode penginstalan yang Anda gunakan. Cara Anda membuat kueri API bergantung pada apakah Anda telah mengonfigurasi endpoint publik atau belum. Jika endpoint Anda tidak bersifat publik, Anda harus menentukan cara mengekspos API sendiri. Ada banyak opsi untuk melakukannya, termasuk membuat Ingress jika cluster Anda mendukungnya, menayangkan layanan yang dibuat, menjalankan Istio, dan sebagainya.

Langkah-langkah yang diuraikan di bawah ini akan memandu Anda membuat kueri endpoint. Ada dua metode: .

  1. Buat kueri endpoint dari dalam cluster Anda (tidak ada IP publik yang diperlukan).
  2. Membuat kueri IP publik.

Mengkueri nama DNS internal (tidak ada IP publik yang diperlukan)

Contoh ini menjalankan kueri dari dalam cluster menggunakan nama Domain Name Service (DNS) yang ditetapkan ke layanan: $NAME.$NAMESPACE, seperti speech.speech. Anda dapat menetapkan variabel lingkungan atau menggantinya dengan nilai aktual dalam perintah.

  1. Buat tugas baru dalam cluster untuk membuat kueri API. Jika tugas ini sudah ada di cluster, Anda harus menghapusnya terlebih dahulu.

    kubectl delete jobs.batch -n $NAMESPACE query-api
    
    echo "apiVersion: batch/v1
    kind: Job
    metadata:
      name: query-api
      namespace: $NAMESPACE
    spec:
      template:
        metadata:
          annotations:
            sidecar.istio.io/inject: 'false'
          labels:
            app: query
        spec:
          containers:
          - name: entrypoint
            image: gcr.io/cloud-marketplace/speech-onprem/speech-to-text-on-prem:$VERSION
            command: ["/bin/sh", "-c"]
            args:
            - curl https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/speech/snippets/resources/commercial_mono.wav --output /tmp/audio.wav;
              /bin/onprem_client --address=$NAME.$NAMESPACE:443 --file_paths /tmp/audio.wav
          restartPolicy: Never
    " | kubectl apply -f -
    
  2. Periksa log untuk melihat transkripnya:

    kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l
    app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
    

Membuat kueri IP publik

Jika Anda menginstal Istio di cluster Anda, pastikan Anda memiliki Istio Ingress Gateway yang berjalan dengan IP publik. Jika belum menginstal Istio, Anda dapat menetapkan nilai untuk $PUBLIC_IP. Setelah selesai, Anda dapat mengirimkan kueri transkripsi ke endpoint publik.

  1. Jika Anda telah menginstal Istio, ikuti instructions untuk mendapatkan IP publik Ingress dan menyetelnya ke PUBLIC_IP.

  2. Jika Anda belum menginstal Istio, validasi bahwa alamat IP terikat. IP tersebut akan muncul di bagian EXTERNAL-IP di bawah. Jika tidak muncul setelah beberapa menit, buka cluster di konsol untuk pemecahan masalah.

    kubectl get service $NAME --namespace $NAMESPACE
    
    1. Salin biner onprem_client dari image docker:

      kubectl cp -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l
      app.kubernetes.io/name=$NAME -o=jsonpath='{.items[0].metadata.name}'
      ):/bin/onprem_client ./onprem_client
      
      kubectl cp -n $NAMESPACE $(kubectl get pod -n $NAMESPACE -l
      app.kubernetes.io/name=$NAME -o=jsonpath='{.items[0].metadata.name}'
      ):/usr/grte.tar ./grte.tar
      
      sudo tar -xvf grte.tar -C /
      
      chmod a+x ./onprem_client
      
    2. Gunakan biner onprem_client untuk mengirimkan kueri:

      ./onprem_client --address ${PUBLIC_IP}:443
      --file_paths /path/to/audio.wav
      

Langkah selanjutnya

Pelajari cara mengirim permintaan transkripsi ke Speech-to-Text On-Prem API.