Непрерывное развертывание для Функций Azure

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

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

В этой статье показано, как настроить развертывания непрерывного кода в приложении-функции в Azure с помощью Центра развертывания в портал Azure. Вы также можете настроить непрерывную интеграцию с помощью Azure CLI.

Функции поддерживают эти источники для непрерывного развертывания в приложении:

Обслуживание кода проекта в Azure Repos, одной из служб в Azure DevOps. Поддерживает как Git, так и система управления версиями Team Foundation. Используется с поставщиком сборки Azure Pipelines). Дополнительные сведения см. в статье "Что такое Azure Repos?

Вы также можете подключить приложение-функцию к внешнему репозиторию Git, но для этого требуется ручная синхронизация. Дополнительные сведения о вариантах развертывания см. в разделе "Технологии развертывания" в Функции Azure.

Примечание.

Варианты непрерывного развертывания, описанные в этой статье, относятся к развертываниям только для кода. Сведения о развертывании контейнерных приложений-функций см. в статье "Включение непрерывного развертывания контейнеров в Azure".

Требования

Для успешного выполнения непрерывного развертывания структура каталогов должна быть совместима с базовой структурой каталога, который требуется Функциям Azure.

Код всех функций приложения-функции хранится в корневой папке проекта, содержащей файл конфигурации главного узла. Файл host.json содержит конфигурацию среды выполнения. Он находится в корневой папке приложения-функции. Папка bin содержит пакеты и другие файлы библиотек, необходимые для работы приложения-функции. Структура папок, необходимая для приложения-функции, зависит от языка:

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

Поставщики сборок

Создание проекта кода является частью процесса развертывания. Конкретный процесс сборки зависит от конкретного языкового стека, операционной системы и плана размещения. Сборки можно выполнять локально или удаленно, в зависимости от конкретного размещения. Дополнительные сведения см. в разделе "Удаленная сборка".

Функции поддерживают следующие поставщики сборок:

Azure Pipelines — это одна из служб в Azure DevOps и поставщик сборки по умолчанию для проектов Azure Repos. Конвейеры также можно использовать для создания проектов из GitHub. В конвейерах есть AzureFunctionApp задача, предназначенная специально для развертывания в Функции Azure. Эта задача обеспечивает контроль над тем, как проект создается, упаковывается и развертывается.

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

Центр развертывания

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

В портал Azure перейдите на страницу приложения-функции и выберите Центр развертывания в разделе "Развертывание" в области слева.

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

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

Развертывания из Azure Repos, использующие Azure Pipelines, определяются на портале Azure DevOps, а не из приложения-функции. Пошаговое руководство по созданию развертывания на основе конвейеров из Azure Repos см. в статье "Непрерывная доставка с помощью Azure Pipelines".

После завершения развертывания все коды из указанного источника развертываются в приложении. В этот момент изменения в источнике развертывания активируют развертывание этих изменений в вашем приложении-функции в Azure.

Рекомендации

При планировании стратегии непрерывного развертывания следует учитывать следующие рекомендации.

  • GitHub — единственный источник, который в настоящее время поддерживает непрерывное развертывание для приложений Linux, работающих в плане потребления, который является популярным вариантом размещения для приложений Python.

  • Единицей для развертывания для функций в Azure является приложение-функция. Все функции в приложении-функции развертываются одновременно и в одном пакете.

  • После включения непрерывного развертывания доступ к коду функции в портал Azure настраивается только для чтения, так как источник истины, как известно, находится в другом месте.

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

  • Центр развертывания не поддерживает непрерывное развертывание для приложения-функции с ограничениями на входящий сетевой трафик. Вместо этого необходимо настроить рабочий процесс поставщика сборки непосредственно в GitHub или Azure Pipelines. Эти рабочие процессы также требуют использования виртуальной машины в той же виртуальной сети, что и приложение-функция, как локальный агент (конвейеры) или локальный runner (GitHub).

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

В настоящее время можно настроить непрерывное развертывание из GitHub с помощью GitHub Actions при создании приложения-функции в портал Azure. Это можно сделать на вкладке "Развертывание" на странице "Создание приложения-функции".

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

Включение базовой проверки подлинности для развертываний

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

Внимание

При использовании базовой проверки подлинности учетные данные отправляются в виде ясного текста. Чтобы защитить эти учетные данные, необходимо получить доступ только к scm конечной точке через зашифрованное подключение (HTTPS) при использовании базовой проверки подлинности. Дополнительные сведения см. в разделе "Безопасное развертывание".

Чтобы включить базовую проверку подлинности в конечной точке scm , выполните следующие действия.

  1. На портале Azure перейдите к своему приложению-функции.

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

  3. Установите для параметра SCM Basic Auth Publishing Credentials ( Вкл.), а затем нажмите кнопку "Сохранить".

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