トラブルシューティング

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 エラーには、messagecodestatusdetails の各フィールドが含まれます。 details フィールド内には、追加の google.rpc.ErrorInfo データが reasondomainmetadata フィールドに表示されます。次のサンプルは、Translation API を有効にする前に Cloud プロジェクトで Translation ライブラリを呼び出した場合に表示されるエラーを示しています。

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 APIs のエラーをご覧ください。