Запуск пользовательского контейнера в Azure

Служба приложений Azure предоставляет предопределенные стеки приложений на платформе Windows, например ASP.NET или Node.js, выполняющиеся в IIS. Однако предварительно настроенные стеки приложений блокируют операционную систему и мешают доступу на более низком уровне. Пользовательские контейнеры Windows не налагают таких ограничений и позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.

В этом кратком руководстве показано, как развернуть приложение ASP.NET в образе Windows в Реестр контейнеров Azure из Visual Studio. Приложение можно запустить в пользовательском контейнере в Службе приложений Azure.

Для работы с этим кратким руководством вам понадобится:

  • Установка Docker для Windows
  • Переключение Docker для выполнения контейнеров Windows
  • Установите Visual Studio 2022, а также следующие рабочие нагрузки: ASP.NET и веб-разработка и разработка Azure. В Visual Studio 2022 Community убедитесь, что выбран компонент Шаблоны элементов и проект .NET Framework с рабочей нагрузкой ASP.NET и веб-разработка. Если вы уже установили Visual Studio 2022:
    • Установите последние обновления для Visual Studio, выбрав Справка>Проверить обновления.
    • Добавьте рабочие нагрузки в Visual Studio, выбрав Инструменты>Получить средства и компоненты.

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

Создайте веб-приложение ASP.NET, сделав следующее:

  1. Откройте Visual Studio и выберите Создать проект.

  2. В окне Создание нового проекта найдите и выберите Веб-приложение ASP.NET (.NET Framework) для C#, а затем нажмите кнопку Далее.

    Снимок экрана: диалоговое окно

  3. На вкладке Настройка нового проекта в разделе Имя проекта назовите приложение myfirstazurewebapp. В разделе Платформа выберите .NET Framework 4.8 и щелкните Создать.

    Снимок экрана: область

  4. Вы можете развернуть любой тип веб-приложения ASP.NET в Azure. В рамках этого краткого руководства выберите шаблон MVC.

  5. В разделе Аутентификация выберите Нет. В разделе Дополнительно выберите Поддержка Docker и снимите флажок Настроить для HTTPS. Нажмите кнопку создания.

    Снимок экрана: диалоговое окно

  6. Если файл Dockerfile не открылся автоматически, откройте его в обозревателе решений.

  7. Вам потребуется поддерживаемый родительский образ. Измените родительский образ, заменив строку FROM приведенным ниже кодом. Затем сохраните файл.

    FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
    
  8. В меню Visual Studio выберите Отладка>Запустить без отладки, чтобы запустить приложение локально.

    Снимок экрана: приложение, выполняющееся локально.

2. Публикация в Реестре контейнеров Azure

  1. Щелкните правой кнопкой мыши проект myfirstazurewebapp в обозревателе решений и выберите Опубликовать.

  2. На вкладке Целевой объект выберите Реестр контейнеров Docker и щелкните Далее.

    Снимок экрана: экран

  3. На вкладке Определенный целевой объект выберите Реестр контейнеров Azure и щелкните Далее.

    Снимок экрана: диалоговое окно

  4. Убедитесь, что на вкладке Публикациявыбрана правильная подписка. На вкладке Реестры контейнеров нажмите кнопку +, чтобы создать новый Реестр контейнеров Azure.

    Снимок экрана: экран

  5. Убедитесь, что на вкладке Созданиевыбрана правильная подписка. В разделе Группа ресурсов выберите Новая, введите в качестве имени myResourceGroup и щелкните ОК. В разделе Номер SKU выберите Базовый. В разделе Расположение реестра выберите расположение реестра и щелкните Создать.

    Снимок экрана: сведения о Реестре контейнеров Azure.

  6. На вкладке Публикация в разделе Реестр контейнеров выберите созданный реестр и щелкните Готово.

    Снимок экрана: экран

    Дождитесь завершения развертывания. Теперь на странице Публикация отображается имя репозитория. Нажмите кнопку Копировать, чтобы скопировать имя репозитория для последующего использования.

    Снимок экрана: выделено имя репозитория.

