Развертывание приложения в службе приложений Azure с помощью FTP или FTPS

В этой статье показано, как с помощью FTP или FTPS развернуть веб-приложение, серверную частью мобильного приложения или приложение API в службе приложений Azure.

Конечная точка FTP или FTPS для приложения уже активна. Чтобы обеспечить развертывание через FTP или FTPS, не требуется никаких настроек.

Примечание.

Если обычная проверка подлинности FTP отключена, развертывание FTP/S не работает, и вы не можете просматривать или настраивать учетные данные FTP в Центре развертывания приложения.

Получить учетные данные развертывания

  1. Следуйте инструкциям в статье Настройка учетных данных развертывания службы приложений Azure, чтобы скопировать учетные данные области приложений или задать учетные данные области пользователей. Подключиться к конечной точке FTP/S приложения можно с помощью любых из этих учетных данных.

  2. Составьте имя пользователя FTP в следующем формате в зависимости от выбранной области учетных данных:

    Область приложений Область пользователей
    <app-name>\$<app-name> <app-name>\<deployment-user>

    В Службе приложений конечная точка FTP/S является общей для всех приложений. Так как учетные данные области пользователей не связаны с конкретным ресурсом, необходимо добавить имя пользователя области пользователей в начало имени приложения, как показано выше.

Получение конечной точки FTP/S

На той же странице управления для приложения, на которой вы скопировали учетные данные развертывания (Центр развертывания>FTP Credentials (Учетные данные FTP)), скопируйте конечную точку FTPS.

Развертывание файлов в Azure

  1. Подключитесь к приложению из клиента FTP (например, Visual Studio, Cyberduck или WinSCP), используя полученные сведения.
  2. Скопируйте файлы и соответствующую им структуру каталогов в Azure в каталог /site/wwwroot (или в каталог веб-заданий /site/wwwroot/App_Data/Jobs/).
  3. Перейдите по URL-адресу приложения, чтобы убедиться, что приложение работает правильно.

Примечание.

В отличие от развертываний на основе Git и развертываний из ZIP-файла, развертывание по FTP не поддерживает автоматизацию сборки, например для таких действий:

  • восстановление зависимостей (например, в инструментах автоматизации NuGet, NPM, PIP и Composer);
  • компиляция двоичных файлов .NET;
  • создание файла Web.config (вот пример для Node.js).

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

Принудительное применение FTPS

Для повышения безопасности доступ через FTP следует разрешать только по протоколу TLS/SSL. Вы также можете отключить и FTP, и FTPS, если развертывание FTP вам не нужно.

  1. На странице ресурсов приложения на портале Azure выберите Конфигурация>Общие параметры в области навигации слева.

  2. Чтобы отключить незашифрованный протокол FTP, выберите значение Только FTPS для параметра Состояние FTP. Чтобы полностью отключить FTP и FTPS, выберите Отключено. После завершения выберите Сохранить. Если используется только FTPS, необходимо применить протокол TLS 1.2 или более поздней версии, перейдя на страницу параметров TLS/SSL веб-приложения. TLS 1.0 и 1.1 не поддерживаются только с FTPS.

    Disable FTP/S

Что происходит с моим приложением во время развертывания?

Все официально поддерживаемые методы развертывания вносят изменения в файлы в папке /home/site/wwwroot вашего приложения. Эти файлы используются для запуска приложения. Поэтому, возможно, не удастся выполнить развертывание из-за заблокированных файлов. Кроме того, из-за неодновременного обновления всех файлов приложение может вести себя непредсказуемо во время развертывания. Такое поведение нежелательно для приложения, с которым работают клиенты. Избежать этих проблем можно несколькими указанными ниже способами.

Устранение неполадок с развертыванием FTP

Как устранять неполадки с развертыванием FTP?

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

Ошибки развертывания обычно приводят к тому, что в приложении совсем не развертываются файлы или развертываются не те файлы, которые нужны. Для устранения неполадок изучите данные о развертывании FTP или попробуйте применить альтернативный путь развертывания (например, систему управления версиями).

Проблемы с приложением среды выполнения обычно приводят к тому, что приложение ведет себя отличным от ожидаемого образом после правильного развертывания нужных файлов. Для устранения неполадок следует сосредоточиться на поведении кода в среде выполнения или на конкретных сценариях сбоя.

Чтобы отделить проблемы развертывания от проблем среды выполнения, воспользуйтесь рекомендациями из этой статьи.

Мне не удается подключиться по FTP для публикации кода. Как мне решить эту проблему?

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

  • Порт подключения для управления FTP: 21, 990.
  • Порт подключения к данным FTP: 989, 10001–10300.

Как применить пассивный режим для подключения к FTP в Службе приложений Azure?

Служба приложений Azure поддерживает подключение как в активном, так и в пассивном режимах. Пассивный режим является предпочтительным, так как компьютеры развертывания обычно защищены брандмауэром (встроенным в операционную систему или развернутым отдельно в домашней или корпоративной сети). См. также пример из документации по WinSCP.

Почему при попытке подключения через FTPS происходит сбой подключения с помощью явного шифрования?

FTPS позволяет установить безопасное подключение TLS явным или неявным способом.

  • При подключении с неявным шифрованием подключение устанавливается через порт 990.
  • При подключении с явным шифрованием подключение устанавливается через порт 21.

Используемый формат URL-адреса может повлиять на успешное подключение, а также зависит от используемого клиентского приложения. На портале отображается URL-адрес ftps://, но обратите внимание:

  • Если URL-адрес, с которым ftp://вы подключаетесь, подразумевается, что подключение должно находиться через порт 21.
  • Если оно начинается ftps://с, то соединение подразумевается неявным и на порту 990.

Не следует смешивать оба типа, например пытаться подключиться к ftps:// порту 21 и использовать порт 21, так как он не сможет подключиться, даже если вы хотите выполнить явное шифрование. Это связано с явным подключением, начиная с обычного FTP-подключения перед методом AUTH.

Как определить метод, который использовался для развертывания службы приложение Azure?

Вы можете узнать, как было развернуто приложение, проверка параметры приложения. Если приложение было развернуто с помощью URL-адреса внешнего пакета, вы увидите WEBSITE_RUN_FROM_PACKAGE параметр в параметрах приложения со значением URL-адреса. Или если оно было развернуто с помощью ZIP-развертывания, вы увидите WEBSITE_RUN_FROM_PACKAGE параметр со значением 1. Если приложение было развернуто с помощью Azure DevOps, вы увидите журнал развертывания на портале Azure DevOps. Если используется Функции Azure Core Tools, в портал Azure появится журнал развертывания.

Дополнительные ресурсы