Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как создавать приложения-функции, размещенные в плане потребления Flex в Функции Azure. В нем также показано, как управлять определенными функциями размещенного приложения плана потребления Flex.
Ресурсы приложения-функции зависят от langauge. Выберите предпочитаемый язык разработки кода в начале статьи.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Если ее нет, можно создать учетную запись бесплатно.
Azure CLI: используется для создания ресурсов и управления ими в Azure. При использовании Azure CLI на локальном компьютере обязательно используйте версию 2.60.0 или более позднюю версию. Вы также можете использовать Azure Cloud Shell, которая имеет правильную версию Azure CLI.
Visual Studio Code: используется для создания и разработки приложений, создания ресурсов Azure и развертывания проектов кода в Azure. При использовании Visual Studio Code также установите последнее расширение Функции Azure. Вы также можете установить пакет расширений средств Azure.
Хотя не требуется для создания приложения плана потребления Flex, вам потребуется проект кода для развертывания и проверки нового приложения-функции. Выполните первую часть одной из следующих статей краткого руководства, в которой вы создадите проект кода с активированной функцией HTTP:
- Создание проекта Функции Azure из командной строки
- Создание проекта Функций Azure в Visual Studio Code
Чтобы создать приложение в новом плане потребления Flex во время развертывания Maven, необходимо создать проект локального приложения, а затем обновить файл pom.xml проекта. Дополнительные сведения см. в статье "Создание приложения потребления Java Flex с помощью Maven"
Вернитесь к этой статье после создания и запуска локального проекта, но прежде чем вам будет предложено создать ресурсы Azure. Вы создадите приложение-функцию и другие ресурсы Azure в следующем разделе.
Создание приложения Flex Consumption
В этом разделе показано, как создать приложение-функцию в плане потребления Flex с помощью Azure CLI, портал Azure или Visual Studio Code. Пример создания приложения в плане потребления Flex с помощью шаблонов Bicep/ARM см. в репозитории Flex Consumption.
Этот раздел можно пропустить, если вы решили создать и развернуть приложение с помощью Maven.
Для поддержки кода функции необходимо создать три ресурса:
- группу ресурсов — логический контейнер связанных ресурсов;
- учетную запись хранения, которая используется для сохранения состояния и других сведений о функциях;
- Приложение-функция в плане потребления Flex, которое предоставляет среду для выполнения кода функции. Приложение-функция сопоставляется с проектом локальной функции и позволяет группировать функции как логическую единицу для упрощения управления, развертывания и совместного использования ресурсов в плане потребления Flex.
Войдите в Azure, если вы еще этого не сделали:
az loginКоманда
az loginвходит в учетную запись Azure.Используйте команду
az functionapp list-flexconsumption-locations, чтобы просмотреть список регионов, которые в настоящее время поддерживают Flex Consumption в алфавитном порядке.az functionapp list-flexconsumption-locations --query "sort_by(@, &name)[].{Region:name}" -o table
Создайте группу ресурсов в одном из поддерживаемых регионов:
az group create --name <RESOURCE_GROUP> --location <REGION>В предыдущей команде, замените
<RESOURCE_GROUP>на значение, уникальное для вашей подписки, и<REGION>на один из поддерживаемых в настоящее время регионов. Чтобы создать группу ресурсов, выполните команду az group create.В группе ресурсов и регионе создайте учетную запись хранения общего назначения:
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group <RESOURCE_GROUP> --sku Standard_LRS --allow-blob-public-access falseВ предыдущем примере замените
<STORAGE_NAME>соответствующим именем, которое является уникальным в службе хранилища Azure. Имена должны содержать от трех до 24 символов и только в нижнем регистре.Standard_LRSуказывает учетную запись общего назначения, которая поддерживается Функциями. Создайте учетную запись хранения с помощью команды az storage account create.Внимание
Учетная запись хранения используется для хранения важных данных приложения, иногда включая сам код приложения. Необходимо ограничить доступ от других приложений и пользователей к учетной записи хранения.
Создайте приложение-функцию в Azure:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0Приложения C#, которые выполняются в процессе , в настоящее время не поддерживаются при выполнении в плане потребления Flex.
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime java --runtime-version 17Для приложений Java в настоящее время поддерживается Java 11.
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime node --runtime-version 20az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime python --runtime-version 3.11Для приложений Python в настоящее время поддерживается Python 3.10.
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime powershell --runtime-version 7.4В этом примере замените как группу ресурсов, так
<RESOURCE_GROUP>и<STORAGE_NAME>имя учетной записи, используемой на предыдущем шаге, соответственно. Кроме того, замените<APP_NAME>глобально уникальное имя, соответствующее вам. Это<APP_NAME>также домен dns по умолчанию для приложения-функции. Командаaz functionapp createсоздает приложение-функцию в Azure.Эта команда создает приложение-функцию, работающее в плане потребления Flex.
Так как вы создали приложение без указания всегда готовых экземпляров, ваше приложение будет нести затраты только при активном выполнении функций. Команда также создает связанный экземпляр приложение Azure Insights в той же группе ресурсов, с помощью которой можно отслеживать приложение-функцию и просматривать журналы. Дополнительные сведения см. в разделе Мониторинг функций Azure.
Развертывание проекта кода
Для развертывания приложения плана потребления Flex используется контейнер хранилища Blob для размещения пакетных файлов .zip, содержащих код вашего проекта и все библиотеки, необходимые для работы приложения. Дополнительные сведения см. в разделе Развертывания.
Этот раздел можно пропустить, если вы решили создать и развернуть приложение с помощью Maven.
Вы можете развернуть код проекта в существующем приложении-функции с помощью различных средств:
Azure CLI можно использовать для отправки файла пакета развертывания в общую папку развертывания для приложения-функции в Azure. Для этого необходимо создать файл пакета .zip, который может выполняться при подключении пакета к приложению.
Этот файл пакета должен содержать все выходные файлы сборки и ссылки на библиотеки, необходимые для запуска проекта.
Для проектов с большим количеством библиотек следует упаковать корень файла проекта и запросить удаленную сборку.
Для проектов Python необходимо упаковать корень файла проекта и всегда запрашивать удаленную сборку. Использование удаленной сборки предотвращает потенциальные проблемы, которые могут возникнуть при сборке проекта в Windows для развертывания в Linux.
Используя предпочитаемое средство разработки, создайте проект кода.
Создайте файл .zip, содержащий выходные данные каталога сборки. Дополнительные сведения см. в разделе "Структура проекта".
При необходимости войдите в учетную запись Azure и выберите активную подписку с помощью
az loginкоманды.az loginЗапустите команду
az functionapp deployment source config-zip, чтобы развернуть пакет приложения, расположенный в относительном каталоге<FILE_PATH>.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
Используя предпочитаемое средство разработки, создайте проект кода.
Создайте файл .zip, содержащий выходные данные каталога сборки. Дополнительные сведения см. в разделе "Структура папок".
При необходимости войдите в учетную запись Azure и выберите активную подписку с помощью
az loginкоманды.az loginЗапустите команду
az functionapp deployment source config-zip, чтобы развернуть пакет приложения, расположенный в относительном каталоге<FILE_PATH>.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
Создайте файл .zip, содержащий корневой каталог проекта кода. Дополнительные сведения см. в разделе "Структура папок".
При необходимости войдите в учетную запись Azure и выберите активную подписку с помощью
az loginкоманды.az loginЗапустите команду
az functionapp deployment source config-zip, чтобы развернуть пакет приложения, расположенный в относительном каталоге<FILE_PATH>.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
Создайте файл .zip, содержащий корневой каталог проекта кода. Дополнительные сведения см. в разделе "Структура папок".
При необходимости войдите в учетную запись Azure и выберите активную подписку с помощью
az loginкоманды.az loginЗапустите команду
az functionapp deployment source config-zip, чтобы развернуть пакет приложения, расположенный в относительном каталоге<FILE_PATH>.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP> --build-remote true--build-remote trueОбязательно установите для выполнения удаленной сборки.
Создайте файл .zip, содержащий корневой каталог проекта кода. Дополнительные сведения см. в разделе "Структура папок".
При необходимости войдите в учетную запись Azure и выберите активную подписку с помощью
az loginкоманды.az loginЗапустите команду
az functionapp deployment source config-zip, чтобы развернуть пакет приложения, расположенный в относительном каталоге<FILE_PATH>.az functionapp deployment source config-zip --src <FILE_PATH> --name <APP_NAME> --resource-group <RESOURCE_GROUP> --build-remote true--build-remote trueОбязательно установите для выполнения удаленной сборки.
Создание и развертывание приложения с помощью Maven
С помощью Maven можно создать размещенное приложение-функцию Flex Consumption и необходимые ресурсы во время развертывания, изменив файл pom.xml.
Создайте проект кода Java, выполнив первую часть одной из следующих статей краткого руководства:
В проекте кода Java откройте файл pom.xml и внесите эти изменения, чтобы создать приложение-функцию в плане потребления Flex:
Измените значение атрибута
<properties>.<azure.functions.maven.plugin.version>на1.34.0.<plugin>.<configuration>В разделе дляazure-functions-maven-pluginэлемента добавьте или раскомментируйте<pricingTier>элемент следующим образом:<pricingTier>Flex Consumption</pricingTier>
(Необязательно) Настройте план потребления Flex в развертывании Maven, включив в раздел следующие элементы
<plugin>.<configuration>:-
<instanceSize>— задает размер памяти экземпляра для приложения-функции. Значение по умолчанию —2048. -
<maximumInstances>— задает наибольшее значение для максимального количества экземпляров приложения-функции. -
<alwaysReadyInstances>— задает количество всегда готовых экземпляров с дочерними элементами для групп триггеров HTTP (<http>), Устойчивые функции групп (<durable>) и других конкретных триггеров (<my_function>). При установке любого числа экземпляров больше нуля плата взимается за эти экземпляры независимо от того, выполняются ли ваши функции. Дополнительные сведения см. в разделе о выставлении счетов.
-
Перед развертыванием войдите в подписку Azure с помощью Azure CLI.
az loginКоманда
az loginвходит в учетную запись Azure.Используйте следующую команду, чтобы развернуть проект кода в новом приложении-функции в Flex Consumption.
mvn azure-functions:deployMaven использует параметры в шаблоне pom.xml для создания приложения-функции в плане потребления Flex в Azure вместе с другими необходимыми ресурсами. Если эти ресурсы уже существуют, код развертывается в приложении-функции, перезаписав любой существующий код.
Включение интеграции с виртуальной сетью
Вы можете включить интеграцию виртуальной сети для приложения в плане потребления Flex. В примерах этого раздела предполагается, что вы уже создали виртуальную сеть с подсетью в учетной записи. Вы можете включить интеграцию виртуальной сети при создании приложения или позже.
Внимание
План потребления Flex в настоящее время не поддерживает подсети с именами, содержащими символы подчеркивания (_).
Чтобы включить виртуальную сеть при создании приложения, выполните следующие действия.
Вы можете включить интеграцию виртуальной сети, выполнив az functionapp create команду и включив параметры --vnet--subnet .
Создайте виртуальную сеть и подсеть, если это еще не сделано.
Выполните шаги 1–4 в разделе "Создание приложения потребления Flex", чтобы создать ресурсы, необходимые для приложения.
az functionapp createВыполните команду, включая--vnetпараметры и--subnetпараметры, как в следующем примере:az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime <RUNTIME_NAME> --runtime-version <RUNTIME_VERSION> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>Значением
<VNET_RESOURCE_ID>является идентификатор ресурса для виртуальной сети, который находится в формате:/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Network/virtualNetworks/<VNET_NAME>Эту команду можно использовать для получения списка идентификаторов виртуальных сетей, отфильтрованных по<RESOURCE_GROUP>:az network vnet list --resource-group <RESOURCE_GROUP> --output tsv --query "[]".id.
Полные примеры создания приложений в Flex Consumption с интеграцией виртуальной сети см. в следующих ресурсах:
- Потребление Flex: HTTP к Центрам событий через интеграцию виртуальной сети
- Flex Consumption: активируется из шины служб с использованием интеграции с виртуальной сетью
Чтобы изменить или удалить интеграцию виртуальной сети в существующем приложении:
az functionapp vnet-integration add Используйте команду, чтобы включить интеграцию виртуальной сети с существующим приложением-функцией:
az functionapp vnet-integration add --resource-group <RESOURCE_GROUP> --name <APP_NAME> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>
az functionapp vnet-integration remove Используйте команду, чтобы отключить интеграцию виртуальной сети в приложении:
az functionapp vnet-integration remove --resource-group <RESOURCE_GROUP> --name <APP_NAME>
az functionapp vnet-integration list Используйте команду для перечисления текущих интеграции виртуальной сети для приложения:
az functionapp vnet-integration list --resource-group <RESOURCE_GROUP> --name <APP_NAME>
При выборе подсети эти рекомендации применяются:
- Выбранную подсеть нельзя использовать в других целях (например, с частными конечными точками или конечными точками службы) либо делегировать любому другому плану размещения или службе.
- Вы не можете совместно использовать одну подсеть между средой "Приложения контейнеров" и приложением Flex Consumption.
- Вы можете совместно использовать одну подсеть с несколькими приложениями, работающими в плане потребления Flex. Так как сетевые ресурсы совместно используются во всех приложениях, одно приложение-функция может повлиять на производительность других пользователей в одной подсети.
- В рамках плана потребления Flex одно приложение-функция может использовать до 40 IP-адресов, даже если масштабирование приложения выходит за рамки 40 экземпляров. Хотя это правило полезно при оценке нужного размера подсети, оно не применяется строго.
Настройка параметров развертывания
В плане потребления Flex пакет развертывания, содержащий код приложения, сохраняется в контейнере Хранилище BLOB-объектов Azure. По умолчанию развертывания используют ту же учетную запись хранения (AzureWebJobsStorage) и строка подключения значение, используемое средой выполнения Функций для обслуживания приложения. Строка подключения хранится в параметре DEPLOYMENT_STORAGE_CONNECTION_STRING приложения. Однако вместо этого можно назначить контейнер BLOB-объектов в отдельной учетной записи хранения в качестве источника развертывания для кода. Можно также изменить метод проверки подлинности, используемый для доступа к контейнеру.
Настраиваемый источник развертывания должен соответствовать этим критериям:
- Учетная запись хранения уже должна существовать.
- Контейнер, используемый для развертываний, также должен существовать.
- Если несколько приложений используют одну и ту же учетную запись хранения, каждый из них должен иметь собственный контейнер развертывания. Использование уникального контейнера для каждого приложения предотвращает перезапись пакетов развертывания, что произойдет, если приложения совместно используют один и тот же контейнер.
При настройке проверки подлинности хранилища развертывания следует учитывать следующие рекомендации.
- Рекомендуется использовать управляемые удостоверения при подключении к служба хранилища Azure из приложений. Дополнительные сведения см. в разделе Соединения.
- При использовании строка подключения для подключения к учетной записи хранения развертывания параметр приложения, содержащий строка подключения, уже должен существовать.
- При использовании управляемого удостоверения, назначаемого пользователем, предоставленное удостоверение связывается с приложением-функцией. Роль
Storage Blob Data Contributor, ограниченная учетной записью хранения развертывания, также назначается удостоверению. - При использовании управляемого удостоверения, назначаемого системой, удостоверение создается, когда допустимое удостоверение, назначаемое системой, еще не существует в приложении. Если удостоверение, назначаемое системой, существует, роль, ограниченная учетной записью хранения развертывания,
Storage Blob Data Contributorтакже получает назначение удостоверению.
Чтобы настроить параметры развертывания при создании приложения-функции в плане потребления Flex:
az functionapp create Используйте команду и укажите следующие дополнительные параметры, которые настраивают хранилище развертывания:
| Параметр | Описание |
|---|---|
--deployment-storage-name |
Имя учетной записи хранения развертывания. |
--deployment-storage-container-name |
Имя контейнера в учетной записи, содержащей пакет развертывания приложения. |
--deployment-storage-auth-type |
Тип проверки подлинности, используемый для подключения к учетной записи хранения развертывания. Допустимые значения включают StorageAccountConnectionString, UserAssignedIdentityи SystemAssignedIdentity. |
--deployment-storage-auth-value |
При использовании StorageAccountConnectionStringэтот параметр имеет имя параметра приложения, содержащего строка подключения в учетную запись хранения развертывания. При установке UserAssignedIdentity этот параметр назначается именем идентификатора ресурса удостоверения, которое вы хотите использовать. |
В этом примере создается приложение-функция в плане потребления Flex с отдельной учетной записью хранения развертывания и удостоверением, назначенным пользователем:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime dotnet-isolated --runtime-version 8.0 --flexconsumption-location "<REGION>" --deployment-storage-name <DEPLOYMENT_ACCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME> --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value <MI_RESOURCE_ID>
Вы также можете изменить конфигурацию хранилища развертывания для существующего приложения.
az functionapp deployment config set Используйте команду для изменения конфигурации хранилища развертывания:
az functionapp deployment config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --deployment-storage-name <DEPLOYMENT_ACCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME>
Настройка памяти экземпляра
Размер памяти экземпляра, используемый планом потребления Flex, можно явно задать при создании приложения. Дополнительные сведения о поддерживаемых размерах см. в разделе "Размеры экземпляров".
Чтобы задать размер памяти экземпляра, отличный от значения по умолчанию при создании приложения:
--instance-memory Укажите параметр в командеaz functionapp create. В этом примере создается приложение C# с размером 4096экземпляра:
az functionapp create --instance-memory 4096 --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0
В любой момент можно изменить параметр размера памяти экземпляра, используемый приложением.
В этом примере используется az functionapp scale config set команда для изменения параметра размера памяти экземпляра на 512 МБ:
az functionapp scale config set --resource-group <resourceGroup> --name <APP_NAME> --instance-memory 512
Установка всегда готовых счетчиков экземпляров
Вы можете задать определенное количество всегда готовых экземпляров для групп с масштабированием на уровне функции или отдельных функций, с целью поддержания функций в загруженном и готовом к выполнению состоянии. Существует три специальные группы, как в масштабировании для каждой функции:
-
http— все функции, активируемые HTTP в приложении, масштабируются вместе в собственные экземпляры. -
durable— все устойчивые триггерные функции (оркестрация, действие, сущность) в приложении масштабируются вместе в собственные экземпляры. -
blob— все функции большого двоичного объекта (Сетка событий) в приложении масштабируются вместе в собственных экземплярах.
Используйте http, durableили blob в качестве имени для параметра пары значений имени, чтобы настроить всегда готовые счетчики для этих групп. Для всех остальных функций в приложении необходимо настроить всегда готовый для каждой отдельной функции с помощью формата function:<FUNCTION_NAME>=n.
Чтобы определить одно или несколько всегда готовых обозначений экземпляров, используйте --always-ready-instances параметр с командой az functionapp create . В этом примере всегда готовое число экземпляров для всех триггерных функций 5HTTP:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances http=10
В этом примере устанавливается всегда готовое число экземпляров для всех функций 3 устойчивых триггеров и задает для функции с триггером служебной шины всегда готовое число 2 экземпляров с именем function5:
az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances durable=3 function:function5=2
Вы также можете изменять всегда готовые экземпляры в существующем приложении, добавляя или удаляя обозначения экземпляров или изменяя существующие числа обозначений экземпляров.
В этом примере команда используется az functionapp scale config always-ready set для изменения количества всегда готовых экземпляров для группы триггеров HTTP на 10:
az functionapp scale config always-ready set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --settings http=10
Чтобы удалить всегда готовые экземпляры, используйте az functionapp scale config always-ready delete команду, как в этом примере, которая удаляет все всегда готовые экземпляры из группы триггеров HTTP, а также функцию с именем hello_world:
az functionapp scale config always-ready delete --resource-group <RESOURCE_GROUP> --name <APP_NAME> --setting-names http function:hello_world
Настройка ограничений параллелизма HTTP
Если вы не устанавливаете определенные ограничения, значения по умолчанию HTTP для приложений плана потребления Flex определяются на основе параметра размера экземпляра. Дополнительные сведения см. в разделе параллелизм триггера HTTP.
Вот как можно задать ограничения параллелизма HTTP для существующего приложения:
az functionapp scale config set Используйте команду, чтобы задать определенные ограничения параллелизма HTTP для приложения независимо от размера экземпляра.
az functionapp scale config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --trigger-type http --trigger-settings perInstanceConcurrency=10
В этом примере для уровня параллелизма триггера HTTP задано значение 10. После конкретного задания значения параллелизма HTTP это значение сохраняется, несмотря на любые изменения в параметре размера экземпляра приложения.
Настройка стратегии обновления сайта
План потребления Flex особенно поддерживает две различные стратегии обновления сайта, которые управляют тем, как ваше функциональное приложение обрабатывает развертывания кода и изменения конфигурации. По умолчанию приложения плана потребления Flex используют Recreate стратегию, которая завершает выполнение функций во время развертывания. Можно настроить стратегию RollingUpdate, чтобы обеспечить развертывания системы без простоя. Дополнительные сведения см. в стратегиях обновления сайта в Flex Consumption.
Замечание
Конфигурация стратегии обновления сайта в настоящее время доступна в общедоступной предварительной версии и доступна только с помощью шаблонов Bicep или ARM. Этот параметр нельзя настроить с помощью Azure CLI, портала Azure или Visual Studio Code.
Конфигурация стратегии обновления сайта в настоящее время не поддерживается в Azure CLI. Используйте шаблоны Bicep или ARM, как описано в статье "Настройка стратегии обновления сайта".
Просмотр поддерживаемых в настоящее время регионов
Чтобы просмотреть список регионов, которые в настоящее время поддерживают планы потребления Flex:
Войдите в Azure, если вы еще этого не сделали:
az loginКоманда
az loginвходит в учетную запись Azure.Используйте команду
az functionapp list-flexconsumption-locations, чтобы просмотреть список регионов, которые в настоящее время поддерживают Flex Consumption в алфавитном порядке.az functionapp list-flexconsumption-locations --query "sort_by(@, &name)[].{Region:name}" -o table
При создании приложения в портал Azure или с помощью Visual Studio Code в настоящее время неподдерживаемые регионы фильтруются из списка регионов.
Мониторинг приложения в Azure
Azure Monitor предоставляет эти различные наборы метрик, чтобы лучше понять, как работает приложение-функция в Azure:
- Метрики платформы: предоставляет аналитические сведения на уровне инфраструктуры
- Application Insights: предоставляет аналитические сведения на уровне кода, включая трассировки и журналы ошибок.
Если вы еще этого не сделали, вы должны включить Application Insights в приложении , чтобы иметь возможность:
- Отслеживание подробного времени выполнения и зависимостей
- Мониторинг производительности отдельных функций
- Анализ сбоев и исключений
- Сопоставление метрик платформы с поведением приложения с пользовательскими запросами
Дополнительные сведения см. в разделе Мониторинг функций Azure.
Поддерживаемые метрики
Запустите этот скрипт, чтобы просмотреть все метрики платформы, доступные в настоящее время в приложении:
appId=$(az functionapp show --name <APP_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
az monitor metrics list-definitions --resource $appId --query "[].{Name:name.localizedValue,Value:name.value}" -o table
В этом примере замените <RESOURCE_GROUP> и <APP_NAME> на имена вашей группы ресурсов и приложения-функции соответственно. Этот скрипт получает полный идентификатор приложения и возвращает доступные метрики платформы в таблице.
Просмотр метрик
Текущие метрики можно просмотреть на портале Azure или с помощью Azure CLI.
На портале Azure можно также создавать оповещения метрик и закреплять диаграммы и другие отчеты на панелях мониторинга на портале.
Используйте этот скрипт для создания отчета о текущих метриках для приложения:
appId=$(az functionapp show --name <APP_NAME> --resource-group <RESOURCE_GROUP> --query id -o tsv)
appId=$(az functionapp show --name func-fuxigh6c255de --resource-group exampleRG --query id -o tsv)
echo -e "\nAlways-ready and on-emand execution counts..."
az monitor metrics list --resource $appId --metric "AlwaysReadyFunctionExecutionCount" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "OnDemandFunctionExecutionCount" --interval PT1H --output table
echo -e "\nExecution units (MB-ms) in always-ready and on-emand execution counts..."
az monitor metrics list --resource $appId --metric "AlwaysReadyFunctionExecutionUnits" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "OnDemandFunctionExecutionUnits" --interval PT1H --output table
echo -e "\nAlways-ready resource utilization..."
az monitor metrics list --resource $appId --metric "AlwaysReadyUnits" --interval PT1H --output table
echo -e "\nMemory utilization..."
az monitor metrics list --resource $appId --metric "AverageMemoryWorkingSet" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "MemoryWorkingSet" --interval PT1H --output table
echo -e "\nInstance count and CPU utilization..."
az monitor metrics list --resource $appId --metric "InstanceCount" --interval PT1H --output table
az monitor metrics list --resource $appId --metric "CpuPercentage" --interval PT1H --output table
Дополнительные сведения о метриках для функций Azure см. в статье "Мониторинг функций Azure".
Просмотреть журналы
Когда приложение подключено к Application Insights, вы можете лучше проанализировать производительность приложения и устранить неполадки во время выполнения.
- Использование "Производительность" для анализа времени отклика и зависимостей
- Используйте "Сбои" для выявления ошибок, возникающих после миграции
- Создайте настраиваемые запросы в журналах для анализа поведения функции. Рассмотрим пример.
Используйте этот запрос для сравнения уровня успешности по инстанциям.
requests
| where timestamp > ago(7d)
| summarize successCount=countif(success == true), failureCount=countif(success == false) by bin(timestamp, 1h), cloud_RoleName
| render timechart
Используйте этот запрос для анализа количества экземпляров, которые активно обрабатывали функцию:
let _startTime = ago(20m); //Adjust start time as needed
let _endTime = now(); //Adjust end time as needed
let bins = 1s; //Adjust bin as needed - this will give per second results
requests
| where operation_Name == 'EventHubsTrigger' //Replace with the name of the function in the function app that you are analyzing
| where timestamp between(_startTime .. _endTime)
| make-series dcount(cloud_RoleInstance) default=0 on timestamp from _startTime to _endTime step bins
| render columnchart
Просмотр затрат
Так как вы можете настроить приложение для настройки производительности и операционных затрат, важно отслеживать затраты, связанные с запуском приложения в плане потребления Flex.
Чтобы просмотреть текущие затраты, выполните следующие действия.
На странице приложения-функции на портале Azure выберите ссылку группы ресурсов.
На странице группы ресурсов выберите анализ затрат на управление>затратами.
Просмотрите текущие затраты и траекторию стоимости самого приложения.
При необходимости выберите "Оповещения по управлению>затратами ", а затем + "Добавить ", чтобы создать новое оповещение для приложения.
Точная настройка приложения
План потребления Flex предоставляет несколько параметров, которые можно настроить для уточнения производительности приложения. Фактические затраты и производительность могут отличаться в зависимости от шаблонов и конфигурации рабочих нагрузок для конкретного приложения. Например, более высокие размеры экземпляров памяти могут повысить производительность операций с большим объемом памяти, но при более высокой стоимости за активный период.
Ниже приведены некоторые корректировки, которые можно настроить для точной настройки производительности и затрат:
- Настройте параметры параллелизма , чтобы максимально увеличить пропускную способность для каждого экземпляра.
- Выберите соответствующий размер памяти для рабочей нагрузки. Более высокие размеры памяти стоят больше, но могут повысить производительность.