기본 요건
- 시작하기 전에 빠른 시작에서 필요한 모든 단계를 완료하세요.
- API를 배포합니다.
개요
사용된 설치 방법과 관계없이 동일한 메서드를 사용하여 API를 쿼리할 수 있습니다. API를 쿼리하는 방법은 공개 엔드포인트가 구성되었는지 여부에 따라 달라집니다. 엔드포인트가 공개되지 않은 경우 API를 직접 노출하는 방법을 결정해야 합니다. 클러스터에서 지원하는 경우 인그레스 만들기, 생성된 서비스 게시, 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 인그레스 게이트웨이가 공개 IP로 실행 중인지 확인합니다. Istio를 설치하지 않은 경우 $PUBLIC_IP
값을 설정할 수 있습니다. 이 작업이 완료되면 텍스트 변환 쿼리를 공개 엔드포인트에 제출할 수 있습니다.
Istio를 설치한 경우 안내에 따라 인그레스 공개 IP를 가져와
PUBLIC_IP
로 설정합니다.Istio를 설치하지 않은 경우 IP 주소가 결합되었는지 확인합니다. 아래의
EXTERNAL-IP
아래에 표시됩니다. 몇 분 후에도 표시되지 않으면 Console의 클러스터로 이동하여 문제를 해결하세요.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에 텍스트 변환 요청 보내는 방법 알아보기