Размещение навыка в Google Cloud

В инструкции описано размещение навыка на Google Cloud Platform. Если вы не пользовались этим сервисом раньше, вы сможете развернуть и проверить свой навык в Google Cloud в рамках бесплатного периода.

Виртуальная машина или веб-приложение на Google Cloud Platform

Бесплатный доступ и тарификация

Связка аккаунтов

Командная разработка

Поддерживаемые среды разработки

Пробный период включает стартовый грант на 90 дней.

Google Cloud Free Program (free tier) не ограничен по времени.

Подробнее см. тарификацию сервисов App Engine и тарификацию виртуальных машин в Compute Engine.

Не обязательна

Возможна.

Настройте политику Identity & Access Management (IAM).

Поддерживаются операционные системы на базе Linux и Windows.

Среды выполнения: Node.js, Java, Ruby, C#, Go, Python, PHP.

Если необходимая среда выполнения не поддерживается во встроенных образах, ее можно развернуть с помощью пользовательского контейнера.

Подготовка

  1. Cоздайте нужные учетные записи, если у вас их еще нет:

  2. Перейдите в консоль Google Cloud и создайте новый проект. Для этого в верхней панели нажмите New ProjectMy first Project.

  3. Находясь в созданном проекте, слева в консоли выберите Billing. Убедитесь, что вам доступен стартовый грант и срок его действия не истек.

  4. Включите Сloud Build API по ссылке. Сверху выберите, для какого проекта вы подключаете API, и нажмите NextEnable.

  5. Установите Cloud SDK и авторизируйтесь.

    Windows
    1. Скачайте и запустите Cloud SDK Installer.
    2. Авторизируйтесь в Cloud SDK. В открывшемся окне браузера введите учетные данные аккаунта Google.
    MacOS
    1. Выполните консольную команду uname -m, чтобы определить версию системы.

    2. Установите Сloud SDK.

    3. Выполните команду./google-cloud-sdk/bin/gcloud init.

Создание веб-приложения

1. Создайте веб-приложение App Engine. Используйте консольную команду ниже, заменив [YOUR_PROJECT_ID] на Projeсt ID вашего проекта: gcloud app create --project=[YOUR_PROJECT_ID]

2. Выберите регион.

3. Установите Git.

4. Установите nvm и Node.js.

Windows
  1. Удалите Node.js, если устанавливали его ранее. Установите NVM for Windows.
  2. Установите Node.js. Используйте команду nvm install stable.
  3. С помощью команды node --version убедитесь, что платформа установлена.
MacOS
  1. Выполните команду curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh.
  2. Установите Node.js. Используйте команду nvm install stable.
  3. С помощью команды node --version убедитесь, что платформа установлена.

5. Скачайте или скопируйте исходный код примера из GitHub-репозитория Яндекса.

6. Перейдите в каталог приложения. Установите пакеты NPM c помощью команды npm install.

7. Запустите сервер разработки: выполните команду npm start.

8. Разверните приложение с помощью Google Cloud: выполните команду gcloud app deploy.

9. Дождитесь окончания процесса, чтобы получить URL в строке "target url": https://***.appspot.com.

  1. Установите Python.

  2. Создайте веб-приложение App Engine. Используйте консольную команду ниже, заменив [YOUR_PROJECT_ID] на Projeсt ID вашего проекта:

    gcloud app create --project=[YOUR_PROJECT_ID]
    
  3. Выберите регион.

  4. Установите Git.

  5. Выполните консольную команду gcloud components install app-engine-python.

  6. Скачайте или скопируйте исходный код примера из GitHub-репозитория Яндекса.

  7. Перейдите в каталог приложения. Создайте виртуальную среду:

    Windows
    python -m venv env
    .\env\Scripts\activate
    
    MacOS
    python3 -m venv env
    source env/bin/activate
    
  8. Выполните команду pip install -r requirements.txt.

  9. Разверните приложение с помощью Google Cloud: выполните команду gcloud app deploy.

  10. Дождитесь окончания процесса, чтобы получить URL в строке "target url": https://***.appspot.com.

Добавление Webhook URL

  1. Перейдите в консоль разработчика.
  2. Создайте навык и перейдите на вкладку Настройки.
  3. В блоке Backend в поле Webhook URL укажите URL приложения.
  4. Внизу страницы нажмите кнопку Сохранить.

Чтобы писать более сложные навыки, ознакомьтесь с протоколом работы Яндекс Диалогов.

Тестирование навыка

Подробнее о тестировании навыка.

1. Проверьте работу навыка на вкладке Тестирование. Если все настроено правильно, появится приветствие: Hello!

2. Отправьте сообщение с любым текстом и убедитесь, что вам пришел ответ с таким же содержанием.

3. Попробуйте изменить код навыка. Откройте файл app.js в визуальном редакторе. Отредактируйте приветственную фразу: в тексте кода замените 'Hello!' на 'Привет!'.

4. Повторно разверните приложение с помощью консольной команды gcloud app deploy.

5. Обновите страницу на вкладке Тестирование. Проверьте изменения в навыке.

  1. Проверьте работу навыка на вкладке Тестирование. Если все настроено правильно, появится приветствие: Привет! Купи слона!

  2. Отправьте сообщение и убедитесь, что навык отвечает.

  3. Попробуйте изменить код навыка. Откройте файл main.py в визуальном редакторе. Отредактируйте приветственную фразу: замените в тексте кода 'Привет! Купи слона!' на 'Добрый день! Не желаете купить слона?' в тексте кода.

  4. Повторно разверните приложение с помощью консольной команды gcloud app deploy.

  5. Обновите страницу на вкладке Тестирование. Проверьте изменения в навыке.

Чтобы писать более сложные навыки, ознакомьтесь с протоколом работы Яндекс Диалогов.