Solución de problemas

Cómo hacer un seguimiento de los problemas de GRPC

Antes de comenzar

Asegúrate de inicializar y habilitar los permisos de escritura antes de escribir en tu archivo de registro. En el siguiente ejemplo, el archivo de registro se llama /var/log/grpc.log:

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

Si tienes problemas con los permisos de archivos, es posible que debas anteponer sudo a los comandos anteriores.

Cómo registrar datos en un archivo

Para guardar los registros de gRPC en un archivo, agrega las siguientes líneas a tu archivo php.ini:

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

Para escribir registros en stderr, excluye la última línea del ejemplo anterior. Para obtener más información sobre otras opciones, consulta Variables de entorno de gRPC.

Detalles del error

Los servicios de Google Cloud siguen los lineamientos de AIP-193 cuando muestran errores. Los servicios de Google Cloud usan un conjunto definido de cargas útiles de error estándar, que puedes encontrar en google.rpc.error_details.proto. Estas incluyen los errores de API más comunes, como las fallas de cuota y los parámetros no válidos.

Los errores de la API que emiten las bibliotecas cliente de PHP contienen los campos message, code, status y details. Dentro del campo details, aparecen datos adicionales de google.rpc.ErrorInfo en los campos reason, domain y metadata. En el siguiente ejemplo, se muestra un error que podría aparecer si llamaste a la biblioteca de Translation con un proyecto de Cloud antes de habilitar la API de 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 obtener más información sobre el modelo de error general de las APIs de Google, consulta Errores de la API de Cloud.