Поделиться через


Управление функциональным приложением

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

Отдельные функции в приложениях с функциями развертываются и масштабируются одновременно. Все функции в одном и том же функциональном приложении делят ресурсы для каждого экземпляра по мере его масштабирования.

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

Начало работы на портале Azure

Примечание.

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

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

  1. Войдите на портал Azure с помощью учетной записи Azure. Найдите ваше функциональное приложение и выберите его.

  2. В левой области вашего приложения функции разверните Параметры, выберите Переменные среды и перейдите на вкладку Параметры приложения.

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

Работа с параметрами приложения

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

Эти параметры хранятся в зашифрованном виде. Дополнительные сведения см. в разделе "Безопасность параметров приложения".

Параметры приложения можно управлять на портале Azure/c0> и с помощью Azure CLI и Azure PowerShell. Вы также можете управлять параметрами приложения из Visual Studio Code и из Visual Studio.

Примечание.

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

Чтобы просмотреть параметры приложения, см. статью Get started in the Azure portal.

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

  1. Чтобы просмотреть значения параметров приложения, выберите "Показать значения".

  2. Чтобы добавить параметр, нажмите кнопку +Добавить, а затем введите имя и значение новой пары "ключ-значение".

    Снимок экрана, показывающий страницу параметров приложения в приложении-функции.

Использование параметров приложения

Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительные сведения см. в разделе "Переменные среды" в следующих справочных статьях, относящихся к языку:

При разработке приложения-функции локально необходимо сохранить локальные копии этих значений в файле проекта local.settings.json . Подробнее см. в разделе Файл локальных параметров.

Параметры развертывания FTPS

Azure Functions поддерживает развертывание кода проекта в приложении-функции с помощью FTPS. Так как этот метод развертывания требует синхронизации триггеров, не рекомендуется. Для безопасной передачи файлов проекта всегда используйте FTPS, а не FTP.

Чтобы получить учетные данные, необходимые для развертывания FTPS, используйте один из следующих методов:

Учетные данные публикации FTPS можно получить на портале Azure, скачав профиль публикации для функционального приложения.

Внимание

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

Чтобы скачать профиль публикации приложения-функции, сделайте следующее:

  1. На портале Azure найдите страницу приложения-функции, разверните Settings>Configuration в левом столбце.

  2. На странице "Конфигурация" выберите вкладку "Общие параметры" и убедитесь, что учетные данные публикации SCM Basic Auth включены. Если этот параметр отключен, вы не можете использовать профили публикации, поэтому нажмите кнопку "Вкл ." и " Применить".

  3. Вернитесь на страницу Обзор функционального приложения, а затем выберите Получить профиль публикации.

    Загрузить профиль публикации

  4. Сохраните и скопируйте содержимое файла.

  1. В файле найдите элемент publishProfile, имеющий атрибут publishMethod="FTP". В этом элементе атрибуты publishUrl, userName и userPWD содержат целевой URL-адрес и учетные данные для публикации FTPS.

Тип плана размещения

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

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

Тип плана определяется следующими значениями:

Тип плана портал Azure Azure CLI/PowerShell
Потребление Потребление Dynamic
Премиум Эластичный Премиум ElasticPremium
Выделенный (Служба приложений) Разное Разное
  1. Чтобы определить тип плана, используемого вашим приложением-функцией, см. в разделе План службы приложений в разделе Обзор приложения-функции на портале Azure.

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

  2. Чтобы просмотреть уровень ценообразования, выберите название плана Службы приложений, а затем выберите Параметры > Свойства в левой области.

Планирование миграции

Вы можете перенести приложение-функцию между планом потребления и планом Premium на Windows.

Подсказка