3. Создание пользовательского контейнера Windows

  1. Войдите на портал Azure.

  2. Выберите Создать ресурс в верхнем левом углу окна портала Azure.

  3. В разделе Популярные службы в подразделе Веб-приложение выберите Cоздать.

  4. В окне Создание веб-приложения выберите подписку и группу ресурсов. При необходимости можно создать новую группу ресурсов.

  5. Укажите имя приложения, например win-container-demo. Для параметра Публикация выберите вариант контейнер Docker, а для параметра Операционная система — значение Windows. Нажмите кнопку Далее: Docker , чтобы продолжить.

    Снимок экрана: диалоговое окно

  6. В поле Источник образа выберите Docker Hub, а для параметра Образ и тег укажите имя репозитория, скопированное в разделе Публикация в Реестре контейнеров Azure.

    Снимок экрана: диалоговое окно

    Если у вас есть пользовательский образ для веб-приложения в другом расположении, например реестре контейнеров Azure или любом другом частном репозитории, его можно настроить здесь. Чтобы продолжить, выберите Просмотр и создание.

  7. Проверьте все сведения и щелкните Создать, затем подождите, пока Azure создаст необходимые ресурсы. Снимок экрана: диалоговое окно

4. Переход к пользовательскому контейнеру

По завершении операции Azure отображается окно уведомления.

Снимок экрана: успешное развертывание.

  1. Щелкните Перейти к ресурсу.

  2. В обзоре этого ресурса перейдите по ссылке рядом с URL-адресом.

В браузере откроется следующая страница:

Снимок экрана: запуск пользовательского контейнера Windows.

Подождите несколько минут и повторите попытку, пока не отобразится домашняя страница ASP.NET по умолчанию.

Снимок экрана: выполнение пользовательского контейнера Windows.

Поздравляем! Вы запустили свой первый пользовательский контейнер Windows в службе приложений Azure.

5. Просмотр журналов запуска контейнера

Загрузка контейнера Windows может занять некоторое время. Чтобы просмотреть ход выполнения, перейдите по следующему URL-адресу, заменив <app_name>> именем приложения.

https://<app_name>.scm.azurewebsites.net/api/logstream

Потоковые журналы выглядят следующим образом:

2018-07-27T12:03:11  Welcome, you are now connected to log-streaming service.
27/07/2018 12:04:10.978 INFO - Site: win-container-demo - Start container succeeded. Container: facbf6cb214de86e58557a6d073396f640bbe2fdec88f8368695c8d1331fc94b
27/07/2018 12:04:16.767 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.017 INFO - Site: win-container-demo - Container start complete
27/07/2018 12:05:05.020 INFO - Site: win-container-demo - Container started successfully

6. Обновление в локальной среде и повторное развертывание

  1. В Visual Studio в обозревателе решений откройте Представления>Главная страница>Index.cshtml.

  2. Найдите тег HTML <div class="jumbotron"> в верхней области и замените его следующим кодом:

    <div class="jumbotron">
        <h1>ASP.NET in Azure!</h1>
        <p class="lead">This is a simple app that we've built that demonstrates how to deploy a .NET app to Azure App Service.</p>
    </div>
    
  3. Чтобы выполнить повторное развертывание в Azure, щелкните правой кнопкой мыши проект myfirstazurewebapp в обозревателе решений и выберите Опубликовать.

  4. На странице публикации выберите Опубликовать и дождитесь завершения публикации.

  5. Чтобы указать службе приложений извлечь новый образ из Docker Hub, перезапустите приложение. На странице приложения на портале щелкните Перезапустить>Да.

    Снимок экрана: страница

Снова перейдите к пользовательскому контейнеру. После обновления веб-страницы сначала должна появиться страница "Starting up" (Запуск) приложения, а через несколько минут должна отобразиться обновленная веб-страница.

