Google App Engine上的元数据库

dig*_*loe 7 metabase google-cloud-sql google-cloud-platform

我正在尝试使用Google Cloud SQL(MySQL)在gcloud引擎上设置Metabase.

我已经使用这个 git和这个app.yaml 运行它:

runtime: custom
env: flex

# Metabase does not support horizontal scaling
#   https://github.com/metabase/metabase/issues/2754
#   https://cloud.google.com/appengine/docs/flexible/java/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1

env_variables:
 # MB_JETTY_PORT: 8080
  MB_DB_TYPE: mysql
  MB_DB_DBNAME: [db_name]
 # MB_DB_PORT: 5432
  MB_DB_USER: [db_user]
  MB_DB_PASS: [db_password]
 # MB_DB_HOST: 127.0.0.1
  CLOUD_SQL_INSTANCE: [project-id]:[location]:[instance-id]
Run Code Online (Sandbox Code Playgroud)

我有2个问题:

  1. 元数据库无法连接到Cloud SQL - Cloud SQL是同一项目的一部分,App Engine已获得授权.

  2. 在Metabase中创建我的管理员用户后,我只能登录几秒钟(有时只能登录),但它一直让我不知所措,/setup或者/auth/login说密码不匹配(如果有的话).

我希望有人可以帮忙 - 谢谢!

小智 0

虽然我不确定原因,但我认为授权App Engine的服务帐户不足以访问云SQL。

为了授权您的应用程序访问您的 Cloud SQL,您可以执行以下两种方法之一:

  1. 在 app.yaml 文件中,配置一个指向服务帐号密钥文件的环境变量,并对 Cloud SQL 进行正确的授权配置:

    env_variables:GOOGLE_APPLICATION_CREDENTIALS=[YOURKEYFILE].json

  2. 您的代码执行从存储桶中获取授权服务帐户密钥的操作,然后在云存储客户端库的帮助下加载它。由于您的运行时是自定义的,因此将被转换为您使用的代码的伪代码如下:

    ……