Мы рекомендуем запустить приложение плана потребления в плане потребления Flex вместо плана Premium. Для приложения плана потребления Linux переход на план потребления Flex является единственным вариантом. Поскольку миграция плана непосредственно в план Flex Consumption и из него не поддерживается, необходимо создать новое приложение-функцию в плане Flex Consumption. Дополнительные сведения см. в разделе "Миграция приложений плана потребления" в план потребления Flex, который описывает создание нового приложения Flex Consumption с теми же параметрами, что и существующее приложение.

При миграции между планами помните следующее:

  • Прямая миграция в выделенный план (Служба приложений) не поддерживается.
  • Миграция не поддерживается в Linux.
  • Исходный план и целевой план должны находиться в одной группе ресурсов и географическом регионе. Дополнительные сведения см. в разделе о перемещении приложения в другой план службы приложений.
  • Определенные команды CLI зависят от направления миграции.
  • Время простоя в выполнении функции происходит, так как приложение-функция переносится между планами.
  • Поддерживается состояние и другое специфическое для приложения содержимое, так как один и тот же общий ресурс Azure Files используется приложением до и после миграции.
  • Миграция между планом Flex Consumption и другим планом на месте не поддерживается. Вы должны создать новое функциональное приложение в тарифном плане Flex Consumption.

Вы можете перенести план с помощью следующих средств:

Вы можете использовать портал Azure для перехода на другой план.

Выберите направление миграции приложения на Windows.

  1. На портале Azure перейдите к приложению плана использования, и в левой области разверните план службы приложений и выберите план службы приложений.

  2. На странице плана службы приложений выберите "Изменить план " в разделе "Текущий план службы приложений".

  3. В разделе "Изменение плана службы приложений" выберите "Премиум" для типа плана, создайте новый план "Премиум" и нажмите кнопку "ОК".

Дополнительные сведения см. в разделе о перемещении приложения в другой план службы приложений.

Ограничения разработки на портале Azure

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

Язык Flex Consumption Премиум Dedicated Потребление
C#
Java
JavaScript (Node.js) только Windows
Python Только для Linux Только для Linux Только для Linux
PowerShell только Windows только Windows только Windows
ТайпСкрипт (Node.js)

Учитывайте эти ограничения при разработке функций на портале Azure:

  • Редактирование на портале поддерживается только для созданных или последних измененных функций на портале Azure.
  • Редактирование на портале поддерживается только для функций JavaScript, PowerShell, Python и скриптов C# (в процессе).
  • В настоящее время редактирование на портале не поддерживается планом потребления Flex.
  • Возможность запуска приложений в Linux в плане потребления планируется для выхода на пенсию. Дополнительные сведения см. в разделе Azure Functions размещение плана потребления.
  • При развертывании кода в приложении-функции за пределами портала Azure вы больше не сможете изменить любой код для этого приложения-функции на портале. В этом случае просто продолжайте использовать локальную разработку.
  • Для Python разработка с пользовательскими модулями в настоящее время не поддерживается на портале. Чтобы добавить пользовательские модули в приложение-функцию, необходимо локально разработать приложение.
  • Для скомпилированных функций C# и Java функций можно создать приложение-функцию и связанные ресурсы на портале. Однако необходимо создать проект кода функций локально, а затем опубликовать его в Azure.

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

Установка расширений вручную

Функции библиотеки классов C# могут включать пакеты NuGet для расширений привязки непосредственно в проекте библиотеки классов. Для других языков, отличных от .NET и скрипта C#, следует использовать пакеты расширений. Если необходимо вручную установить расширения, это можно сделать, использовать Azure Functions Core Tools локально. Если вы не можете использовать пакеты расширений и работаете только на портале, необходимо вручную создать файл extensions.csproj непосредственно на сайте с помощью расширенных инструментов (Kudu). Сначала удалите extensionBundle элемент из файла host.json .

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

Внимание

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

Редактор функций, встроенный на портале Azure, позволяет обновлять код функции и файлы конфигурации непосредственно на портале:

  1. Выберите приложение-функцию, а затем в разделе "Функции" выберите "Функции".

  2. Выберите функцию и нажмите Код и тестирование в разделе Разработчик.

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

