Как получить доступ к Fauxton на платформе Google AppEngine?
Я создаю первое автономное приложение в Google App Engine с PouchDB в качестве моей локальной БД и CouchDB в качестве моей удаленной БД. Я включил CouchDB в Google AppEngine и попытался перейти по следующему URL:
https://[my-app-id].appspot.com:5984/_utils/
Когда я это делаю, я получаю следующее:
This site can’t be reached
The connection was reset.
Try:
Checking the connection
Checking the proxy and the firewall
Running Windows Network Diagnostics
ERR_CONNECTION_RESET
Поэтому я попытался включить https
доступ в настройках брандмауэра.
**Firewalls**
[ ] Allow HTTP traffic
[Y] Allow HTTPS traffic
Все еще получаю ошибку выше.
Я искал документацию, но не могу найти ничего полезного о том, как получить доступ к Fauxton (или Futon) в Google AppEngine. (В инструкциях рассказывается только, как получить доступ к Fauxton на локальном компьютере.)
Я сгенерировал закрытый и открытый ключ и вошел на сервер через командную строку.
Я также следовал инструкциям по настройке брандмауэра, чтобы разрешить удаленный доступ, и предоставил его только моему ПК.
Ничто из этого не позволило мне получить доступ https://[my-app-id].appspot.com:5984/_utils/
Как получить доступ к Fauxton на платформе Google AppEngine?
Обновление: согласно инструментам разработки в моем браузере, мое приложение PouchDB успешно создало базу данных для синхронизации, но ее нет на сервере:
файл app.yaml
application: [app-name]
version: 4
runtime: python27
api_version: 1
threadsafe: false
handlers:
- url: /
script: main.py
- url: /(favicon)\.ico$
static_files: \1.ico
upload: /(favicon)\.ico
application_readable: true
- url: /(package)\.json$
static_files: \1.json
upload: /(package)\.json
application_readable: true
# Serve images as static resources #
- url: /(.+\.(gif|png|jpg|json|ico))$
static_files: \1
upload: .+\.(gif|png|jpg|json|ico)$
application_readable: true
- url: /index.html
static_files: index.html
upload: index.html
- url: /licence.html
static_files: licence.html
upload: licence.html
- url: /privacy.html
static_files: privacy.html
upload: privacy.html
- url: /pouchnotes.manifest
static_files: pouchnotes.manifest
upload: pouchnotes.manifest
- url: /manifest.json
static_files: manifest.json
upload: manifest.json
# static directories #
- url: /img
static_dir: img
- url: /js
static_dir: js
- url: /css
static_dir: css
libraries:
- name: webapp2
version: "2.5.2"
РЕДАКТИРОВАТЬ: я разместил этот вопрос на форуме сообщества Bitnami (они предоставляют CouchDB на Google App Engine)
2 ответа
Я получаю некоторую помощь в этом с форума сообщества Битнами.
Ответы пока что...
(1) настроить правила брандмауэра - убедитесь, что у вас есть постоянный IP-адрес для этого.
(2) настроить ключи SSH для доступа к серверу через командную строку
(3) sudo /opt/bitnami/couchdb/scripts/ctl.sh stop couchdb
(4) редактировать local.ini
указать на 0.0.0.0
вместо 127.0.0.1
- но учтите, что вам нужно будет набрать cd /opt/bitnami/couchdb/etc/
нажмите Enter, а затем sudo vi local.ini
(скорее, чем vi local.ini
как подсказывают инструкции).
(5) Войдите на внешний IP-адрес. (Войти как admin
и префикс команды с sudo
)
(Примечание: вам не нужно запускать это в гибкой среде GAE)
FWIW, одна из ссылок в вашем посте указывает на Google Compute Engine (GCE), который является IaaS, а не PaaS, как Google App Engine (GAE), возможно, вы ищете не тот продукт.
app.yaml
Файл указывает на то, что вы используете стандартную среду, которая не предлагает способов настройки прослушивающего порта. И это также не позволяет прослушивать сокеты. Из ограничений и ограничений:
Хотя App Engine поддерживает сокеты, существуют определенные ограничения и способы поведения, о которых необходимо знать при использовании сокетов:
- Вы не можете создать сокет прослушивания; Вы можете создавать только исходящие сокеты.
Гибкая среда GAE может быть альтернативой, поскольку она снимает многие стандартные ограничения среды, но это существенно другое решение (которое я еще не использовал). Остальная часть ответа предполагает гибкую среду и основана исключительно на документации.
Не уверен на 100%, но вам может потребоваться научить ваше приложение прослушивать порт 8080. От прослушивания до порта 8080:
Внешний интерфейс App Engine будет направлять входящие запросы в соответствующий модуль через порт 8080. Вы должны быть уверены, что код вашего приложения прослушивает 8080.
Если вы не можете использовать forwarded ports
конфигурация сети (опять же, не уверен на 100%, я не использовал flex env). Из порта переадресация:
Переадресация портов позволяет устанавливать прямые подключения к контейнеру Docker в ваших экземплярах. Этот трафик может проходить по любому протоколу. Переадресация портов предназначена для помощи в ситуациях, когда вам может понадобиться подключить отладчик или профилировщик.
По умолчанию входящий трафик из-за пределов вашей сети запрещен через брандмауэры Google Cloud Platform. После того, как вы указали переадресацию портов в вашем
app.yaml
файл, вы должны добавить правило брандмауэра, которое разрешает трафик с портов, которые вы хотите открыть.Вы можете указать правило брандмауэра на странице "Правила сетевого брандмауэра" в консоли Google Cloud Platform или с помощью
gcloud
командыНапример, если вы хотите перенаправить TCP-трафик с порта
2222
:
Изменить
app.yaml
включать:entrypoint: gunicorn -b :$PORT -b :2222 main:app
В настройках сети вашего
app.yaml
, включают:network: forwarded_ports: - 2222/tcp
Укажите правило брандмауэра в консоли Cloud Platform или с помощью
gcloud compute firewall-rules create
разрешить трафик из любого источника (0.0.0.0/0
) и изtcp:2222
,