Управление приложением-функцией
В функциях Azure приложение-функция предоставляет контекст выполнения для отдельных функций. Поведение приложения-функции применяется ко всем содержащимся в нем функциям. Все функции в приложении-функции должны использовать один и тот же язык.
Отдельные функции в приложении-функции развертываются и масштабируются вместе. Все функции в одном и том же приложении-функции совместно используют ресурсы для каждого экземпляра по мере масштабирования приложения-функции.
Строки подключения, переменные среды и другие параметры приложения определяются отдельно для каждого приложения-функции. Все данные, которые должны совместно использоваться приложениями-функциями, должны храниться на внешних ресурсах в постоянном хранилище.
Начните работу на портале Azure
Примечание.
Из-за ограничений на редактирование кода функции в портал Azure следует разрабатывать функции локально и публиковать проект кода в приложении-функции в Azure. Дополнительные сведения см. в разделе об ограничениях разработки в портал Azure
Чтобы просмотреть параметры приложения в приложении-функции, выполните следующие действия.
Войдите на портал Azure с помощью учетной записи Azure. Найдите приложение-функцию и выберите его.
В левой области приложения-функции разверните узел "Параметры", выберите переменные среды и перейдите на вкладку "Параметры приложения".
Работа с параметрами приложения
Помимо стандартных параметров приложения, используемых Функции Azure, можно создать любое количество параметров приложения, как это требуется в коде функции. Дополнительные сведения см. в статье Справочник по параметрам приложений для Функций Azure.
Эти параметры хранятся в зашифрованном виде. Дополнительные сведения см. в разделе "Безопасность параметров приложения".
Вы можете управлять параметрами приложения из портал Azure и с помощью Azure CLI и Azure PowerShell. Вы также можете управлять параметрами приложения из Visual Studio Code и из Visual Studio.
Чтобы просмотреть параметры приложения, см. статью "Начало работы" в портал Azure.
Вкладка "Параметры приложения" поддерживает параметры, используемые приложением-функцией:
Использование параметров приложения
Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительные сведения см. в разделе "Переменные среды" в следующих справочных статьях, относящихся к языку:
При разработке приложения-функции локально необходимо сохранить локальные копии этих значений в файле проекта local.settings.json . Подробнее см. в разделе Файл локальных параметров.
Параметры развертывания FTPS
Функции Azure поддерживает развертывание кода проекта в приложении-функции с помощью FTPS. Так как этот метод развертывания требует синхронизации триггеров, не рекомендуется. Для безопасной передачи файлов проекта всегда используйте FTPS, а не FTP.
Чтобы получить учетные данные, необходимые для развертывания FTPS, используйте один из следующих методов:
Учетные данные публикации FTPS можно получить в портал Azure, скачав профиль публикации для приложения-функции.
Внимание
Профиль публикации содержит важные учетные данные безопасности. Всегда защищать скачанный файл на локальном компьютере.
Чтобы скачать профиль публикации приложения-функции, сделайте следующее:
В портал Azure найдите страницу для приложения-функции, разверните раздел "Параметры>конфигурации" в левом столбце.
На странице "Конфигурация" выберите вкладку "Общие параметры" и убедитесь, что учетные данные публикации SCM Basic Auth включены. Если этот параметр отключен, вы не можете использовать профили публикации, поэтому нажмите кнопку "Вкл." и "Сохранить".
Вернитесь на страницу обзора приложения-функции и выберите "Получить профиль публикации".
Сохраните и скопируйте содержимое файла.
- В файле найдите
publishProfile
элемент с атрибутомpublishMethod="FTP"
. В этом элементеpublishUrl
userName
атрибуты иuserPWD
атрибуты содержат целевой URL-адрес и учетные данные для публикации FTPS.
Тип плана размещения
При создании приложения-функции вы также создаете план размещения, в котором выполняется приложение. План может содержать одно или несколько приложений-функций. Функциональные возможности, масштабирование и цены на функции зависят от типа плана. Дополнительные сведения см. в разделе Варианты размещения Функций Azure.
Вы можете определить тип плана, используемого приложением-функцией, на портале Microsoft Azure или с помощью программных интерфейсов Azure CLI или Azure PowerShell.
Тип плана определяется следующими значениями:
Тип плана | Портал Azure | Azure CLI/PowerShell |
---|---|---|
Потребление | Потребление | Dynamic |
Премиум | Эластичный Премиум | ElasticPremium |
Выделенный (Служба приложений) | Various | Various |
Чтобы определить тип плана, используемого приложением-функцией, см. раздел Служба приложений План на странице обзора приложения-функции в портал Azure.
Чтобы просмотреть ценовую категорию, выберите имя плана Служба приложений, а затем выберите "Свойства параметров>" в левой области.
Планирование миграции
Вы можете перенести приложение-функцию между планом потребления и планом Premium в Windows. При миграции между планами помните следующее:
- Прямая миграция в выделенный план (Служба приложений) не поддерживается.
- Миграция не поддерживается в Linux.
- Исходный план и целевой план должны находиться в одной группе ресурсов и географическом регионе. Дополнительные сведения см. в разделе о перемещении приложения в другой план службы приложений.
- Определенные команды CLI зависят от направления миграции.
- Время простоя в выполнении функции происходит, так как приложение-функция переносится между планами.
- Поддерживается состояние и другое содержимое для конкретного приложения, так как один и тот же Файлы Azure общий ресурс используется приложением до и после миграции.
Вы можете перенести план с помощью следующих средств:
Вы можете использовать портал Azure для перехода на другой план.
Выберите направление миграции для приложения в Windows.
Ограничения разработки в портал Azure
В следующей таблице показаны операционные системы и языки, поддерживающие редактирование на портале:
Язык | Windows с планом потребления | Windows с премиальным планом | Windows с выделенным планом | Linux с планом потребления | Linux с премиальным планом | Linux с выделенным планом |
---|---|---|---|---|---|---|
C# | ||||||
Java | ||||||
JavaScript (Node.js) | ✔ | ✔ | ✔ | ✔ | ✔ | |
Python | ✔ | ✔ | ✔ | |||
PowerShell | ✔ | ✔ | ✔ | |||
TypeScript (Node.js) |
При разработке функций в портал Azure следует учитывать следующие ограничения:
- Редактирование на портале поддерживается только для функций, созданных или последних измененных в портал Azure.
- Редактирование на портале поддерживается только для функций скриптов JavaScript, PowerShell, Python и C#.
- Редактирование на портале не поддерживается в предварительной версии плана потребления Flex.
- При развертывании кода в приложении-функции за пределами портал 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, позволяет обновлять код функции и файлы конфигурации непосредственно на портале:
Выберите приложение-функцию, а затем в разделе "Функции" выберите "Функции".
Выберите функцию и нажмите Код и тестирование в разделе Разработчик.
Выберите файл для изменения и нажмите кнопку "Сохранить " после завершения.
Файлы в корневом каталоге приложения, такие как function.proj или extensions.csproj, необходимо создать и изменить с помощью расширенных средств (Kudu):
Выберите приложение-функцию, разверните средства разработки и выберите "Дополнительные средства> Go".
При появлении запроса войдите на сайт Диспетчера управления версиями (SCM) с помощью учетных данных Azure.
В меню консоли отладки выберите CMD.
Перейдите в
.\site\wwwroot
, нажмите кнопку "плюс" (+) вверху и выберите Создать файл.Присвойте файлу имя, например
extensions.csproj
, и нажмите клавишу ВВОД.Нажмите кнопку редактирования рядом с новым файлом, добавьте или обновите код в файле, а затем нажмите кнопку "Сохранить".
Для файла проекта, например 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 |
Ниже приводится более подробное описание следующих функций на портале, которые могут пригодиться при работе с приложениями-функциями:
- Редактор службы приложений
- Консоль
- Дополнительные инструменты (Kudu)
- Варианты развертывания
- CORS
- Аутентификация
Дополнительные сведения о работе с параметрами службы приложений см. в статье Настройка параметров в службе приложений Azure.
Редактор службы приложений
Редактор службы приложений — это расширенный редактор на портале, который можно использовать для изменения JSON-файлов конфигурации и файлов с кодом. При выборе этого параметра откроется отдельная вкладка браузера с базовым редактором. Этот редактор позволяет интегрироваться с репозиторием Git, запускать и отлаживать код и изменять параметры приложения-функции. Этот редактор предоставляет расширенную среду разработки для функций по сравнению со встроенным редактором функций.
Мы рекомендуем разрабатывать функции на локальном компьютере. При локальной разработке и публикации в Azure файлы проекта доступны только для чтения в портал Azure. Дополнительные сведения см. в статье Как программировать и тестировать Функции Azure в локальной среде.
Консоль
Консоль на портале оптимально подходит разработчикам, желающим взаимодействовать с приложением-функцией из командной строки. Стандартные команды включают создание каталогов и файлов и навигацию по ним, а также выполнение пакетных файлов и сценариев.
При локальной разработке мы рекомендуем использовать Azure Functions Core Tools и Azure CLI.
Дополнительные инструменты (Kudu)
Дополнительные средства для службы приложений (которые также называются Kudu) предоставляют доступ к расширенным административным функциям для приложения-функции. С помощью Kudu можно управлять системными сведениями, параметрами приложения, переменными среды, заголовками HTTP и переменными сервера. Вы также можете запустить Kudu, перейдя в конечную точку SCM для приложения-функции, например: https://<myfunctionapp>.scm.azurewebsites.net/
Центр развертывания
Если вы используете систему управления версиями для разработки и сопровождения кода функции, Центр развертывания позволяет выполнять сборку и развертывание из системы управления версиями. После внесения обновлений будет выполнены сборка и развертывание проекта в Azure. Дополнительные сведения см. в статье Технологии развертывания в Функциях Azure.
Предоставление общего доступа к ресурсам независимо от источника
Чтобы предотвратить выполнение вредоносного кода на клиенте, современные браузеры блокируют запросы от веб-приложений к ресурсам, выполняемым в отдельном домене. Общий доступ к ресурсам независимо от источника (CORS) позволяет заголовку Access-Control-Allow-Origin
объявить, какие источники могут вызывать конечные точки в вашем приложении-функции.
При настройке списка разрешенных источников для приложения-функции ко всем ответам от конечных точек HTTP в приложении-функции автоматически добавляется заголовок Access-Control-Allow-Origin
.
Если есть другая запись домена, подстановочный знак (*) игнорируется.
Проверка подлинности
Если функции используют триггер HTTP, можно настроить обязательную предварительную проверку подлинности для вызовов. Служба приложений поддерживает проверку подлинности Microsoft Entra и вход с помощью социальных поставщиков, таких как Facebook, Microsoft и X. Сведения о настройке конкретных поставщиков проверки подлинности см. в разделе приложение Azure Обзор проверки подлинности службы.