Solução de problemas

Como rastrear problemas de GRPC

Antes de começar

Inicialize e ative as permissões de gravação antes de gravar no arquivo de registro. No exemplo abaixo, o arquivo de registro é chamado de /var/log/grpc.log:

touch /var/log/grpc.log
chmod 666 /var/log/grpc.log

Se você encontrar problemas de permissões de arquivo, talvez seja necessário usar sudo antes dos comandos anteriores.

Como gerar registros em um arquivo

Para salvar os registros gRPC em um arquivo, adicione as seguintes linhas ao seu arquivo php.ini:

grpc.grpc_verbosity=debug
grpc.grpc_trace=all,-timer_check
grpc.log_filename=/var/log/grpc.log

Para gravar registros em stderr, exclua a última linha do exemplo anterior. Para mais informações sobre outras opções, consulte Variáveis de ambiente gRPC.

Detalhes do erro

Os serviços do Google Cloud seguem as diretrizes AIP-193 ao retornar erros. Os serviços do Google Cloud usam um conjunto definido de payloads de erro padrão, que você pode encontrar em google.rpc.error_details.proto. Eles abrangem os erros mais comuns da API, como falha de cota e parâmetros inválidos.

Os erros de API emitidos por bibliotecas de cliente PHP contêm os campos message, code, status e details. No campo details, outros dados google.rpc.ErrorInfo aparecem nos campos reason, domain e metadata. O exemplo a seguir mostra um erro que pode aparecer se você chamou a biblioteca Translation com um projeto na nuvem antes de ativar a API Translate:

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"
                }
            ]
        }
    ]
}

Para mais informações sobre o modelo geral de erros das APIs do Google, consulte Erros da API Cloud.