Разработка и публикация REST API на JavaScript, Python, C# и Go с помощью сервисов Evolution

Из этого руководства вы узнаете, как создать и опубликовать REST API с помощью сервисов Evolution:

  • Artifact Registry — сервис для хранения OCI-артефактов.

  • Container Apps — сервис для создания и публикации контейнеров в бессерверной среде.

В этом примере REST API будет возвращать список сервисов Cloud.ru Evolution, который хранится в виде JSON-файла в контейнере. Ниже представлена схема взаимодействия сервисов Evolution при реализации этого сценария.

../_images/schm__e2e-solution-ca-cr.svg

Перед началом работы

Шаг 1. Создание и публикация образа контейнера с REST API

На этом шаге в репозитории Artifact Registry вы создадите и опубликуете Docker-образ, который в дальнейшем будете использовать для развертывания контейнера.

Чтобы создать и опубликовать образ контейнера:

  1. Соберите Docker-образ.

    Используйте готовый образ из публичного репозитория Cloud.ru. Для этого выполните команду в Docker CLI или любом привычном терминале на вашем компьютере:

    docker build --tag <registry_name>.cr.cloud.ru/restapi-python https://gitverse.ru/sc/cloudru/evo-containerapp-restapi-js-go-python-dotnet-sample.git#master:restapi-python/src --platform linux/amd64
    

    Параметр --platform linux/amd64 обязателен для указания, так как Container Apps поддерживают только эту архитектуру.

  2. Загрузите образ в репозиторий Artifact Registry.

    docker push <registry_name>.cr.cloud.ru/backend-python
    
  3. Перейдите в личный кабинет.

  4. В разделе Evolution → Контейнеры выберите Artifact Registry.

  5. Перейдите в раздел Репозитории → Артефакты репозитория и убедитесь, что образ загружен.

    ../_images/s__cr__repo-list.png

Шаг 2. Создание и публикация контейнера

На этом шаге вы создадите и запустите контейнер в среде Container Apps и протестируете его работу.

  1. Перейдите в раздел Репозитории → Артефакты репозитория сервиса Artifact Registry.

  2. В строке с нужным образом откройте меню Опции.

  3. Нажмите Создать Container App.

  4. Заполните поля и активируйте опции:

    • Название контейнера — произвольное название контейнера, может совпадать с именем образа.

    • Порт контейнера — порт, на котором будет работать контейнер.

      Принимаются значения от 1 до 65535 включительно.

    • vCPU/RAM — количество vCPU и RAM, которые выделяются для каждого экземпляра контейнера при обработке вызова.

    • Минимальное и максимальное количество экземпляров при масштабировании сервиса.

    • Опция Публичный адрес — активируйте опцию, чтобы получить URL-адрес для вызова контейнера из интернета по HTTPS без авторизации.

    • Опция Автоматическое развертывание — если опция активирована, то каждый раз после загрузки в Artifact Registry новой версии образа на стороне Container Apps будет автоматически создаваться новая ревизия контейнера на базе обновленной версии образа.

    • Маска тега — укажите значение в формате <имя_тега>.* или *. Например, если указать значение v.*, то при загрузке в Artifact Registry новых версий образов с тегами v.1, v.2, v.3 и далее будет автоматически создаваться новая ревизия контейнера в Container Apps.

    ../_images/s__cr__create-container.png
  5. Нажмите Создать.

    Вы будете перенаправлены на страницу сервиса Container Apps для дальнейшего управления контейнером. Контейнер будет создан и запущен в течение нескольких минут.

  6. На вкладке Тестирование протестируйте работу контейнера.

    Убедитесь, что в ответ на тестовый запрос приходит список объектов в формате JSON.

Шаг 3. Вызов контейнера по HTTPS

Для вызова контейнера используйте Публичный URL, указав его в адресной строке браузера. Публичный URL доступен на странице контейнера в Container Apps.

Запустили Evolution free tier
для Dev & Test
Получить