GRPC 문제 추적
시작하기 전에
로그 파일에 기록하기 전 쓰기 권한을 초기화하고 사용 설정해야 합니다. 다음 예시에서 로그 파일은 이름이 /var/log/grpc.log
입니다.
touch /var/log/grpc.log
chmod 666 /var/log/grpc.log
파일 권한 문제가 발생하면 이전 명령 앞에 sudo
를 사용해야 할 수 있습니다.
파일에 로깅
gRPC 로그를 파일에 저장하려면 다음 줄을 php.ini
파일에 추가합니다.
grpc.grpc_verbosity=debug
grpc.grpc_trace=all,-timer_check
grpc.log_filename=/var/log/grpc.log
대신 stderr
에 로그를 기록하려면 이전 예시에서 마지막 줄을 제외합니다. 다른 옵션에 대한 자세한 내용은 gRPC 환경 변수를 참조하세요.
오류 세부정보
Google Cloud 서비스는 오류를 반환할 때 AIP-193 지침을 따릅니다. Google Cloud 서비스는 google.rpc.error_details.proto에서 찾을 수 있는 정의된 표준 오류 페이로드 집합을 사용합니다. 여기에는 할당량 오류 및 잘못된 매개변수와 같은 가장 공통적인 API 오류가 포함됩니다.
PHP 클라이언트 라이브러리에서 발생하는 API 오류에는 message
, code
, status
, details
필드가 포함됩니다.
details
필드 내에서 추가 google.rpc.ErrorInfo
데이터가 reason
, domain
, metadata
필드에 표시됩니다.
다음 샘플은 번역 API를 사용 설정하기 전 클라우드 프로젝트로 번역 라이브러리를 호출한 경우 표시될 수 있는 오류를 보여줍니다.
Google\ApiCore\ApiException: { "reason": "SERVICE_DISABLED", "domain": "googleapis.com", "errorInfoMetadata": { "consumer": "projects\PROJECT_ID", "service": "translate.googleapis.com" }, "message": "Cloud Translation API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting https:\/\/console.developers.google.com\/apis\/api\/translate.googleapis.com\/overview?project=PROJECT_ID then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.", "code": 7, "status": "PERMISSION_DENIED", "details": [ { "@type": "google.rpc.errorinfo-bin", "reason": "SERVICE_DISABLED", "domain": "googleapis.com", "metadata": { "consumer": "projects\PROJECT_ID", "service": "translate.googleapis.com" } }, { "@type": "google.rpc.help-bin", "links": [ { "description": "Google developers console API activation", "url": "https:\/\/console.developers.google.com\/apis\/api\/translate.googleapis.com\/overview?project=PROJECT_ID" } ] } ] }
Google API의 일반 오류 모델에 대한 자세한 내용은 Cloud API 오류를 참조하세요.