Dépannage

Suivi des problèmes liés à GRPC

Avant de commencer

Veillez à initialiser et activer les autorisations d'écriture avant d'écrire dans votre fichier journal. Dans l'exemple suivant, le fichier journal est nommé /var/log/grpc.log:

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

Si vous rencontrez des problèmes d'autorisations de fichiers, vous devrez peut-être faire précéder les commandes précédentes avec sudo.

Enregistrement dans un fichier

Pour enregistrer des journaux gRPC dans un fichier, ajoutez les lignes suivantes à votre fichier php.ini:

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

Pour écrire des journaux dans stderr, excluez la dernière ligne de l'exemple précédent. Pour en savoir plus sur les autres options, consultez la section Variables d'environnement gRPC.

Détails de l'erreur

Les services Google Cloud suivent les consignes AIP-193 lors du renvoi d'erreurs. Les services Google Cloud utilisent un ensemble défini de charges utiles d'erreur standard, que vous pouvez trouver dans google.rpc.error_details.proto. Celles-ci couvrent les erreurs d'API les plus courantes, telles que les échecs de quota et les paramètres non valides.

Les erreurs d'API émises par les bibliothèques clientes PHP contiennent les champs message, code, status et details. Dans le champ details, des données google.rpc.ErrorInfo supplémentaires apparaissent dans les champs reason, domain et metadata. L'exemple suivant montre une erreur qui peut apparaître si vous avez appelé la bibliothèque Translation avec un projet cloud avant d'activer 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"
                }
            ]
        }
    ]
}

Pour en savoir plus sur le modèle d'erreur général des API Google, consultez la page Erreurs des API Cloud.