Webhookを受け取り、BigQueryへのストリーミング挿入を行うシンプルなクラウド機能があります。コードは(私はストリーミングのインサートを使用していますことを除いて)このsampleクラウド機能の断続的な認証エラー
exports.webHook = function webHook (req, res) {
return Promise.resolve()
.then(() => {
if (req.method !== 'POST') {
const error = new Error('Only POST requests are accepted');
error.code = 405;
throw error;
}
const events = req.body || {};
if (events) {
const opts = { ignoreUnknownValues: true };
bigquery
.dataset('config.DATASET')
.table('config.TABLE')
.insert(events, opts)
.then((data) => {
console.log(`Success: ${JSON.stringify(data[0])}`);
})
.catch((error) => {
if (error.name === 'PartialFailureError') {
console.error(`PARTIAL ERROR: ${JSON.stringify(error)}`);
} else {
console.error(`OTHER ERROR: ${JSON.stringify(error)}`);
}
});
};
})
.then(() => res.status(200).end())
.catch((err) => {
console.error(err);
res.status(err.code || 500).send(err);
return Promise.reject(err);
});
};
に基づいています。この機能は十分にほとんどの時間を動作しますが、私はそれから消える時折認証エラーを得ますか。
textPayload: "OTHER ERROR: {"code":401,"errors":[{"message":"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project .","domain":"global","reason":"unauthorized"}],"message":"Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project ."}"
私は、クラウド機能とBigQueryのは、すべて同じプロジェクトであるため、認証が問題になる可能性がどのように確認していません。
を(https://cloud.google.com/support/docs/問題追跡者)。 – Kenworth
このエラーはどのくらいの頻度で発生しますか?あなたのトークンが期限切れになっている可能性があります。 – Sonya
@Sonya - 問題は無作為に起こってしまい、私はそれを特定のものに指摘できませんでした。 BigQueryのようなクラウド機能などのサービスはすべて1つのGCPプロジェクト内で実行されるため、authが処理されるはずです。 –