Google Cloud не устанавливает пакеты правильно - PullRequest
3 голосов
/ 10 марта 2019

Я пытаюсь развернуть свое приложение в Google Clouds App Engine.Он отлично работает как локальный экземпляр, но как только я загружаю его в gcloud, он перестает работать как положено.

Я создаю бота для раздора.Через него я получаю доступ к API Discord и YouTube.Подключение к ним, похоже, работает, так как бот выходит в сеть после публикации.Тем не менее, похоже, что функция воспроизведения музыки перестает работать, когда он работает на gcloud.Все остальные функции работают как задумано.Вот почему я подозреваю, что с некоторыми пакетами что-то пошло не так.Вероятно, связано с музыкой или звуком.

Вопрос: Есть ли способ убедиться, что мои пакеты узлов были установлены правильно через облако Console или cmd?Или, что еще лучше, переустановите их.

Я посмотрел на Развернуть и запустить App Engine .

Я публикую с помощью cmd-tools и запустив: gcloud app deploy

app.yaml:

runtime: nodejs
env: flex
manual_scaling:
  instances: 1

package.json:

{
  "name": "yup",
  "version": "1.0.5",
  "description": "bot",
  "main": "app.js",
  "private": true,
  "engines": {
    "node": ">=8.11.3"
  },
  "scripts": {
    "start": "node app.js",
    "deploy": "gcloud app deploy",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Joel",
  "license": "ISC",
  "dependencies": {
    "@types/request": "^2.48.1",
    "discord.js": "^11.4.2",
    "express": "^4.16.4",
    "ffmpeg-binaries": "^4.0.0",
    "fs": "0.0.1-security",
    "get-youtube-id": "^1.0.1",
    "opusscript": "0.0.6",
    "request": "^2.88.0",
    "youtube-info": "^1.3.2",
    "ytdl-core": "^0.29.1",
    "ytdl-getinfo": "^1.1.0"
  },
  "devDependencies": {
    "typescript": "^3.3.3333"
  }
}

При дальнейшей проверке я могу увидеть это в журналах установки:

Step #1: npm WARN discord.js@11.4.2 requires a peer of bufferutil@^3.0.3 but none is installed. You must install peer dependencies yourself.
Step #1: npm WARN discord.js@11.4.2 requires a peer of erlpack@discordapp/erlpack but none is installed. You must install peer dependencies yourself.
Step #1: npm WARN discord.js@11.4.2 requires a peer of node-opus@^0.2.7 but none is installed. You must install peer dependencies yourself.
Step #1: npm WARN discord.js@11.4.2 requires a peer of sodium@^2.0.3 but none is installed. You must install peer dependencies yourself.
Step #1: npm WARN discord.js@11.4.2 requires a peer of libsodium-wrappers@^0.7.3 but none is installed. You must install peer dependencies yourself.
Step #1: npm WARN discord.js@11.4.2 requires a peer of uws@^9.14.0 but none is installed. You must install peer dependencies yourself.

Ответы [ 2 ]

2 голосов
/ 11 марта 2019

Это было вызвано несколькими причинами:

Если вы попадаете в аналогичную ситуацию, когда ни компилятор, ни среда выполнения не жалуются на и , это работает в вашей среде разработки, но не на производстве. Тогда Я бы настоятельно рекомендовал просмотреть любые внешние зависимости.

Причина

FFMPEG-binaries установил из моего пакета json. НО - он не работал, пока я не установил его глобально, используя флаг -g.

Кроме того, в этой конкретной ситуации мне пришлось проверять целостность всей моей установки FFMPEG, которая по какой-то причине не работала.

Вы должны иметь возможность запустить ffmpeg в своей консоли и получить некоторую основную информацию об использовании. Если это сработает , вам следует идти!

Теперь это работает (FFMPEG был причиной)!

Я также переключился с App engine на VM instance, так как не мог найти способ установить системные зависимости на App Engine. Используя экземпляр виртуальной машины, я мог вручную установить пакеты через SSH.

Несвязанный : оказывается, что одноранговые зависимости являются необязательными.

0 голосов
/ 12 марта 2019

Чтобы проверить, правильно ли установлены зависимости приложения App Engine из Google Cloud Console:

  1. Проверьте журналы на странице «Регистрация в стеке>« Журналы (Просмотр журналов) ».
  2. Фильтровать журналы :
    • по ресурсам, выбирая из выпадающего меню: Cloud Build,
    • по текстовому поиску, чтобы найти package.json или указать пакет, например ffmpeg-binaries,
    • по дате,

Также возможно получить журнал сборок App Engine из среды Cloud Shell:

  1. Получить ID сборки: $ cloud builds list
  2. Список завершенных сборок журнала : $ gcloud builds log [build-ID]

В журналах вы должны увидеть: successfully installed [package name-version]

Чтобы переустановить зависимости, вам необходимо развернуть новую версию вашего приложения.В случае проблемы с уже кэшированным пакетом, попробуйте флаг --no-cache, , указанный в документации .


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...