使用无服务器框架部署cube.js会导致错误

我试图在AWS上使用无服务器框架部署cube.js项目,当我访问无服务器产生的端点时,在浏览器上导致以下错误

  

无法获取/

这是我的serverless.yml文件

service: cloud-analytics

provider:
  name: aws
  stage: production
  runtime: nodejs8.10
  iamRoleStatements:
    - Effect: "Allow"
      action:
        - "sns:*"    
        - "athena:*"
        - "s3:*"
        - "glue:*"
      Resource:
        - "*"
  vpc:
    securityGroupIds:
      - sg-xxxxxxxxx # Your DB and Redis security groups here
    subnetIds:
      - subnet-xxxxxxxxx
  environment:
    CUBEJS_AWS_KEY: ${opt:awsKey}
    CUBEJS_AWS_SECRET: ${opt:awsSecret}
    CUBEJS_AWS_REGION: us-east-1
    CUBEJS_AWS_S3_OUTPUT_LOCATION: ${opt:location}
    REDIS_URL: ${opt:redis_url_with_port}
    CUBEJS_DB_TYPE: athena
    CUBEJS_API_SECRET:XXXXXX
    CUBEJS_APP: "${self:service.name}-${self:provider.stage}"
    NODE_ENV: ${self:provider.stage}
    AWS_accOUNT_ID:
      Fn::Join:
        - ""
        - - Ref: "AWS::accountId"

functions:
  cubejs:
    handler: cube.api
    timeout: 30
    events:
      - http:
          path: /
          method: GET
      - http:
          path: /{proxy+}
          method: ANY
  cubejsProcess:
    handler: cube.process
    timeout: 630
    events:
      - sns: "${self:service.name}-${self:provider.stage}-process"

plugins:
  - serverless-express

我已按照此博客中的步骤进行操作,以设置NAT https://medium.com/@philippholly/aws-lambda-enable-outgoing-internet-access-within-vpc-8dd250e11e12

Cube.js文件如下,其中包含服务器核心选项

const AWSHandlers = require('@cubejs-backend/serverless-aws');
const AthenaDriver = require('@cubejs-backend/athena-driver');

module.exports = new AWSHandlers({
  externalDbType: 'athena',externalDriverFactory: () => new AthenaDriver({
      accessKeyId: process.env.CUBEJS_AWS_KEY,secretaccessKey: process.env.CUBEJS_AWS_SECRET,region: process.env.CUBEJS_AWS_REGION,S3OutputLocation: process.env.CUBEJS_AWS_S3_OUTPUT_LOCATION
  })
});

运行端点

  

https://xxxxx.execute-api.us-east-1.amazonaws.com/production/

由无服务器api网关生成,我得到错误

  

无法获取/

在Cloudwatch上,我看到正在调用cubejs lambda,并查看了有关开始和结束请求ID的日志。我没有在cubejsProcess lambda上看到任何日志。

在哪里/如何调试它以查看问题所在?

pingguwenjun 回答:使用无服务器框架部署cube.js会导致错误

在生产模式下,默认情况下,Cube.js禁用开发服务器功能,这就是为什么您看不到/路径:https://cube.dev/docs/deployment#production-mode上有任何Playground运行的原因。请使用REST API测试您的部署:https://cube.dev/docs/rest-api

本文链接:https://www.f2er.com/3157924.html

大家都在问