Развертывание в GAE с использованием оболочки Google Cloud SDK - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь развернуть приложение Nodejs в Google App Engine. Я использую Google Cloud SDK Shell для запуска команд gcloud.

Сначала я запустил gcloud init:

C:\Users\<UserName>\AppData\Local\Google\Cloud SDK>gcloud init

После чего я выбрал облачный проект для использования. Затем я пошел в каталог моего проекта и выполнил команду развертывания:

C:\Users\<UserName>\Documents\Hosting\api>gcloud app deploy

Но когда я запустил просмотр приложения gcloud , я получил 502 Bad Gateway . Моя структура проекта:

->api
  |___node_modules
  |___models
  |___routes
  |___index.js
  |___app.yaml
  |___package.json
  |___package.lock.json
->public
  |___index.html
  |___js
  1. Где мне выполнить команду gcloud app deploy ?
  2. Должен ли я изменить структуру проекта (как google-sdk узнает, что мои файлы веб-интерфейса находятся в папке / public, когда я запускаю команду из / api)

Примечание : я уже работаю на порте 8080 и включил скрипт "start" в файл package.json.

1 Ответ

0 голосов
/ 13 мая 2019

Мне пришлось реструктурировать свой проект:

->project
  |___node_modules
  |___models
  |___routes
  |___index.js
  |___app.yaml
  |___package.json
  |___package.lock.json
  |___public
      |___index.html
      |___js 

Это мой файл app.yaml

env: flex
runtime: nodejs
threadsafe: true
manual_scaling:
  instances: 1

# Handle the main page by serving the index page.
handlers:
- url: /
  static_files: public/index.html
  upload: public/index.html

- url: /(.*)
  static_files: public/\1
  upload: public/(.*)

# Recommended file skipping declaration from the GAE tutorials
skip_files:
  - ^(.*/)?app\.yaml
  - ^(.*/)?app\.yml
  - ^(.*/)?#.*#
  - ^(.*/)?.*~
  - ^(.*/)?.*\.py[co]
  - ^(.*/)?.*/RCS/.*
  - ^(.*/)?\..*
  - ^(.*/)?tests$
  - ^(.*/)?test$
  - ^test/(.*/)?
  - ^COPYING.LESSER
  - ^README\..*
  - \.gitignore
  - ^\.git/.*
  - \.*\.lint$
  - ^fabfile\.py
  - ^testrunner\.py
  - ^grunt\.js
  - ^node_modules/(.*/)?

Кроме того, мне пришлось внести некоторые изменения в файл index.js. Ранее:

const port = process.env.PORT || 8080;
app.listen(port, "localhost",()=>{
    console.log("Server running at port " + port);
});

Мне пришлось заменить его на:

const port = process.env.PORT || 8080;
app.listen(port, ()=>{
    console.log("Server running at port " + port);
});
...