Снимок экрана: обновленное веб-приложение в Azure.

7. Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.

В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.

Следующие шаги

Служба приложений Azure в Linux предоставляет предопределенные стеки приложений на платформе Linux с поддержкой определенных языков, например, .NET, PHP, Node.js и др. Вы также можете использовать пользовательский образ Docker для запуска веб-приложения в стеке приложений, который еще не определен в Azure. В этом кратком руководстве показано, как развернуть образ из Реестра контейнеров Azure (ACR) в Службе приложений.

Примечание.

Сведения о запуске контейнерных приложений в бессерверной среде см. в статье Контейнеры приложений.

Для работы с этим кратким руководством вам понадобится:

1. Создание реестра контейнеров

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

Создайте реестр контейнеров с помощью инструкций из краткого руководства по созданию частного реестра контейнеров с помощью портала Microsoft Azure.

Внимание

При создании реестра контейнеров Azure не забудьте установить для параметра Администратор значение Включить. Его также можно установить из раздела Ключи доступа на странице реестра на портале Azure. Этот параметр необходим для доступа к Службе приложений. Сведения об управляемом удостоверении см. в учебнике по развертыванию из ACR.

2. Вход

  1. Запустите Visual Studio Code.

  2. Выберите логотип Azure на панели действий, перейдите в обозреватель СЛУЖБЫ ПРИЛОЖЕНИЙ, а затем выберите Войти в Azure и следуйте инструкциям.

    Снимок экрана: вход в Azure в Visual Studio Code.

  3. Убедитесь, что в строке состояния внизу указан ваш адрес электронной почты учетной записи Azure. В обозревателе СЛУЖБЫ ПРИЛОЖЕНИЙ должна отобразиться подписка.

  4. На панели действий выберите логотип Docker. Убедитесь, что в обозревателе РЕЕСТРОВ отображается созданный реестр контейнеров.

    Снимок экрана: раздел

3. Проверка предварительных требований

Убедитесь, что у вас установлен и работает Docker. Следующая команда отобразит версию Docker, если она выполняется.

docker --version

4. Создание и сборка образа

  1. В Visual Studio Code откройте пустую папку и добавьте файл Dockerfile. В Dockerfile вставьте содержимое в зависимости от требуемой языковой платформы:
FROM mcr.microsoft.com/appsvc/dotnetcore:lts

ENV PORT 8080
EXPOSE 8080

ENV ASPNETCORE_URLS "http://*:${PORT}"

ENTRYPOINT ["dotnet", "/defaulthome/hostingstart/hostingstart.dll"]

В этом файле Dockerfile родительский образ является одним из встроенных контейнеров .NET Службы приложений Azure.

  1. Откройте палитру команди введите Образы Docker: сборка образа. Нажмите клавишу Ввод, чтобы выполнить эту команду.

  2. В поле тега образа укажите нужный тег в следующем формате: <acr-name>.azurecr.io/<image-name>:<tag>, где <acr-name> — это имя созданного вами реестра контейнеров. Нажмите ВВОД.

  3. Когда сборка образа завершится, щелкните Обновить в верхней части обозревателя ОБРАЗОВ и убедитесь, что образ успешно создан.

    Снимок экрана: созданный образ с тегом.

5. Развертывание в реестре контейнеров

  1. На панели действий щелкните значок Docker. В обозревателе образов найдите только что созданный образ.

  2. Разверните образ, щелкните правой кнопкой мыши нужный тег и выберите Отправить.

  3. Убедитесь, что тег образа начинается с <acr-name>.azurecr.io, и нажмите клавишу Ввод.

  4. Когда Visual Studio Code закончит передачу образа в реестр контейнеров, щелкните Обновить в верхней части обозревателя РЕЕСТРОВ и убедитесь, что образ успешно отправлен.

    Снимок экрана: образ, развернутый в реестре контейнеров Azure.

