Lumen App Deployed на GAE не может подключиться к БД в облаке-SQL - PullRequest
0 голосов
/ 25 июня 2018

Я разработал API в Lumen и развернул его в GAE.С этой целью я следовал этому учебнику.Он работал нормально до развертывания API, но проблема возникла, когда я попытался получить доступ к БД, которая находится на экземпляре cloud-sql.Я не могу получить доступ к БД способом, описанным в вышеупомянутом учебнике.Затем я попробовал другое решение, и ни одно из них не сработало.Наконец, только для целей тестирования я добавил IP-адрес экземпляров (где развернут GAE) в список авторизованных экземпляров cloud-sql и теперь он работает.Но это временное решение, поскольку экземпляры развертываются на виртуальных машинах, и их IP-адрес может измениться в любое время, что приведет к разрыву соединения между GAE и cloud-sql.Любое решение или предложение будет оценено.Хотя я пытался изменить мой 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_ENV: production
  APP_DEBUG: true
  #QUEUE_DRIVER: sync
  APP_LOG: errorlog
  APP_KEY: 32 char key
  STORAGE_DIR: /tmp
  CACHE_DRIVER: database
  SESSION_DRIVER: database
  #APP_TIMEZONE: UTC
  ## Set these environment variables according to your CloudSQL configuration.
  DB_HOST: 127.0.0.1
  DB_DATABASE: dbname
  DB_USERNAME: root
  DB_PASSWORD: pass
  DB_SOCKET: "/cloudsql/Instance Connection Name"
  MYSQL_DSN: "mysql:unix_socket=/Instance Connection Name;dbname=dbname"
  MYSQL_USER: root
  MYSQL_PASSWORD: pass

beta_settings:
    # for Cloud SQL, set this value to the Cloud SQL connection name,
    # e.g. "project:region:cloudsql-instance"
    cloud_sql_instances: "Instance Connection Name"
...