문제 해결

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 오류를 참조하세요.