6. Развертывание в Службе приложений

  1. В обозревателе реестров разверните образ, щелкните тег правой кнопкой мыши и выберите Развернуть образ в Службе приложений Azure.
  2. Следуя инструкциям на экране, выберите подписку, глобально уникальное имя приложения, группу ресурсов и план Службы приложений. Выберите ценовую категорию B1 Basic (B1 Базовый) и регион.

После развертывания приложение будет доступно по адресу http://<app-name>.azurewebsites.net.

Группа ресурсов — это именованная коллекция всех ресурсов вашего приложения в Azure. Например, группа ресурсов может содержать ссылку на веб-сайт, базу данных и функцию Azure.

План Службы приложений определяет физические ресурсы, которые будут использоваться для размещения веб-сайта. В этом кратком руководстве используется план размещения Базовый в инфраструктуре Linux. Это означает, что сайт будет размещаться на компьютере Linux вместе с другими веб-сайтами. Если начать работу с планом Базовый, можно использовать портал Azure для увеличения масштаба, чтобы ваш сайт был единственным на компьютере. Сведения о ценах см на странице цен на Службу приложений.

7. Просмотр веб-сайта

На панели вывода отображается состояние операций развертывания. После завершения операции щелкните Открыть сайт во всплывающем уведомлении, чтобы открыть сайт в браузере.

8. Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.

В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.

Следующие шаги

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

Приложение Службы приложений Azure извлекает образ из реестра контейнеров при каждом запуске. При перестроении образа необходимо просто отправить его в реестр контейнеров, и приложение будет получать при перезапуске его обновленную версию. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.

Другие расширения Azure:

Служба приложений Azure в Linux предоставляет предопределенные стеки приложений на платформе Linux с поддержкой определенных языков, например, .NET, PHP, Node.js и др. Вы также можете использовать пользовательский образ Docker для запуска веб-приложения в стеке приложений, который еще не определен в Azure. В этом кратком руководстве показано, как развернуть образ из Реестра контейнеров Azure в Службе приложений Azure.

Примечание.

Сведения о запуске контейнерных приложений в бессерверной среде см. в статье Контейнеры приложений.

Для работы с этим кратким руководством вам понадобится:

1. Клонирование репозитория с примерами

Клонируйте пример приложения .NET 6.0 с помощью следующей команды:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

2. Отправка образа в Реестр контейнеров Azure

Убедитесь, что вы находитесь в корневой папке клонированного репозитория. Этот репозиторий содержит файл Dockerfile.linux.

  1. Войдите в интерфейс командной строки Azure.

    az login
    
  2. Войдите в Реестр контейнеров Azure.

    az acr login -n <your_registry_name>
    
  3. Создание образа контейнера. Мы назвали образ dotnetcore-docs-hello-world-linux.

    docker build -f Dockerfile.linux -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux . 
    
  4. Отправьте образ контейнера в Реестр контейнеров Azure.

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-linux:latest
    

    Примечание.

    Dockerfile выбирает порт 80 автоматически. Дополнительные сведения о настройке контейнера см. в статье Настройка пользовательского контейнера.

3. Развертывание в Azure

Войдите на портал Azure.

Войдите на портал Azure.

