Рубрики
Uncategorized

Развертывание любого веб-сервиса на Azure App Service (мы будем использовать Docker)

Развертывание веб-API имеет важное значение для каждого проекта в настоящее время, и если вы пытаетесь сделать это сами … Теги с докером, Azure, DevOps, WebDev.

Развертывание веб-API имеет важное значение для каждого проекта в наше время, и если вы пытаетесь сделать это самостоятельно, у вас есть много вариантов, доступных из облачных поставщиков, которые уже присутствуют на рынке и Azure, является очень перспективным вариантом. При выборе Azure проще всего настроить ваш веб-API через Azure App Service Отказ

Теперь сервис приложений из коробки поддерживает PHP, JavaScript, Nodejs, Dotnet, Dotnet Core, Java, Python и Ruby. Это означает, что вы можете просто подключить свой репозиторий, на котором вы работаете с веб-API в службу приложения Azure, и она автоматически работала с развертыванием его, как только вы нажимаете какие-либо коммиты или изменения.

Обратите внимание, что — Контейнеры Docker — это не что иное, как автономные приложения.

I.E. Всякий раз, когда вы хотите запустить контейнер, вы создаете документ Docker, который содержит все зависимости, которым нужно будет запустить все зависимости. И затем вы запускаете изображение, которое когда работает, мы называем это контейнером.

При этом это эффективен, существуют другие способы развертывания приложений I.E. Использование контейнеров докеров. Теперь использование контейнеров Docker делает вещи

  1. Открыть — у вас есть полную идею о том, как работает ваше приложение, и какая она находится в.

  2. Контролируемый — вам придется указать каждую деталь о том, как вы хотите, чтобы это приложение было построено, поэтому весь процесс здания находится под вашим управлением.

Давайте начнем с написания документа Docker для стандарта Fastapi проект.

Надеяся, что ваш проект сам по себе в виртуальной среде, и каждая зависимость в вашей среде установлена в вашей среде, мы будем передавать все пакеты Python в вашей среде к файлу требований.

Чтобы увидеть, какие пакеты ваша текущая среда имеет тип

pip freeze 

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

pip freeze > requirements.txt

Та же команда должна работать нормально на Windows, а также Linux.

Теперь, когда у нас есть a требования .txt Файл с требованиями нашей среды мы хотим создать Dockerfile с инструкциями о том, как это изображение будет сборка.

Предполагая, что вы находитесь в корневом каталоге вашего проекта, что вы хотите сделать, это создать файл с именем Dockerfile и напишите содержимое, как показано ниже.

Создание файла на Linux можно сделать как Нажмите Dockerfile А на Windows можно сделать как эхо "" " > Dockerfile Отказ

FROM python:3.8-slim-buster

COPY requirements.txt .

RUN pip3 install -r requirements.txt

EXPOSE 80

COPY ./app /app

CMD ["python", "-m","uvicorn","app.main:app","--host","0.0.0.0","--port","80"]

Теперь, что делает Dockerfile, дает линию по инструкции на линии относительно того, как можно построить изображение в нашем случае, у нас есть сладкие 6 строк является

  1. Базовое изображение для строительства нашего персонализированного изображения должно быть Python: 3.8-Slim-Buster Отказ

  2. Скопируйте требования .txt Файл из корневой папки Project в наш папке корневой папки Docker.

  3. Установите все зависимости, которые мы перечислены в нашем требования .txt файл.

  4. Выставить порт 80 для HTTP входящего трафика, чтобы при запуске нашего приложения на этом порту он будет транслироваться к хосту, на котором мы запустим контейнер. F.Y.I. Порт 80 является портом для всего HTTP-трафика, вот почему мы его используем.

  5. Скопируйте все содержимое в приложение Папка к приложение Папка в нашем образе докера. F.Y.I приложение Папка содержит весь исходный код для нашего веб-API.

  6. Запустите команду для нашего сервера, чтобы начать localhost 0,0.0.0 и порт 80 А поскольку файл I.e. main.py в котором наше приложение находится внутри /приложение Папка мы пишем app.main и : приложение Для переменной приложения Fastapi объявлена внутри main.py.

После того, как вы создали одну такую DockerFile команду, чтобы построить изображение из этого DockerFile будет —

docker build -t tag-name-for-your-image .

Это проверит DockerFile в Отказ каталог и создать изображение в соответствии с его контентом. Он загрузит базовое изображение, загрузите все зависимости Python, сделайте пакет из него и сохраняют его в виде докера с тегом Tag-Name-for-Your-image Отказ Вы должны выбрать полезное значение tagname, чтобы распознать ваши изображения.

Если он успешно создает изображение, а затем запустить это изображение будет таким —

docker run --name container-name -p 80:80 tag-name-for-your-api

Если все идет хорошо, вы будете представлены на выходе, который выглядит так.

Сейчас самое время, которое вы начинаете клиент Postman и проверьте, успешно ли приложение работает или нет. Если это происходит, мы больше, чем на полпути. 😎🙌.

Запуск контейнера Docker так же прост, как выбирает изображение из реестра контейнера и выполнением Беги Команда от DockerFile.

Итак, для службы Azure App, чтобы иметь возможность потянуть его и запустить его, нам нужно поставить его в некоторые реестра контейнера. Azure имеет свой собственный реестр контейнера по имени Azure Consister Registry Acr Что мы будем использовать здесь. Вы можете отправиться в Azure Portal и создайте реестр контейнеров в вашем предпочтительном месте, а затем следуйте по этому сообщению в блоге.

Лучший способ построить и загрузка документов докеров на ACR проходит через CI/CD I.E. Непрерывная интеграция и непрерывное развертывание. С помощью Azure DEVOPS построить трубопровод для того, чтобы делать то же самое, это просто процесс нескольких кликов.

  1. Войдите в свой аккаунт Azure DEVOPS.

  2. Создайте новый проект.

  3. Создать новый трубопровод

  4. Выберите «Репозиторий CODE», чтобы быть из GitHub.

  5. Выберите репозиторий, в котором развернут ваш код.

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

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

БАММ! 🔥 Хотя это была большая задача, мы сделали это!

У нас есть только развертывание оставшейся части, давайте сделаем это.

  1. Перейдите на свой портал Azure. Нажмите на создание нового ресурса -> Создайте новое веб-приложение.

  2. Заполните детали по вашему желанию вот короткий пример того, что я написал

  3. Выберите реестр в виде реестра Azure Container и имя реестра и имя реестра для деталей, которые вы бы выбрали ранее.

  4. Убедитесь, что вы выбираете последний тег, чтобы развернуть изображение.

  1. Нажмите на отзыв + кнопку Создать на дне, а затем создайте кнопку после нее.

Сделанный! Azure теперь будет потянуть изображение с ACR и запустить его в качестве веб-приложения. С помощью этого метода развертывания вы можете запустить код любого языка, который вы хотите на Azure, если вы можете создать файл Docker для него. 👍. 😍

Вот все для этого блогов. Я надеюсь постоянно писать больше сообщений блога и выращивать мою коллекцию тщательно написанных блогов. Я надеюсь, что это помогло тебя.

Следуй за мной на Twitter Чтобы еще больше связаться со мной. Я буду смотреть раздел комментариев, если вы обнаружите какие-либо сомнения в этом блоге, дайте мне знать.:)

Оригинал: «https://dev.to/gat786/deploying-any-web-service-on-azure-app-service-we-will-use-docker-1kl1»