Я разработал 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"