Создание ресурсов Azure

  1. В поле поиска введите службы приложений. В разделе Службы выберите Службы приложений.

    Снимок экрана: поиск по строке

  2. На странице Службы приложений выберите Создать.

  3. На вкладке Основные сведения в разделе Сведения о проекте убедитесь, что выбрана правильная подписка, и при необходимости щелкните Создать группу ресурсов. Введите myResourceGroup в качестве имени.

    Снимок экрана: раздел сведений о проекте, в котором вы выбираете подписку Azure и группу ресурсов для веб-приложения.

  4. В разделе Сведения об экземпляре введите глобально уникальное имя веб-приложения и щелкните Контейнер Docker. Выберите Linux в поле Операционная система. Выберите регион для обслуживания приложения.

    Снимок экрана: раздел

  5. В разделе План Службы приложений выберите Создать план Службы приложений. Введите myAppServicePlan в качестве имени. Чтобы перейти на уровень "Бесплатный", выберите Изменить размер, откройте вкладку Разработка и тестирование, выберите F1 и в нижней части страницы нажмите кнопку Применить.

    Снимок экрана: раздел учетной записи администратора, в котором вы указываете имя пользователя и пароль администратора.

  6. Нажмите кнопку Далее: Docker > в нижней части страницы.

  7. На вкладке Docker выберите Один контейнер в разделе Параметры и Реестр контейнеров Azure в поле Источник образа. В разделе Параметры Реестра контейнеров Azure задайте следующие значения:

    • Реестр: выберите Реестр контейнеров Azure.
    • Образ: выберите dotnetcore-docs-hello-world-linux.
    • Тег: выберите последняя версия.

    Снимок экрана: параметры Реестра контейнеров Azure.

  8. В нижней части страницы нажмите кнопку Просмотр и создание.

    Снимок экрана: кнопка

  9. После выполнения проверки нажмите кнопку Создать в нижней части страницы.

  10. По завершении развертывания нажмите кнопку Перейти к ресурсу.

    Снимок экрана: следующий шаг для перехода к ресурсу.

4. Переход в приложение

Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.

Снимок экрана: развернутое приложение.

5. Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.

В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.

Следующие шаги

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

Приложение Службы приложений Azure извлекает образ из реестра контейнеров при каждом запуске. При перестроении образа необходимо просто отправить его в реестр контейнеров, и приложение будет получать при перезапуске его обновленную версию. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.

Служба приложений Azure предоставляет предопределенные стеки приложений на платформе Windows, например ASP.NET или Node.js, выполняющиеся в IIS. Однако предварительно настроенные стеки приложений блокируют операционную систему и мешают доступу на более низком уровне. Пользовательские контейнеры Windows не налагают таких ограничений и позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.

В этом кратком руководстве показано, как развернуть приложение ASP.NET в образ Windows из Реестра контейнеров Azure в Службе приложений Azure.

Для работы с этим кратким руководством вам понадобится:

1. Клонирование репозитория с примерами

Клонируйте пример приложения .NET 6.0 с помощью следующей команды:

git clone https://github.com/Azure-Samples/dotnetcore-docs-hello-world.git

2. Отправка образа в Реестр контейнеров Azure

Убедитесь, что вы находитесь в корневой папке клонированного репозитория. Этот репозиторий содержит файл Dockerfile.windows. Мы будем использовать Windows Nano Server Long Term Servicing Channel (LTSC) 2022 в качестве базовой операционной системы, явно вызывая базу Windows.

Примечание.

Хотя это контейнер Windows, в пути все равно нужно использовать косые черты. Дополнительные сведения см. в разделе Создание Dockerfile.

  1. Войдите в интерфейс командной строки Azure.

    az login
    
  2. Войдите в Реестр контейнеров Azure.

    az acr login -n <your_registry_name>
    
  3. Создание образа контейнера. Мы назвали образ dotnetcore-docs-hello-world-windows.

    docker build -f Dockerfile.windows -t <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows . 
    
  4. Отправьте образ контейнера в Реестр контейнеров Azure.

    docker push <your_registry_name>.azurecr.io/dotnetcore-docs-hello-world-windows:latest
    

    Примечание.

    Dockerfile выбирает порт 80 автоматически. Дополнительные сведения о настройке контейнера см. в статье Настройка пользовательского контейнера.

3. Развертывание в Azure

Войдите на портал Azure.

Войдите на портал Azure.

