Cube.js 后端错误继续等待问题
Error Continue wait issue on Cube.js backend
我在连接到 AWS 无服务器上的 cube.js 后端并在前端仪表板中执行 /cubejs-api/v1/load 请求时遇到了一些问题。我不断收到 {"error":"Continue wait"}
而不是返回的结果。
我正在按照 react-dashboard 指南进行身份验证,但使用后端 cube.js 无服务器 AWS 模板进行部署。
这是我的主要 cube.js 文件的样子。:
const AWSHandlers = require('@cubejs-backend/serverless-aws');
const PostgresDriver = require('@cubejs-backend/postgres-driver');
const fs = require("fs");
const jwt = require("jsonwebtoken");
const jwkToPem = require("jwk-to-pem");
const jwks = JSON.parse(fs.readFileSync("jwks.json"));
const _ = require("lodash");
module.exports = new AWSHandlers({
checkAuth: async (req, auth) => {
const decoded = jwt.decode(auth, { complete: true });
const jwk = _.find(jwks.keys, x => x.kid === decoded.header.kid);
const pem = jwkToPem(jwk);
req.authInfo = jwt.verify(auth, pem);
},
externalDbType: 'postgres',
externalDriverFactory: () => new PostgresDriver({
host: process.env.CUBEJS_EXT_DB_HOST,
database: process.env.CUBEJS_EXT_DB_NAME,
port: process.env.CUBEJS_EXT_DB_PORT,
user: process.env.CUBEJS_EXT_DB_USER,
password: process.env.CUBEJS_EXT_DB_PASS,
})
});
我最初没有正确设置 redis URL 并在 serverless.yml 文件 url 之前添加 redis:// 扩展后修复了与 redis 的连接以修复所以我知道这不是 redis 连接问题。我假设还有其他问题。
cubejs进程函数完全没有日志。我已经根据部署站点上的指南设置了一个 NAT 网关和子网,这样我每个区域都有 1 个子网,仅用于 lambda,并且它们已添加到创建的新 NAT 网关和 2 个函数中,因此它们具有互联网接入。
可能是什么问题?是我配置有误还是我需要更改某些内容?
@cubejs-backend/serverless 使用互联网连接访问消息传递 API 以及 VPC 内的 Redis 来管理队列和缓存。
此类连续的 Continue wait
消息通常意味着 internet connection or with Redis connection 存在问题。如果是 Redis,您通常会在 cubejs
和 cubejsProcess
函数中看到 5 分钟左右的超时。如果是互联网连接,您将永远不会在 cubejsProcess
函数中看到任何查询处理日志。
我在连接到 AWS 无服务器上的 cube.js 后端并在前端仪表板中执行 /cubejs-api/v1/load 请求时遇到了一些问题。我不断收到 {"error":"Continue wait"}
而不是返回的结果。
我正在按照 react-dashboard 指南进行身份验证,但使用后端 cube.js 无服务器 AWS 模板进行部署。
这是我的主要 cube.js 文件的样子。:
const AWSHandlers = require('@cubejs-backend/serverless-aws');
const PostgresDriver = require('@cubejs-backend/postgres-driver');
const fs = require("fs");
const jwt = require("jsonwebtoken");
const jwkToPem = require("jwk-to-pem");
const jwks = JSON.parse(fs.readFileSync("jwks.json"));
const _ = require("lodash");
module.exports = new AWSHandlers({
checkAuth: async (req, auth) => {
const decoded = jwt.decode(auth, { complete: true });
const jwk = _.find(jwks.keys, x => x.kid === decoded.header.kid);
const pem = jwkToPem(jwk);
req.authInfo = jwt.verify(auth, pem);
},
externalDbType: 'postgres',
externalDriverFactory: () => new PostgresDriver({
host: process.env.CUBEJS_EXT_DB_HOST,
database: process.env.CUBEJS_EXT_DB_NAME,
port: process.env.CUBEJS_EXT_DB_PORT,
user: process.env.CUBEJS_EXT_DB_USER,
password: process.env.CUBEJS_EXT_DB_PASS,
})
});
我最初没有正确设置 redis URL 并在 serverless.yml 文件 url 之前添加 redis:// 扩展后修复了与 redis 的连接以修复所以我知道这不是 redis 连接问题。我假设还有其他问题。
cubejs进程函数完全没有日志。我已经根据部署站点上的指南设置了一个 NAT 网关和子网,这样我每个区域都有 1 个子网,仅用于 lambda,并且它们已添加到创建的新 NAT 网关和 2 个函数中,因此它们具有互联网接入。
可能是什么问题?是我配置有误还是我需要更改某些内容?
@cubejs-backend/serverless 使用互联网连接访问消息传递 API 以及 VPC 内的 Redis 来管理队列和缓存。
此类连续的 Continue wait
消息通常意味着 internet connection or with Redis connection 存在问题。如果是 Redis,您通常会在 cubejs
和 cubejsProcess
函数中看到 5 分钟左右的超时。如果是互联网连接,您将永远不会在 cubejsProcess
函数中看到任何查询处理日志。