Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Примечание.
Начиная с 1 июня 2024 года только что созданные приложения службы приложений могут создать уникальное имя узла по умолчанию, использующее соглашение об именовании <app-name>-<random-hash>.<region>.azurewebsites.net
. Например: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
. Существующие имена приложений остаются неизменными.
Дополнительные сведения см. в записи блога о создании веб-приложения с уникальным именем узла по умолчанию.
В этой статье показано, как развернуть код в виде пакета ZIP, WAR, JAR или EAR в Службе приложений Azure. В ней также показано, как развертывать отдельные файлы в Службе приложений отдельно от пакета приложения.
Предварительные условия
Чтобы выполнить действия, описанные в этой статье, создайте приложение службы приложений или используйте приложение, созданное для другого руководства.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Создание ZIP-пакета проекта
Внимание
При создании ZIP-пакета для развертывания не включайте корневой каталог. Включите только файлы и каталоги в корневом каталоге. Если вы скачали репозиторий GitHub в виде ZIP-файла, вы не можете развернуть этот файл как есть в Службе приложений. GitHub добавляет вложенные каталоги на верхнем уровне, которые не совместимы со Службой приложений.
В окне терминала на локальном компьютере перейдите к корневому каталогу проекта приложения.
Этот каталог должен содержать файл записи веб-приложения, например index.html, index.php и app.js. Кроме того, в нем могут содержаться файлы управления пакетами, например project.json, composer.json, package.json, bower.json и requirements.txt.
Если вы не хотите, чтобы Служба приложений запускала автоматизацию развертывания для вас, выполните все задачи сборки, например, npm
, bower
, gulp
, composer
и pip
. Убедитесь, что у вас есть все файлы, необходимые для запуска приложения. Этот шаг является обязательным, если вы хотите запустить пакет напрямую.
Создайте ZIP-архив всего содержимого проекта. Для dotnet
проектов добавьте все в выходной каталог dotnet publish
команды, за исключением самого выходного каталога. Например, следующая команда в терминале для создания ZIP-пакета содержимого текущего каталога:
# Bash
zip -r <file-name>.zip .
# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip
Развертывание ZIP-пакета
При развертывании ZIP-пакета Служба приложений распаковывает его содержимое в каталоге по умолчанию для вашего приложения: D:\home\site\wwwroot
для Windows, /home/site/wwwroot
для Linux.
Развертывание из ZIP-пакета осуществляется с помощью той же службы Kudu, которая обеспечивает развертывания, основанные на непрерывной интеграции. Kudu поддерживает следующие возможности развертывания из ZIP-пакета:
- удаление файлов, оставшихся после предыдущего развертывания;
- включение процесса сборки по умолчанию, в том числе восстановления пакетов;
- настройку развертывания, в том числе выполнение скриптов развертывания;
- журналы развертывания.
- Ограничение размера пакета в 2048 мегабайтах.
Примечание.
Файлы в ZIP-пакете копируются только в том случае, если их метки времени не совпадают с уже развернутыми.
Использование пользовательского интерфейса zip-развертывания в Kudu
Откройте браузер и перейдите по адресу https://<app_name>.scm.azurewebsites.net/ZipDeployUI
. Для названия приложения см. заметку наверху.
Загрузите ZIP-пакет, созданный при выполнении действий из раздела Создание ZIP-пакета проекта, перетащив его в область проводника на веб-странице.
Во время развертывания значок в верхнем правом углу показывает ход выполнения в процентах. Кроме того, на странице внизу области обозревателя отображаются подробные сообщения об операции. После завершения развертывания последнее сообщение должно сказать об успешном развертывании.
Эта точка не поддерживается в данный момент для служб приложений Linux. Вместо этого рекомендуется использовать FTP или API развертывания ZIP-файла.
Без пользовательского интерфейса zip-развертывания в Kudu
Разверните ZIP-пакет для веб-приложения с помощью команды az webapp deploy. Команда CLI использует API публикации Kudu для развертывания файлов и является полностью настраиваемой.
В приведенном ниже примере ZIP-пакет отправляется на сайт. Укажите путь к локальному ZIP-пакету для --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>
Эта команда перезапускает приложение после развертывания ZIP-пакета.
Включите автоматизацию сборки для zip-деплоя
По умолчанию подсистема развертывания предполагает, что ZIP-пакет готов к запуску в исходном виде и автоматизация сборки не используется. Чтобы разрешить ту же автоматизацию сборки, что и при развертывании Git, задайте параметр приложения SCM_DO_BUILD_DURING_DEPLOYMENT
, выполнив в Cloud Shell следующую команду:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Дополнительные сведения см. в документации по Kudu.
Развертывание пакетов WAR, JAR и EAR
Вы можете развернуть пакет WAR, JAR или EAR в Службе приложений, чтобы запустить веб-приложение Java с помощью Azure CLI, PowerShell или API публикации Kudu.
Процесс развертывания, показанный здесь, помещает пакет в общую папку содержимого приложения с правильным соглашением об именовании и структурой каталогов. Дополнительные сведения см. в справочнике API публикации Kudu. Мы рекомендуем использовать такой подход. При развертывании пакетов WAR/JAR/EAR с помощью FTP или WebDeploy могут возникнуть неизвестные сбои из-за ошибок в именовании или структуре.
Разверните WAR-пакет в Tomcat или JBoss EAP с помощью команды az webapp deploy. Укажите путь к локальному пакету Java для --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
Команда CLI использует API публикации Kudu для развертывания пакетов и является полностью настраиваемой.
Развертывание отдельных файлов
Разверните скрипт запуска, библиотеку и статический файл в веб-приложении при помощи команды az webapp deploy с параметром --type
.
Если скрипт запуска развернут таким образом, Служба приложений автоматически использует его для запуска приложения.
Команда CLI использует API публикации Kudu для развертывания файлов. Команда может быть полностью кастомизирована.
Развертывание скрипта запуска
az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup
Развертывание файла библиотеки
az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib
Развертывание статического файла
az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static
Развертывание в приложениях, защищенных сетью
В зависимости от конфигурации сети веб-приложения прямой доступ к приложению из среды разработки может быть заблокирован (см . раздел "Развертывание на защищенных сетью сайтов" и "Развертывание на сетевых защищенных сайтах " , часть 2). Вместо отправки пакета или файла в веб-приложение можно опубликовать его в системе хранения, доступной из веб-приложения, и активировать приложение для извлечения ZIP-файла из расположения хранилища.
Удаленный URL-адрес может быть любым общедоступным расположением, но лучше всего использовать контейнер блоб-хранилища с SAS-ключом для защиты.
az webapp deploy
Используйте команду, как и в других разделах, но применяйте --src-url
вместо --src-path
. Следующий пример использует параметр --src-url
для указания URL-адреса ZIP-файла, размещенного в учетной записи службы хранения Azure.
az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip
Справочник по API публикации Kudu
API publish
в Kudu дает возможность задать в команде CLI те же параметры, что и в запросе URL-адреса. Для аутентификации с помощью Kudu REST API мы рекомендуем использовать аутентификацию токенов, однако вы также можете использовать базовую аутентификацию с учетными данными развертывания вашего приложения.
В следующей таблице показаны доступные параметры запроса, их допустимые значения и описания.
Ключ | Допустимые значения | Описание: | Обязательное поле | Тип |
---|---|---|---|---|
type |
war |jar |ear |lib |startup |static |zip |
Тип развертываемого артефакта. Он задает целевой путь по умолчанию и сообщает веб-приложению, как следует выполнять развертывание. - type=zip : развертывание ZIP-пакета путем распаковки содержимого в /home/site/wwwroot . Параметр target-path указывать не обязательно. - type=war : развертывание WAR-пакета. По умолчанию WAR-пакет развертывается в папке /home/site/wwwroot/app.war . Целевой путь можно указать с помощью параметра target-path . - type=jar : развертывание пакета JAR в /home/site/wwwroot/app.jar . Параметр target-path игнорируется - type=ear : развертывание пакета EAR в /home/site/wwwroot/app.ear . Параметр target-path игнорируется - type=lib : развертывание файла библиотеки JAR. По умолчанию файл развертывается в папке /home/site/libs . Целевой путь можно указать с помощью параметра target-path . - type=static : развертывание статического файла, например скрипта. По умолчанию файл развертывается в папке /home/site/wwwroot . - type=startup : развертывание скрипта, который Служба приложений автоматически использует для запуска приложения. По умолчанию скрипт развертывается в папке D:\home\site\scripts\<name-of-source> (в Windows) или home/site/wwwroot/startup.sh (в Linux). Целевой путь можно указать с помощью параметра target-path . |
Да | Строка |
restart |
true |false |
По умолчанию API перезапускает приложение после операции развертывания (restart=true ). Чтобы развернуть несколько артефактов, предотвратите перезапуск во всех развертываниях, кроме последнего, задав параметр restart=false . |
Нет | Логический |
clean |
true |false |
Указывает, следует ли очистить (удалить) целевое развертывание, прежде чем развертывать артефакт в этом расположении. | Нет | Логический |
ignorestack |
true |false |
API публикации использует переменную среды WEBSITE_STACK , чтобы выбрать безопасные значения по умолчанию в зависимости от языкового стека сайта. Задав для этого параметра значение false , можно отключить параметры по умолчанию, связанные с языком. |
Нет | Логический |
target-path |
Абсолютный путь | Абсолютный путь для развертывания артефакта. Например, "/home/site/deployments/tools/driver.jar" , "/home/site/scripts/helper.sh" . |
Нет | Строка |
Связанный контент
Чтобы изучить более сложные сценарии развертывания, ознакомьтесь с развертыванием в Azure с помощью Git. Развертывание в Azure на основе Git обеспечивает систему управления версиями, восстановление пакета, MSBuild и многое другое.