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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

С помощью команд Azure CLI можно переносить приложение-функцию между планами "Потребление" и "Премиум" в системе Windows. Конкретные команды зависят от направления переноса. Прямой перенос в план "Выделенный (Служба приложений)" сейчас не поддерживается.

Этот перенос не поддерживается в Linux.

Из плана "Потребление" в план "Премиум"

Для переноса из плана "Потребление" в план "Премиум" в системе Windows используйте следующую процедуру.

  1. Выполните следующую команду, чтобы создать новый план Службы приложений ("Эластичный Премиум") в тех же регионе и группе ресурсов, в которых находится существующее приложение-функция.

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Выполните следующую команду, чтобы перенести существующее приложение-функцию в новый план "Премиум".

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Если предыдущий план "Потребление" приложения-функции больше не нужен, удалите исходный план приложения-функции после подтверждения успешного перехода на новый. Выполните следующую команду, чтобы получить список всех планов "Потребление" в группе ресурсов.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    Вы можете безопасно удалить план с нулевым количеством сайтов (это тот план, из которого вы перешли).

  4. Выполните следующую команду, чтобы удалить план "Потребление", из которого вы перешли.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

Из плана "Премиум" в план "Потребление"

Для переноса из плана "Премиум" в план "Потребление" в системе Windows используйте следующую процедуру.

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

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Выполните следующую команду, чтобы перенести существующее приложение-функцию в новый план "Потребление".

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN>
    
  3. Удалите приложение-функцию, созданное на шаге 1, так как вам понадобится только план, созданный для выполнения существующего приложения-функции.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Если вы предыдущий план "Премиум" приложения-функции больше не нужен, удалите исходный план после подтверждения успешного перехода в новый. Обратите внимание, что если план не удалить, вам по-прежнему будет выставляться счет за план "Премиум". Выполните следующую команду, чтобы получить список всех планов "Премиум" в группе ресурсов.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Выполните следующую команду, чтобы удалить план "Премиум", из которого вы перешли.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

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

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

Примечание

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

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

Дополнительные сведения о работе с параметрами службы приложений см. в статье Настройка параметров в службе приложений 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 приложения-функции

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

Используйте команду az functionapp cors add, чтобы добавить домен в список разрешенных источников. В следующем примере добавляется домен contoso.com:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

Используйте команду az functionapp cors show для вывода списка текущих разрешенных источников.

Аутентификация

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

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

Дальнейшие действия