Краткое руководство. Создание первой функции C# в Azure с помощью Visual Studio
Функции Azure позволяют использовать Visual Studio для создания локальных проектов функций C#, а затем легко публиковать этот проект для запуска в масштабируемой бессерверной среде в Azure. Если вы предпочитаете разрабатывать приложения C# локально с помощью Visual Studio Code, вместо этого следует рассмотреть версию на основе Visual Studio Code этой статьи.
По умолчанию в этой статье показано, как создавать функции C#, которые выполняются в .NET 6 в том же процессе, что и узел функций. Эти внутрипроцессные функции C# поддерживаются только в версиях .NET с долгосрочной поддержкой (LTS), таких как .NET 6. При создании проекта можно вместо этого создать функцию, которая выполняется в .NET 6 в изолированном рабочем процессе. Изолированный рабочий процесс поддерживает как LTS, так и стандартные версии поддержки терминов (STS) .NET. Дополнительные сведения см. в разделе Поддерживаемые версии руководства по изолированному рабочему процессу функций .NET.
Вы узнаете, как выполнять следующие задачи:
- Использование Visual Studio для создания проекта библиотеки классов C#.
- Создание функции, которая отвечает на HTTP-запросы.
- Запуск кода локально для проверки работы функции.
- Развертывание проекта кода в Функциях Azure.
Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.
Предварительные требования
Visual Studio 2022 Убедитесь, что выбрали рабочую нагрузку Разработки Azure во время установки.
Подписка Azure. Если у вас еще нет учетной записи, создайте бесплатную учетную запись, прежде чем начать работу.
Создание проекта приложения-функции
С помощью шаблона проекта Функций Azure в Visual Studio можно создать проект библиотеки классов C#, а затем опубликовать его в приложении-функции в Azure. Приложение-функция позволяет группировать функции в логические единицы и упростить развертывание, масштабирование и совместное использование ресурсов, а также управление ими.
В строке меню Visual Studio выберите Файл>Создать>Проект.
В разделе Создать новый проект введите в поле поиска слово функции, выберите шаблон Функции Azure, а затем нажмите кнопку Далее.
В разделе Настройка нового проекта введите имя проекта и нажмите кнопку Далее. Имя приложения-функции должно быть допустимым в качестве пространства имен C#, поэтому не используйте символы подчеркивания, дефисы и другие символы, не являющиеся буквенно-цифровыми.
В разделе Дополнительные сведения выберите один из следующих вариантов для рабочей роли Функций:
Параметр Версия .NET Модель обработки Описание .NET 6.0 (долгосрочная поддержка) .NET 6 Внутрипроцессно Внутрипроцессное Функции C# поддерживаются только в версиях .NET с долгосрочной поддержкой (LTS). Код функции выполняется в том же процессе, что и узел Функций. .NET 6.0 Isolated (долгосрочная поддержка) .NET 6 Изолированный рабочий процесс Функции выполняются в .NET 6, но в отдельном процессе от узла Функций. .NET 7.0 Isolated .NET 7 Изолированный рабочий процесс Так как .NET 7 не является LTS-версией .NET, функции должны выполняться в изолированном процессе в .NET 7. платформа .NET Framework Изолированная версия 4 .NET Framework 4.8 Изолированный рабочий процесс Выберите этот параметр, если функции должны использовать библиотеки, поддерживаемые только в платформа .NET Framework. .NET Core 3.1 (долгосрочная поддержка) .NET Core 3.1 Внутрипроцессно .NET Core 3.1 больше не является поддерживаемой версией .NET и не поддерживается Функциями версии 4.x. Вместо этого используйте .NET 6.0. платформа .NET Framework версии 1 .NET Framework Внутрипроцессно Выберите этот параметр, если функции должны использовать библиотеки, поддерживаемые только в более старых версиях платформа .NET Framework. Требуется среда выполнения Функций версии 1.x. Две модели процессов используют разные API, а каждая модель процесса использует свой шаблон при создании кода проекта функции. Если вы не видите параметры для .NET 6.0 и более поздних версий среды выполнения .NET, может потребоваться обновить установку средств Функции Azure.
Для остальных параметров Дополнительных сведений используйте значения, приведенные в следующей таблице:
Параметр Значение Описание Компонент триггером HTTP С помощью этого значения создается функция, которая активируется с помощью HTTP-запроса. Использование Azurite для учетной записи хранения среды выполнения (AzureWebJobsStorage) Включить Поскольку для приложения-функции в Azure требуется учетная запись хранения, она назначается или создается при публикации проекта в Azure. При активации с помощью HTTP-запроса не используется строка подключения учетной записи хранения Azure. Для всех остальных типов активации требуется допустимая строка подключения к учетной записи хранения Azure. При выборе этого параметра используется эмулятор Azurite. Уровень авторизации Анонимный Создаваемую функцию может активировать любой клиент без указания ключа. Этот параметр авторизации позволяет легко тестировать новые функции. Дополнительные сведения о ключах и авторизации см. в разделе Ключи авторизации, а также в обзоре привязок HTTP и веб-перехватчика. Убедитесь, что для параметра Уровень авторизации задано значение Анонимно. Если вы выбрали уровень функции по умолчанию, необходимо представить ключ функции в запросах на доступ к конечной точке функции в Azure.
Нажмите кнопку Создать, чтобы создать проект функции и функцию, активируемую с помощью HTTP.
Visual Studio создает проект и класс, содержащий стандартный код для типа функции триггера HTTP. Стандартный код отправляет HTTP-ответ, включающий в себя значение из текста или строки запроса. Атрибут HttpTrigger
указывает, что функция вызывается HTTP-запросом.
Переименование функции
Атрибут метода FunctionName
задает имя функции. По умолчанию генерируется значение Function1
. Поскольку набор средств не позволяет переопределить имя функции по умолчанию при создании проекта, уделите минуту на то, чтобы создать более подходящее имя для класса функции, файла или метаданных.
В проводнике щелкните правой кнопкой мыши файл Function1.cs и переименуйте его в
HttpExample.cs
.В коде переименуйте класс Function1 в
HttpExample
.В методе
HttpTrigger
с именемRun
переименуйте атрибутFunctionName
вHttpExample
.
Определение функции теперь должно выглядеть следующим образом.
[FunctionName("HttpExample")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
После переименования функцию можно протестировать на локальном компьютере.
Локальное выполнение функции
Visual Studio интегрируется с Azure Functions Core Tools. Поэтому вы можете тестировать функции локально, используя полную среду выполнения Функций Azure.
Чтобы запустить функцию, нажмите клавишу F5 в Visual Studio. Возможно, вам потребуется включить исключение брандмауэра, чтобы инструменты могли обрабатывать HTTP-запросы. Уровни авторизации никогда не применяются при запуске функции в локальной среде.
Скопируйте URL-адрес функции из выходных данных среды выполнения функций Azure.
Вставьте URL-адрес для HTTP-запроса в адресной строке браузера. Добавьте строку запроса
?name=<YOUR_NAME>
в этот URL-адрес и выполните запрос. Ниже показан ответ в браузере на локальный запрос GET, возвращенный функцией:Чтобы остановить отладку, нажмите клавиши Shift+F5 в Visual Studio.
Убедившись, что функция выполняется правильно на локальном компьютере, опубликуйте проект в Azure.
Публикация проекта в Azure
Visual Studio может опубликовать локальный проект в Azure. Перед публикацией проекта убедитесь, что в вашей подписке Azure есть приложение-функция. Если у вас еще нет приложения-функции в Azure, публикация Visual Studio создаст его при первой публикации проекта. В этой статье описано, как создать приложение-функцию и связанные ресурсы Azure.
Щелкните правой кнопкой мыши проект в обозревателе решений и выберите пункт Опубликовать. Для параметра Целевой объект выберите Azure, а затем нажмите Далее.
Выберите Приложение-функция Azure (Windows) для параметра Определенная цель, чтобы создать приложение-функцию, которое выполняется в Windows, а затем щелкните Далее.
В разделе Экземпляр функции выберите Создать экземпляр Функций Azure.
Создайте новый экземпляр, используя значения, указанные в следующей таблице.
Параметр Значение Описание имя; Глобально уникальное имя Имя, которое однозначно идентифицирует новое приложение-функцию. Используйте это имя или введите новое. Допустимые символы: a-z
,0-9
и-
.Подписка Ваша подписка Подписка Azure, которую нужно использовать. Используйте эту подписку или выберите новую из раскрывающегося списка. Группа ресурсов Имя группы ресурсов Группа ресурсов, в которой вы хотите создать приложение-функцию. Выберите существующую группу ресурсов в раскрывающемся списке или щелкните Создать, чтобы создать новую группу ресурсов. Тип плана Потребление При публикации проекта в приложении-функции, которое работает в плане потребления, вы платите только за выполнение приложения-функции. Другие планы размещения связаны с дополнительными расходами. Расположение Расположение Службы приложений. Выберите расположение в ближайшем к вам регионе или регионе, ближайшем к другим службам, к которым обращаются ваши функции. Служба хранилища Azure Учетная запись хранения общего назначения Для среды выполнения функций необходима учетная запись хранения Azure. Выберите Создать, чтобы настроить учетную запись хранения общего назначения. Можно также использовать существующую учетную запись при условии, что она соответствует требованиям учетной записи хранения. Нажмите кнопку Создать, чтобы создать приложение-функцию и связанные с ним ресурсы в Azure. Состояние операции создания ресурсов отображается в окне внизу слева.
Рядом с полем Экземпляр Функций установите флажок Запустить из файла пакета. Приложение-функция развертывается с помощью Zip Deploy с включенным режимом Run-From-Package (Выполнение из пакета). Развертывание из ZIP-файла — это рекомендуемый метод развертывания для проекта функций, так как он обеспечивает более высокую производительность.
Нажмите кнопку Готово и на странице "Публикация" выберите Опубликовать, чтобы развернуть пакет с файлами проекта в новом приложении-функции в Azure.
После завершения развертывания корневой URL-адрес приложения-функции в Azure отображается на вкладке Опубликовать.
На вкладке "Публикация" в разделе "Размещение" выберите Открыть на портале Microsoft Azure. В результате на портале Azure будет открыт новый ресурс Azure для приложения-функции.
Проверка функции в Azure
В Cloud Explorer приложения-функция уже должно быть выбрано. Если это не так, разверните свою подписку и выберите пункт >Службы приложений, затем выберите новое приложение-функцию.
Щелкните правой кнопкой мыши приложение-функцию и выберите пункт Открыть в браузере. В веб-браузере по умолчанию откроется корень приложения-функции и отобразится страница, где указано, что приложение-функция работает.
В адресной строке браузера добавьте строку
/api/HttpExample?name=Functions
к базовому URL-адресу и выполните запрос.URL-адрес для вызова функции, активируемой HTTP-запросом, указывается в следующем формате:
http://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions
Перейдите по этому URL-адресу и увидите в браузере ответ на удаленный запрос GET, возвращаемый функцией. Он выглядит аналогично следующему примеру:
Очистка ресурсов
Под ресурсами в Azure подразумеваются приложения-функции, функции, учетные записи хранения и т. д. Они объединяются в группы ресурсов, при удалении которых удаляются и все данные в них.
Вы создали ресурсы Azure для работы с этим кратким руководством. Вам могут быть выставлены счета за эти ресурсы в зависимости от состояния учетной записи и цен на службы. Другие краткие руководства в этой коллекции созданы на основе этого документа. Если вы планируете работать с последующими руководствами или краткими руководствами, а также или любыми службами, созданными при работе с этим руководством, не очищайте ресурсы.
Выполните следующие действия, чтобы удалить приложение-функцию и связанные с ним ресурсы и избежать дополнительных расходов.
В диалоговом окне "Публикация из Visual Studio" в разделе "Размещение" выберите Открыть на портале Mirosoft Azure.
На странице приложения-функции выберите вкладку Обзор, а затем щелкните ссылку в разделе Группа ресурсов.
На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.
Выберите Удалить группу ресурсов и следуйте инструкциям.
Удаление может занять несколько минут. После этого на несколько секунд появится уведомление. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.
Дальнейшие действия
В рамках этого краткого руководства вы с помощью Visual Studio создали и опубликовали в Azure приложение-функцию C# с простой функцией, активируемой HTTP-запросом.
Следующая статья зависит от выбранной модели процесса.
Дополнительные сведения о работе с функциями C#, которые выполняются внутри процесса с узлом Функций, см. в статье Разработка функций библиотеки классов C# с помощью службы "Функции Azure".
Перейдите к следующей статье, чтобы узнать, как добавить привязку очереди службы хранилища Azure к этой функции:
Connect functions to Azure Storage using Visual Studio Code (Подключение функций к службе хранилища Azure с помощью Visual Studio Code)