Tracciamento dei problemi GRPC
Prima di iniziare
Assicurati di inizializzare e attivare le autorizzazioni di scrittura prima di scrivere nel file di log. Nell'esempio seguente, il file di log è denominato /var/log/grpc.log:
touch /var/log/grpc.logchmod 666 /var/log/grpc.log
Se riscontri problemi con le autorizzazioni dei file, potresti dover anteporre
sudo ai comandi precedenti.
Registrazione in un file
Per salvare i log gRPC in un file, aggiungi le seguenti righe al file php.ini:
grpc.grpc_verbosity=debug
grpc.grpc_trace=all,-timer_check
grpc.log_filename=/var/log/grpc.log
Per scrivere i log in stderr, escludi l'ultima riga dall'esempio precedente. Per saperne di più su altre opzioni, consulta le
variabili di ambiente gRPC.
Dettagli errore
I servizi Google Cloud seguono le linee guida AIP-193 quando restituiscono errori. I servizi Google Cloud utilizzano un insieme definito di payload di errore standard, che puoi trovare in google.rpc.error_details.proto. Questi coprono gli errori API più comuni, come l'esaurimento della quota e i parametri non validi.
Gli errori API generati dalle librerie client PHP contengono i campi message, code, status e details.
All'interno del campo details, i dati google.rpc.ErrorInfo aggiuntivi vengono visualizzati nei campi reason, domain e metadata.
Il seguente esempio mostra un errore che potrebbe essere visualizzato se hai chiamato la libreria Translation con un progetto cloud prima di abilitare l'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"
}
]
}
]
}Per saperne di più sul modello di errore generale per le API di Google, consulta Errori delle API Cloud.