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


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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

Примечание.

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

Чтобы просмотреть параметры приложения, см. статью "Начало работы" в портал Azure.

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

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

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

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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подсказка

Мы рекомендуем перенести приложение плана потребления для запуска в плане потребления Flex вместо плана Premium. Миграция в план потребления Flex является единственным вариантом миграции для приложения плана потребления Linux. Дополнительные сведения см. в материале «Перенос приложений из плана использования в план Flex Consumption».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

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

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

  2. При появлении запроса войдите на сайт Диспетчера управления версиями (SCM) с помощью учетных данных Azure.

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

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

  5. Присвойте файлу имя, например extensions.csproj, и нажмите клавишу ВВОД.

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

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

    dotnet build extensions.csproj
    

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

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

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

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

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

Дополнительные сведения о работе с параметрами службы приложений см. в статье Настройка параметров в службе приложений Azure.

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

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

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

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

Консоль

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

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

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

Дополнительные инструменты (Kudu)

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

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

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

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

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

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

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

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

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

Проверка подлинности

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

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