Разработка и публикация REST API на JavaScript, Python, C# и Go с помощью сервисов Evolution
Из этого руководства вы узнаете, как создать и опубликовать REST API с помощью сервисов Cloud.ru Evolution:
Artifact Registry — сервис для хранения OCI-артефактов.
Container Apps — сервис для создания и публикации контейнеров в облаке.
В этом примере REST API будет возвращать список сервисов Cloud.ru Evolution, который хранится в виде JSON-файла в контейнере. Ниже представлена схема взаимодействия сервисов Evolution при реализации этого сценария.
Перед началом работы
Подключите сервисы Container Apps и Artifact Registry в рамках одного проекта в личном кабинете.
На локальном компьютере установите Docker Desktop.
Пройдите аутентификацию в сервисе Artifact Registry.
Шаг 1. Создание и публикация образа контейнера с REST API
На этом шаге в репозитории Artifact Registry вы создадите и опубликуете Docker-образ, который в дальнейшем будете использовать для развертывания контейнера.
Чтобы создать и опубликовать образ контейнера:
Соберите 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 поддерживают только эту архитектуру.Загрузите образ в репозиторий Artifact Registry.
docker push <registry_name>.cr.cloud.ru/backend-python
Перейдите в личный кабинет.
В разделе
выберите Artifact Registry.Перейдите в раздел
и убедитесь, что образ загружен.
Шаг 2. Создание и публикация контейнера
На этом шаге вы создадите и запустите контейнер в среде Container Apps и протестируете его работу.
Перейдите в раздел
сервиса Artifact Registry.В строке с нужным образом откройте меню .
Нажмите Создать Container App.
Заполните поля и активируйте опции:
Название контейнера — произвольное название контейнера, может совпадать с именем образа.
- Порт контейнера — порт, на котором будет работать контейнер.
Принимаются значения от 1 до 65535 включительно.
vCPU/RAM — количество vCPU и RAM, которые выделяются для каждого экземпляра контейнера при обработке вызова.
Минимальное и максимальное количество экземпляров при масштабировании сервиса.
Опция Публичный адрес — активируйте опцию, чтобы получить URL-адрес для вызова контейнера из интернета по HTTPS без авторизации.
Опция Автоматическое развертывание — если опция активирована, то каждый раз после загрузки в Artifact Registry новой версии образа на стороне Container Apps будет автоматически создаваться новая ревизия контейнера на базе обновленной версии образа.
Маска тега — укажите значение в формате
<имя_тега>.*
или*
. Например, если указать значениеv.*
, то при загрузке в Artifact Registry новых версий образов с тегами v.1, v.2, v.3 и далее будет автоматически создаваться новая ревизия контейнера в Container Apps.
Нажмите Создать.
Вы будете перенаправлены на страницу сервиса Container Apps для дальнейшего управления контейнером. Контейнер будет создан и запущен в течение нескольких минут.
На вкладке Тестирование протестируйте работу контейнера.
Убедитесь, что в ответ на тестовый запрос приходит список объектов в формате JSON.
Шаг 3. Вызов контейнера по HTTPS
Для вызова контейнера используйте Публичный URL, указав его в адресной строке браузера. Публичный URL доступен на странице контейнера в Container Apps.
для Dev & Test