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


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

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

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

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

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

Примечание.

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

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

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

    Обзор приложения-функции на портале Azure

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

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

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

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

Параметрами приложения можно управлять на портале Microsoft Azure и с помощью Azure CLI и Azure PowerShell. Для этого также можно использовать Visual Studio Code и Visual Studio.

Чтобы найти параметры приложения, см. раздел Начало работы на портале Microsoft Azure.

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

Параметры приложения-функции на портале Microsoft Azure

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

Тип плана Портал Azure CLI/PowerShell
Потребление Потребление Dynamic
Премиум Эластичный Премиум ElasticPremium
Выделенный (Служба приложений) Various Various

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

Просмотр плана масштабирования на портале

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

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

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

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

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

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

  1. В портал Azure перейдите к приложению плана потребления и выберите пункт "Изменить Служба приложений" в Служба приложений плане.

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

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

Получение ключей доступа к функции

Функции для триггеров HTTP обычно можно вызывать с помощью URL-адреса в формате https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Если для авторизации функции задано значение, отличное от anonymous, необходимо также предоставить в запросе ключ доступа. Ключ доступа можно указать в URL-адресе, используя строку запроса ?code=, или в заголовке запроса. Дополнительные сведения о ключах доступа к функциям см. здесь. Получить ключи доступа можно несколькими способами.

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

  2. Выберите функцию, которую нужно проверить.

  3. В области навигации слева в разделе Функции выберите Ключи приложения.

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

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

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

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

  • В настоящее время редактирование на портале поддерживается только для созданных или последних измененных функций на портале.
  • Редактирование на портале поддерживается только для функций скриптов JavaScript, PowerShell, Python и C#.
  • В настоящее время редактирование на портале не поддерживается в предварительной версии плана потребления Flex.
  • При развертывании кода в приложении-функции на портале больше не удается изменить любой код для этого приложения-функции на портале. В этом случае просто продолжайте использовать локальную разработку.
  • Для скомпилированных функций 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. В меню ресурсов приложения-функции в разделе Средства разработки выберите Расширенные инструменты>Перейти.

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

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

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

  5. Назовите файл (например, extensions.csproj) и нажмите клавишу ВВОД.

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

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

    dotnet build extensions.csproj
    

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

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

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

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

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

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

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

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

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

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

Консоль

Консоль приложения-функции

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

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

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

Настройка Kudu

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

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

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

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

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

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

Настройка списка CORS приложения-функции

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

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

Настройка проверки подлинности для приложения-функции

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

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