Файлы в корневом каталоге приложения, такие как function.proj или extensions.csproj, необходимо создать и изменить с помощью расширенных средств (Kudu):

  1. Выберите функциональное приложение, разверните Инструменты разработки, а затем выберите Расширенные инструменты>Перейти.

  2. При появлении запроса войдите на веб-сайт системы управления версиями (SCM), используя учётные данные Azure.

  3. В меню консоли отладки выберите CMD.

  4. Перейдите в .\site\wwwroot, нажмите кнопку "плюс" (+) вверху и выберите Создать файл.

  5. Присвойте файлу имя, например extensions.csproj, и нажмите Enter.

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

  7. Для файла проекта, например extensions.csproj, выполните следующую команду, чтобы перестроить проект расширений:

    dotnet build extensions.csproj
    

Функции платформы

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

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

Функция План потребления План потребления Flex План категории "Премиум" Специальный тарифный план
Дополнительные инструменты (Kudu) Windows: ✔
Linux: X
X
Редактор службы приложений Windows: ✔
Linux: X
X Windows: ✔
Linux: X
Windows: ✔
Linux: X
Backups X X X
Консоль Windows: командная строка
Linux: X
X Windows: командная строка
Linux: SSH
Windows: командная строка
Linux: SSH

Остальная часть этой статьи сосредоточена на следующих функциях портала, которые полезны для ваших приложений-функций:

Дополнительные сведения о работе с параметрами службы приложений см. в разделе Configure Azure App Service Settings.

Редактор службы приложений

Редактор службы приложений — это расширенный редактор на портале, который можно использовать для изменения JSON-файлов конфигурации и файлов с кодом. При выборе этого параметра откроется отдельная вкладка браузера с базовым редактором. Этот редактор позволяет интегрироваться с репозиторием Git, запускать и отлаживать код и изменять параметры приложения-функции. Этот редактор предоставляет расширенную среду разработки для функций по сравнению со встроенным редактором функций.

Снимок экрана: редактор Служба приложений.

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

Консоль

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

Снимок экрана с консолью функционального приложения.

При разработке локально рекомендуется использовать Azure Functions Основные инструменты и Azure CLI.

Продвинутые инструменты (Kudu)

Расширенные средства для службы приложений (также известные как Kudu) предоставляют доступ к расширенным административным функциям вашего приложения-функции. С помощью Kudu можно управлять системными сведениями, параметрами приложения, переменными среды, заголовками HTTP и переменными сервера. Вы также можете запустить Kudu, перейдя в конечную точку SCM для функционального приложения, например: https://<myfunctionapp>.scm.azurewebsites.net/.

Снимок экрана: расширенные средства для Службы приложений (Kudo).

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

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

Предоставление общего доступа к ресурсам независимо от источника

Чтобы предотвратить выполнение вредоносного кода на клиенте, современные браузеры блокируют запросы от веб-приложений к ресурсам, выполняемым в отдельном домене. Общий доступ к ресурсам независимо от источника (CORS) позволяет заголовку Access-Control-Allow-Origin объявить, какие источники могут вызывать конечные точки в вашем приложении-функции.

При настройке списка разрешенных источников для приложения-функции ко всем ответам от конечных точек HTTP в приложении-функции автоматически добавляется заголовок Access-Control-Allow-Origin.

Скриншот, показывающий, как настроить список CORS для вашего функционального приложения.

Если есть другая запись домена, подстановочный знак (*) игнорируется.

Аутентификация

Если функции используют триггер HTTP, можно настроить обязательную предварительную проверку подлинности для вызовов. Служба приложений поддерживает Microsoft Entra аутентификацию и вход с помощью социальных поставщиков, таких как Facebook, Microsoft и X. Сведения о настройке определенных поставщиков проверки подлинности см. в разделе Azure App Service обзор проверки подлинности.

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