Создание ресурсов Azure

  1. В поле поиска введите службы приложений. В разделе Службы выберите Службы приложений.

    Снимок экрана: поиск по строке

  2. На странице Службы приложений выберите Создать.

  3. На вкладке Основные сведения в разделе Сведения о проекте убедитесь, что выбрана правильная подписка, и при необходимости щелкните Создать группу ресурсов. Введите myResourceGroup в качестве имени.

    Снимок экрана: раздел сведений о проекте, в котором вы выбираете подписку Azure и группу ресурсов для веб-приложения.

  4. В разделе Сведения об экземпляре введите глобально уникальное имя веб-приложения и щелкните Контейнер Docker. Выберите Windows в поле Операционная система. Выберите регион для обслуживания приложения.

    Снимок экрана: раздел

  5. В разделе План Службы приложений выберите Создать план Службы приложений. Введите myAppServicePlan в качестве имени. Чтобы перейти на уровень "Бесплатный", выберите Изменить размер, откройте вкладку Разработка и тестирование, выберите P1v3 и в нижней части страницы нажмите кнопку Применить.

    Снимок экрана: раздел учетной записи администратора, в котором вы указываете имя пользователя и пароль администратора.

  6. Нажмите кнопку Далее: Docker > в нижней части страницы.

  7. На вкладке Docker выберите Реестр контейнеров Azure в поле Источник образа. В разделе Параметры Реестра контейнеров Azure задайте следующие значения:

    • Реестр: выберите Реестр контейнеров Azure.
    • Образ: выберите dotnetcore-docs-hello-world-windows.
    • Тег: выберите последняя версия.

    Снимок экрана: параметры Реестра контейнеров Azure.

  8. В нижней части страницы нажмите кнопку Просмотр и создание.

    Снимок экрана: кнопка

  9. После выполнения проверки нажмите кнопку Создать в нижней части страницы.

  10. По завершении развертывания нажмите кнопку Перейти к ресурсу.

    Снимок экрана: следующий шаг для перехода к ресурсу.

4. Переход в приложение

Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.

Снимок экрана: Служба приложений Windows с сообщением о том, что контейнеры без открытого порта будут работать в фоновом режиме.

Обратите внимание, что операционная система узла отображается в нижнем колонтитуле, указывая на то, что мы работаем в контейнере Windows.

5. Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.

В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.

Следующие шаги

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

Приложение Службы приложений Azure извлекает образ из реестра контейнеров при каждом запуске. При перестроении образа необходимо просто отправить его в реестр контейнеров, и приложение будет получать при перезапуске его обновленную версию. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.

Служба приложений Azure предоставляет предопределенные стеки приложений на платформе Windows, например ASP.NET или Node.js, выполняющиеся в IIS. Однако предварительно настроенные стеки приложений блокируют операционную систему и мешают доступу на более низком уровне. Пользовательские контейнеры Windows не налагают таких ограничений и позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.

В этом кратком руководстве показано, как развернуть приложение ASP.NET в образ Windows из Реестра артефактов (Майкрософт) в Службе приложений Azure.

Для работы с этим кратким руководством вам понадобится:

1. Подключение к Azure

Войдите в учетную запись Azure с помощью команды Connect-AzAccount и выполните следующий запрос:

Connect-AzAccount

2. Создание группы ресурсов

Создайте группу ресурсов с помощью команды New-AzResourceGroup. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.

В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus. Чтобы просмотреть все поддерживаемые расположения для службы приложений, выполните команду Get-AzLocation.

New-AzResourceGroup -Name myResourceGroup -Location eastus

По завершении команда возвращает Login Succeeded.

3. Создание плана Службы приложений

Создайте новый план Службы приложений с помощью команды New-AzAppServicePlan.

В следующем примере создается план Службы приложений с именем myAppServicePlan и ценовой категорией PremiumV3 (-Tier PremiumV3). Параметр -HyperV позволяет указать контейнер Windows.

New-AzAppServicePlan -Name myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -Tier PremiumV3 -HyperV

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

Создайте приложение с помощью команды New-AzWebApp:

New-AzWebApp -Name myWebApp -AppServicePlan myAppServicePlan -Location eastus -ResourceGroupName myResourceGroup -ContainerImageName mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • Параметр Name позволяет указать имя веб-приложения.
  • Параметр AppServicePlan позволяет указать имя плана Службы приложений.
  • Параметр Location позволяет указать расположение.
  • Параметр ResourceGroupName позволяет указать имя группы ресурсов.
  • Параметр ContainerImageName позволяет указать имя образа контейнера и необязательный тег.

