Node.js strApi подключиться к Google Cloud - PullRequest
0 голосов
/ 11 июля 2020

У меня есть api, который я могу запускать локально на моем локальном компьютере. Он использует m sql вот что я сделал:

Local:

. / Enviroments / development / database. json

{
    "defaultConnection": "default",
    "connections": {
        "default": {
            "connector": "strapi-hook-bookshelf",
            "settings": {
                "client": "mysql",
                "host": "127.0.0.1",
                "srv": false,
                "port": 3306,
                "database": "[REDACTED]",
                "username": "[REDACTED]",
                "password": "[REDACTED]"
            },
            "options": {
                "ssl": false
            }
        }
    }
}

. / Enviroments /development/server.json

{
  "host": "localhost",
  "port": 1337,
  "proxy": {
    "enabled": false
  },
  "autoReload": {
    "enabled": true
  },
  "cron": {
    "enabled": false
  },
  "admin": {
    "autoOpen": true
  }
}

Затем я запустил MAMP и выполнил импорт базы данных в phpmyadmin. Идеально все работает.

Теперь хотелось бы сделать живым. Итак, я использую Google Cloud. Я создал экземпляр am sql на облачной платформе Google. Я создал базу данных «test»

Мой вопрос в том, как должна выглядеть моя база данных. json как сейчас?

Я пробовал

    {
        "defaultConnection": "default",
        "connections": {
            "default": {
                "connector": "REDACTED",
                "settings": {
                    "client": "mysql",
                    "host": "Public IP address i found on googleCloud platform",
have also tried /cloudsql/[REDACTED]

i have tried to put in
"socketPath": "/cloudsql/${process.env.INSTANCE_CONNECTION_NAME}"


                    "srv": false,
                    "port": 3306,
// dont know what the port should be
                    "database": "test",
                    "username": "REDACTED",
                    "password": "REDACTED"
                },
                "options": {
                    "ssl": false
                }
            }
        }
    }

Я попытался настроить файл app.yaml. Закрытие, которое я заставил его работать, было, когда я развернул его, он сказал, что сервер err 500. Во всех других случаях он просто не работает.

Кто-нибудь может помочь мне с правильной настройкой, поскольку я не знаю, что я делаю Хотите чтобы узнать, как это сделать, и я уже потратил весь день :( и ничего не получил

Теперь я пробовал это. Это мой app.staging.yaml

runtime: nodejs10
service: strapi

env_variables:
  NODE_ENV: staging
  MYSQL_USERNAME: REDACTED
  MYSQL_PASSWORD: REDACTED
  MYSQL_DATABASE: test
  INSTANCE_CONNECTION_NAME: REDACTED"
beta_settings:
  cloud_sql_instances: "REDACTED"

И моя конфигурация /staging/databse.json выглядит так:

{
    "defaultConnection": "default",
    "connections": {
        "default": {
            "connector": "strapi-hook-bookshelf",
            "settings": {
                "client": "mysql",
                "host": "${process.env.MYSQL_HOST || '127.0.0.1'}",
                "port": "${process.env.MYSQL_PORT || '3306'}",
                "database": "${process.env.MYSQL_DATABASE}",
                "username": "${process.env.MYSQL_USERNAME}",
                "password": "${process.env.MYSQL_PASSWORD}",
                "socketPath": "/cloudsql/${process.env.INSTANCE_CONNECTION_NAME}"
            },
            "options": {}
        }
    }
}

Развернуто, но когда я перехожу по ссылке, отображается

Ошибка: ошибка сервера Сервер обнаружил ошибку и не смог выполнить ваш запрос . Повторите попытку через 30 секунд.

1 Ответ

0 голосов
/ 12 июля 2020

«NodeJS» может быть любым, например INSTANCE_CONNECTION_NAME Стандарт App Engine .

Вероятно, вам придется создать пользователя и настроить доступ.

См. Подключение из внешнего приложения через прокси .

...