Как я могу развернуть сайт Flask на облачной платформе Google с работающей MongoDB - PullRequest
0 голосов
/ 10 ноября 2019

Я использую Flask в качестве внутреннего кода и подключил его к MongoDB Atlas, я локально протестировал свой сайт в Cloud Shell и все работает нормально. Но когда я подключаю свой веб-сайт к созданному экземпляру и пытаюсь его развернуть, внутренний код не работает после развертывания. Это из-за моего App.yaml? или мой метод развертывания неправильный?

Мой метод развертывания следующий: - Первый gcloud auth login - gcloud config set project <PROJECT_ID> - gcloud app deploy

my App.yaml:

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app

runtime_config:
  python_version: 3

handlers:
- url: /static
  static_dir: static
- url: /.*
  script: auto



Имеюпопытался провести какое-то исследование, но я пока не нашел ничего полезного, так что если у вас есть какие-либо ресурсы или вы знаете, как решить эту проблему, пожалуйста, поделитесь. Спасибо!

1 Ответ

0 голосов
/ 10 ноября 2019

Вы должны настроить конфигурацию mongo db в config.py.

Откройте файл config.py для редактирования и замените следующие значения:

Установите значение [PROJECT_ID] для идентификатора вашего проекта, который отображается в консоли GCP.

Установите значение [DATA_BACKEND] равным mongodb.

Установите значение [MONGO_URI]. Если вы используете mLab, URI доступен> на панели управления. Если вы развернули собственный кластер MongoDB, как описано ранее, установите для URI внешний IP-адрес, указанный в этом разделе. Вы также можете найти внешний IP-адрес, запустив список экземпляров вычислений gcloud.

Также вам следует рассмотреть возможность настройки правил брандмауэра:

По умолчанию MongoDB использует для связи порт 27017,После настройки экземпляра MongoDB может потребоваться настроить правила брандмауэра, чтобы разрешить трафик в этот порт и из него. Для экземпляров, работающих на GCP, см. Инструкции по использованию правил брандмауэра.

Вы можете найти документацию:

Запуск MongoDB на Compute Engine

Использование правил брандмауэра .

...