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


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

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

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При разработке приложения-функции локально необходимо сохранить локальные копии этих значений в файле проекта 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 Azure CLI/PowerShell
Потребление Потребление Dynamic
Премиум Эластичный Премиум ElasticPremium
Выделенный (Служба приложений) Various Various
  1. Чтобы определить тип плана, используемого приложением-функцией, см. раздел Служба приложений План на странице обзора приложения-функции в портал Azure.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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