דרישות מוקדמות
- צריך להשלים את כל השלבים הנדרשים במדריך להתחלה מהירה לפני שמתחילים.
- פורסים את ה-API.
סקירה כללית
אפשר לשלוח שאילתות ל-API באמצעות אותן שיטות, בלי קשר לשיטת ההתקנה שבה השתמשתם. האופן שבו שולחים שאילתה ל-API תלוי בהגדרת נקודת קצה ציבורית. אם נקודת הקצה לא ציבורית, תצטרכו לקבוע בעצמכם איך לחשוף את ה-API. יש הרבה אפשרויות לעשות את זה, כולל יצירת Ingress אם האשכול תומך בכך, פרסום השירות שנוצר, הפעלת Istio וכן הלאה.
השלבים שמפורטים בהמשך מסבירים איך לשלוח שאילתה לנקודת קצה. יש שתי שיטות:
- שליחת שאילתה לנקודת הקצה מתוך האשכול (לא נדרשת כתובת IP ציבורית).
- הפעלת שאילתה על כתובת IP ציבורית.
שאילתה של שם ה-DNS הפנימי (לא נדרשת כתובת IP ציבורית)
בדוגמה הזו מריצים שאילתה מתוך האשכול באמצעות שם שירות של שירות שמות הדומיין (DNS) שהוקצה לשירות: $NAME.$NAMESPACE, כמו speech.speech.. אפשר להגדיר את משתני הסביבה או להחליף אותם בערך בפועל בפקודות.
יוצרים משימה חדשה באשכול כדי לשלוח שאילתה ל-API. אם המשימה הזו כבר קיימת באשכול, צריך להסיר אותה קודם.
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 -כדי לראות את התמליל, צריך לבדוק את היומנים:
kubectl logs -n $NAMESPACE --follow $(kubectl get po -n $NAMESPACE -l app=query -o=jsonpath='{.items[0].metadata.name}') -c entrypoint
שאילתה לגבי כתובת IP ציבורית
אם התקנתם את Istio באשכול, ודאו ש-Istio Ingress Gateway פועל עם כתובת IP ציבורית. אם לא התקנתם את Istio, אתם יכולים להגדיר את הערך של $PUBLIC_IP. אחרי שתשלימו את השלב הזה, תוכלו לשלוח שאילתות תמלול לנקודת קצה ציבורית.
אם Istio מותקן, פועלים לפי ההוראות כדי לקבל את כתובת ה-IP הציבורית של Ingress ולהגדיר אותה ל-
PUBLIC_IP.אם לא התקנתם את Istio, צריך לוודא שכתובת ה-IP שויכה. היא אמורה להופיע מתחת ל-
EXTERNAL-IPשבהמשך. אם הוא לא מופיע אחרי כמה דקות, אפשר לעבור אל האשכול במסוף כדי לפתור את הבעיה.kubectl get service $NAME --namespace $NAMESPACEמעתיקים את הקובץ הבינארי
onprem_clientמתמונת ה-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משתמשים בקובץ הבינארי
onprem_clientכדי לשלוח שאילתה:./onprem_client --address ${PUBLIC_IP}:443 --file_paths /path/to/audio.wav
המאמרים הבאים
כך שולחים בקשת תמלול ל-Speech-to-Text On-Prem API.