前提条件
- クイックスタート: 始める前にの手順をすべて完了します。
- API をデプロイします。
概要
使用したインストール方法に関係なく、同じメソッドを使用して API に対してクエリを実行できます。API のクエリを実行する方法は、パブリック エンドポイントを構成しているかどうかによって異なります。エンドポイントが公開されていない場合は、API の公開方法を自身で決める必要があります。たとえば、Ingress を作成する(クラスタがサポートしている場合)、作成したサービスを公開する、Istio を実行するなど、複数の方法があります。
以下に、エンドポイントをクエリする手順を簡単に説明します。次の 2 つの方法があります。
- クラスタ内からエンドポイントをクエリする(パブリック IP は不要)。
- パブリック IP をクエリする。
内部 DNS 名をクエリする(パブリック IP は不要)
この例では、$NAME.$NAMESPACE
サービスに割り当てられたドメイン ネーム サービス(DNS)名(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 をインストールした場合は、パブリック IP で Istio Ingress Gateway が実行されていることを確認します。Istio をインストールしていない場合は、$PUBLIC_IP
の値を設定できます。この処理が完了すると、音声文字変換クエリをパブリック エンドポイントに送信できます。
Istio がインストールされている場合は、この手順に沿って Ingress のパブリック IP を取得し、
PUBLIC_IP
に設定します。Istio がインストールされていない場合は、IP アドレスがバインドされていることを確認します。これは、
EXTERNAL-IP
の下に表示されます。数分経っても表示されない場合は、コンソールでクラスタに移動して、トラブルシューティングを行ってください。kubectl get service $NAME --namespace $NAMESPACE
Docker イメージから
onprem_client
バイナリをコピーします。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 に音声文字変換リクエストを送信する方法を学ぶ。