Выполнение команды может занять несколько минут.

5. Переход в приложение

Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.

Снимок экрана: Служба приложений Windows с сообщением о том, что контейнеры без открытого порта будут работать в фоновом режиме.

6. Очистка ресурсов

Удалите группу ресурсов с помощью команды Remove-AzResourceGroup.

Remove-AzResourceGroup myResourceGroup

Следующие шаги

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

Приложение Службы приложений Azure извлекает образ из реестра контейнеров при каждом запуске. При перестроении образа необходимо просто отправить его в реестр контейнеров, и приложение будет получать при перезапуске его обновленную версию. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.

Служба приложений Azure предоставляет предопределенные стеки приложений на платформе Windows, например ASP.NET или Node.js, выполняющиеся в IIS. Однако предварительно настроенные стеки приложений блокируют операционную систему и мешают доступу на более низком уровне. Пользовательские контейнеры Windows не налагают таких ограничений и позволяют разработчикам полностью настраивать контейнеры и предоставлять контейнерным приложениям полный доступ к функциям Windows.

В этом кратком руководстве показано, как развернуть приложение ASP.NET в образ Windows из Реестра артефактов (Майкрософт) в Службе приложений Azure.

Для работы с этим кратким руководством вам понадобится:

1. Подключение к Azure

Войдите в учетную запись Azure с помощью команды az login и выполните следующий запрос:

az login

2. Создание группы ресурсов

Создайте группу ресурсов с помощью команды az group create. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.

В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus. Чтобы просмотреть все поддерживаемые расположения для службы приложений, выполните команду az appservice list-locations.

az group create --name myResourceGroup --location eastus

3. Создание плана Службы приложений

Создайте план Службы приложений в группе ресурсов с помощью команды az appservice plan create.

В следующем примере создается план Службы приложений с именем myAppServicePlan и ценовой категорией P1V3 (--sku P1V3).

az appservice plan create --resource-group myResourceGroup --location eastus --name myAppServicePlan --hyper-v --sku p1v3

Примечание.

Если появится ошибка The behavior of this command has been altered by the following extension: appservice-kube (Поведение этой команды было изменено следующим расширением: appservice-kube), удалите расширение appservice-kube.

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

Создайте пользовательское контейнерное веб-приложение в рамках плана Службы приложений myAppServicePlan с помощью команды az webapp create. Обязательно замените myContainerApp уникальным именем приложения (допустимые символы: a-z, 0-9 и -).

az webapp create --name myContainerApp --plan myAppServicePlan --location eastus --resource-group myResourceGroup --deployment-container-image-name mcr.microsoft.com/azure-app-service/windows/parkingpage:latest
  • Параметр Name позволяет указать имя веб-приложения.
  • Параметр AppServicePlan позволяет указать имя плана Службы приложений.
  • Параметр Location позволяет указать расположение.
  • Параметр ResourceGroupName позволяет указать имя группы ресурсов.
  • Параметр deployment-container-image-name позволяет указать имя образа контейнера и необязательный тег.

5. Переход в приложение

Найдите развернутое приложение в веб-браузере по URL-адресу http://<app-name>.azurewebsites.net.

Снимок экрана: Служба приложений Windows с сообщением о том, что контейнеры без открытого порта будут работать в фоновом режиме.

6. Очистка ресурсов

Удалите группу ресурсов с помощью команды az group delete:

az group delete --no-wait --name <resource_group>

Следующие шаги

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

Приложение Службы приложений Azure извлекает образ из реестра контейнеров при каждом запуске. При перестроении образа необходимо просто отправить его в реестр контейнеров, и приложение будет получать при перезапуске его обновленную версию. Чтобы проинструктировать приложение немедленно извлечь обновленный образ, перезапустите его.