我正在尝试使用 Google Cloud SQL (MySQL) 在 gcloud 引擎上设置元数据库。
我已经使用它运行了this https://github.com/eddies/metabase-gaegit 和这个 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]
我有 2 个问题:
元数据库无法连接到 Cloud SQL - Cloud SQL 是同一项目的一部分,并且 App Engine 已获得授权。
在元数据库中创建管理员用户后,我只能登录几秒钟(而且只是有时),但它总是让我要么/setup
or /auth/login
说密码不匹配(当匹配时)。
我希望有人可以提供帮助 - 谢谢!
因此,我们刚刚在 Google App Engine 中运行元数据库,并使用运行 PostgreSQL 的 Cloud SQL 实例,这些是我们所经历的步骤。
首先,创建一个 Dockerfile:
FROM gcr.io/google-appengine/openjdk:8
EXPOSE 8080
ENV JAVA_OPTS "-XX:+IgnoreUnrecognizedVMOptions -Dfile.encoding=UTF-8 --add-opens=java.base/java.net=ALL-UNNAMED --add-modules=java.xml.bind"
ENV JAVA_TOOL_OPTIONS "-Xmx1g"
ADD https://downloads.metabase.com/enterprise/v1.1.6/metabase.jar $APP_DESTINATION
我们尝试进一步降低内存,但 1 GB 似乎是最佳选择。到app.yaml
:
runtime: custom
env: flex
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 1
disk_size_gb: 10
readiness_check:
path: "/api/health"
check_interval_sec: 5
timeout_sec: 5
failure_threshold: 2
success_threshold: 2
app_start_timeout_sec: 600
beta_settings:
cloud_sql_instances: <Instance-Connection-Name>=tcp:5432
env_variables:
MB_DB_DBNAME: 'metabase'
MB_DB_TYPE: 'postgres'
MB_DB_HOST: '172.17.0.1'
MB_DB_PORT: '5432'
MB_DB_USER: '<username>'
MB_DB_PASS: '<password>'
MB_JETTY_PORT: '8080'
请注意beta_settings
底部的字段,处理什么akilesh raj
是手动做的。另外,尾随=tcp:5432
是必需的,因为元数据库尚不支持 unix 套接字。
可以找到相关文档here https://cloud.google.com/sql/docs/postgres/connect-app-engine#configuring.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)