【问题标题】:Connecting Google Compute Engine with Google App Engine将 Google Compute Engine 与 Google App Engine 连接起来
【发布时间】:2017-09-13 21:26:51
【问题描述】:

我正在尝试使用 Laravel 将带有 MySQL 数据库的 Google Compute Engine 实例连接到 Google App Engine。我实际上已将我的 Google App Engine 连接到 Cloud SQL 实例,对此我没有问题,但我需要与位于 Google Compute Engine 上的数据库建立额外的数据库连接。

Google Compute Engine 实例位于不同的项目中。这是我的方案:

项目 A -> Compute Engine -> 实例 -> MySQL 数据库

项目 B -> App Engine -> Laravel

项目 B -> Cloud SQL -> 数据库实例 -> MySQL 数据库

这是我的 app.yaml 文件:

runtime: php
env: flex

runtime_config:
  document_root: public

# Ensure we skip ".env", which is only for local development
skip_files:
  - .env

env_variables:
  # Put production environment variables here.
  APP_LOG: "errorlog"
  APP_KEY: "[KEY]"
  STORAGE_DIR: "/tmp"
  CACHE_DRIVER: "database"
  SESSION_DRIVER: "database"
  APP_DEBUG: "true"

  #CLOUD SQL database connection
  DB_CONNECTION: "[DATABASE_1_NAME]"
  DB_HOST: "[CLOUD_SQL_INSTANCE_NAME]"
  DB_DATABASE: "[DATABASE_1_NAME]"
  DB_USERNAME: "root"
  DB_PASSWORD: "[PASSWORD]"
  DB_SOCKET: "/cloudsql/[PROJECTB]:[REGION]:[CLOUD_SQL_INSTANCE_NAME]"

  # COMPUTE ENGINE database connection
  DB_HOST_2: "[COMPUTE_ENGINE_INSTANCE_NAME]"
  DB_DATABASE_2: "[DATABASE_2_NAME]"
  DB_USERNAME_2: "root"
  DB_PASSWORD_2: "[PASSWORD]"

beta_settings:
    cloud_sql_instances: "[PROJECTB]:[REGION]:[CLOUD_SQL_INSTANCE_NAME]"

【问题讨论】:

  • 抱歉,不清楚您的问题是什么。
  • 我的问题是,如何将托管在 Compute Engine 上的数据库连接到托管在 App Engine 上的 Laravel 应用程序?
  • 最大的挑战可能是管理防火墙规则以允许来自 App Engine 的连接,因为您不知道他的 IP 是什么。解决此问题的一种方法是将数据库服务器配置为仅允许基于 SSL 证书的身份验证并允许从任何地方进行连接。

标签: laravel google-app-engine google-compute-engine google-cloud-sql app.yaml


【解决方案1】:

我认为您正在使用带有 PHP 的 Google App Engine 标准环境。 当您将 GAE 应用程序连接到托管在 Google Compute Engine 实例上的数据库时,它被视为与“外部数据库”的连接。因此,您需要将 GAE 视为 GCE 实例的外部客户端。

因此,您必须配置您的VPC firewall 以接受从外部到端口 3306 的连接,并且您必须指定外部 GCE 实例 IP 地址作为连接字符串的主机。确保您的防火墙规则接受来自任何地方的连接(IP 掩码:0.0.0.0/0)。

希望这对您有所帮助。 再见

【讨论】:

    猜你喜欢
    • 2018-04-28
    • 1970-01-01
    • 2018-02-14
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多