Управление приложением-функцией
В функциях Azure приложение-функция предоставляет контекст выполнения для отдельных функций. Поведение приложения-функции применяется ко всем содержащимся в нем функциям. Все функции в приложении-функции должны использовать один и тот же язык.
Отдельные функции в приложении-функции развертываются и масштабируются вместе. Все функции в одном и том же приложении-функции совместно используют ресурсы для каждого экземпляра по мере масштабирования приложения-функции.
Строки подключения, переменные среды и другие параметры приложения определяются отдельно для каждого приложения-функции. Все данные, которые должны совместно использоваться приложениями-функциями, должны храниться на внешних ресурсах в постоянном хранилище.
Начните работу на портале Azure
Примечание.
Из-за ограничений на редактирование кода функции в портал Azure следует разрабатывать функции локально и публиковать проект кода в приложении-функции в Azure. Дополнительные сведения см. в разделе об ограничениях разработки в портал Azure
Для начала войдите в портал Azure с помощью учетной записи Azure. На панели поиска в верхней части портала введите имя приложения-функции и выберите его в списке.
В разделе Параметры в левой области выберите Конфигурация.
Все необходимое для управления приложением-функцией можно выбрать на странице обзора, в частности Параметры приложения и Функции платформы.
Работа с параметрами приложения
Вы можете создать любое количество параметров приложения, требуемых вашим кодом функции. Существуют также предопределенные параметры приложений, используемые Функциями. Дополнительные сведения см. в статье Справочник по параметрам приложений для Функций Azure.
Эти параметры хранятся в зашифрованном виде. Подробнее см. в разделе Безопасность параметров приложения.
Параметрами приложения можно управлять на портале Microsoft Azure и с помощью Azure CLI и Azure PowerShell. Для этого также можно использовать Visual Studio Code и Visual Studio.
Чтобы найти параметры приложения, см. раздел Начало работы на портале Microsoft Azure.
Вкладка Параметры приложения содержит параметры, используемые приложением-функцией. Для просмотра значений на портале выберите Показать значения. Чтобы добавить параметр на портале, выберите Создать параметр приложения и добавьте новую пару "ключ-значение".
Использование параметров приложения
Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительные сведения см. в разделе о переменных среды в этих справочниках для определенного языка:
При разработке приложения-функции локально необходимо сохранить локальные копии этих значений в файле проекта local.settings.json. Подробнее см. в разделе Локальный файл параметров.
Параметры развертывания FTPS
Функции Azure поддерживает развертывание кода проекта в приложении-функции с помощью FTPS. Так как этот метод развертывания требует синхронизации триггеров, этот метод не рекомендуется. Для безопасной передачи файлов проекта всегда используйте FTPS, а не FTP.
Учетные данные, необходимые для развертывания FTPS, можно получить с помощью одного из следующих методов:
Учетные данные публикации FTPS можно получить в портал Azure, скачав профиль публикации для приложения-функции.
Внимание
Профиль публикации содержит важные учетные данные безопасности. Вы всегда должны защитить скачанный файл на локальном компьютере.
Чтобы скачать профиль публикации приложения-функции, сделайте следующее:
Выберите страницу Обзор приложения-функции, затем выберите Получить профиль публикации.
Сохраните и скопируйте содержимое файла.
- В файле найдите
publishProfile
элемент с атрибутомpublishMethod="FTP"
. В этом элементеpublishUrl
userName
атрибуты и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.
Получение ключей доступа к функции
Функции для триггеров HTTP обычно можно вызывать с помощью URL-адреса в формате https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>
. Если для авторизации функции задано значение, отличное от anonymous
, необходимо также предоставить в запросе ключ доступа. Ключ доступа можно указать в URL-адресе, используя строку запроса ?code=
, или в заголовке запроса. Дополнительные сведения о ключах доступа к функциям см. здесь. Получить ключи доступа можно несколькими способами.
Войдите на портал Azure, а затем найдите и выберите Приложение-функция.
Выберите функцию, которую нужно проверить.
В области навигации слева в разделе Функции выберите Ключи приложения.
Отобразятся ключи узла, которые можно использовать для доступа к любой функции в приложении. Кроме того, отобразится системный ключ, который предоставляет доступ на уровне администратора ко всем интерфейсам 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, позволяет обновлять код функции и файлы конфигурации непосредственно на портале.
- Выберите приложение-функцию, а затем в разделе Функции выберите Функции.
- Выберите функцию и нажмите Код и тестирование в разделе Разработчик.
- Выберите файл для редактирования и нажмите кнопку Сохранить, когда все будет готово.
Файлы в корне приложения, такие как function.proj или extensions.csproj, необходимо создать и отредактировать с помощью расширенных инструментов (Kudu).
В меню ресурсов приложения-функции в разделе Средства разработки выберите Расширенные инструменты>Перейти.
При появлении запроса войдите на сайт SCM с помощью учетных данных Azure.
В меню консоли отладки выберите CMD.
Перейдите в
.\site\wwwroot
, нажмите кнопку "плюс" (+) вверху и выберите Создать файл.Назовите файл (например,
extensions.csproj
) и нажмите клавишу ВВОД.Нажмите кнопку редактирования рядом с новым файлом, добавьте или обновите код в нем и выберите Сохранить.
Для файла проекта, например 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 |
Ниже приводится более подробное описание следующих функций на портале, которые могут пригодиться при работе с приложениями-функциями:
- Редактор службы приложений
- Консоль
- Дополнительные инструменты (Kudu)
- Варианты развертывания
- CORS
- Аутентификация
Дополнительные сведения о работе с параметрами службы приложений см. в статье Настройка параметров в службе приложений Azure.
Редактор службы приложений
Редактор службы приложений — это расширенный редактор на портале, который можно использовать для изменения JSON-файлов конфигурации и файлов с кодом. При выборе этого параметра откроется отдельная вкладка браузера с базовым редактором. Он позволяет выполнять интеграцию с репозиторием Git, запускать и отлаживать код и изменять параметры приложения-функции. Этот редактор предоставляет расширенную среду разработки для функций по сравнению со встроенным редактором функций.
Мы рекомендуем разрабатывать функции на локальном компьютере. Если вы ведете разработку локально и публикуете в 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 и Twitter. Дополнительные сведения о настройке определенных поставщиков аутентификации см. в разделе Проверка подлинности и авторизация в службе приложений Azure.
Следующие шаги
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по