Как получить доступ к 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 успешно создало базу данных для синхронизации, но ее нет на сервере:

снимок экрана IndexedDB во вкладке приложения

файл 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:

  1. Изменитьapp.yamlвключать:

    entrypoint: gunicorn -b :$PORT -b :2222 main:app
    
  2. В настройках сети вашегоapp.yaml, включают:

    network:
      forwarded_ports:
       - 2222/tcp
    
  3. Укажите правило брандмауэра в консоли Cloud Platform или с помощьюgcloud compute firewall-rules create разрешить трафик из любого источника (0.0.0.0/0) и из tcp:2222,

Другие вопросы по тегам