Краткое руководство. Создание первой функции C# в Azure с помощью Visual Studio

Функции Azure позволяют использовать Visual Studio для создания локальных проектов функций C#, а затем легко публиковать этот проект для запуска в масштабируемой бессерверной среде в Azure. Если вы предпочитаете разрабатывать приложения C# локально с помощью Visual Studio Code, вместо этого следует рассмотреть версию на основе Visual Studio Code этой статьи.

По умолчанию в этой статье показано, как создать функции C#, которые выполняются в .NET 8 в изолированном рабочем процессе. Приложения-функции, которые выполняются в изолированном рабочем процессе, поддерживаются во всех версиях .NET, поддерживаемых Функциями. Дополнительные сведения см. в статье "Поддерживаемые версии".

Вы узнаете, как выполнять следующие задачи:

  • Использование Visual Studio для создания проекта библиотеки классов C#.
  • Создание функции, которая отвечает на HTTP-запросы.
  • Запуск кода локально для проверки работы функции.
  • Развертывание проекта кода в Функциях Azure.

Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.

В этом видео показано, как создать функцию C# в Azure.

Действия в видео также описаны в следующих разделах.

Необходимые компоненты

Создание проекта приложения-функции

С помощью шаблона проекта Функций Azure в Visual Studio можно создать проект библиотеки классов C#, а затем опубликовать его в приложении-функции в Azure. Приложение-функция позволяет группировать функции в логические единицы и упростить развертывание, масштабирование и совместное использование ресурсов, а также управление ими.

  1. В строке меню Visual Studio выберите Файл>Создать>Проект.

  2. В разделе Создать новый проект введите в поле поиска слово функции, выберите шаблон Функции Azure, а затем нажмите кнопку Далее.

  3. В поле "Настройка нового проекта" введите имя проекта и нажмите кнопку "Далее". Имя приложения-функции должно быть допустимым в качестве пространства имен C#, поэтому не используйте символы подчеркивания, дефисы и другие символы, не являющиеся буквенно-цифровыми.

  4. Для оставшихся дополнительных параметров сведений

    Параметр значение Описание
    Рабочая роль Функций Изолированный .NET 8.0 (долгосрочная поддержка) Функции выполняются в .NET 8 в изолированном рабочем процессе.
    Function Триггер HTTP С помощью этого значения создается функция, которая активируется с помощью HTTP-запроса.
    Использование Azurite для учетной записи хранения среды выполнения (AzureWebJobsStorage) Enable Поскольку для приложения-функции в Azure требуется учетная запись хранения, она назначается или создается при публикации проекта в Azure. При активации с помощью HTTP-запроса не используется строка подключения учетной записи хранения Azure. Для всех остальных типов активации требуется допустимая строка подключения к учетной записи хранения Azure. При выборе этого параметра используется эмулятор Azurite.
    Уровень авторизации Анонимный. Создаваемую функцию может активировать любой клиент без указания ключа. Этот параметр авторизации позволяет легко тестировать новые функции. Дополнительные сведения о ключах и авторизации см. в разделе Ключи авторизации, а также в обзоре привязок HTTP и веб-перехватчика.

    Screenshot of Azure Functions project settings.

    Убедитесь, что для параметра Уровень авторизации задано значение Анонимно. Если выбрать уровень функции по умолчанию, необходимо представить ключ функции в запросах на доступ к конечной точке функции в Azure.

  5. Нажмите кнопку Создать, чтобы создать проект функции и функцию, активируемую с помощью HTTP.

Visual Studio создает проект и класс, содержащий стандартный код для типа функции триггера HTTP. Стандартный код отправляет HTTP-ответ, включающий в себя значение из текста или строки запроса. Атрибут HttpTrigger указывает, что функция вызывается HTTP-запросом.

Переименование функции

Атрибут метода Function задает имя функции. По умолчанию генерируется значение Function1. Поскольку набор средств не позволяет переопределить имя функции по умолчанию при создании проекта, уделите минуту на то, чтобы создать более подходящее имя для класса функции, файла или метаданных.

  1. В проводнике щелкните правой кнопкой мыши файл Function1.cs и переименуйте его в HttpExample.cs.

  2. В коде переименуйте класс Function1 в HttpExample.

  3. В именованном Runметоде переименуйте Function атрибут HttpExampleметода в .

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

[Function("HttpExample")]
public IActionResult Run([HttpTrigger(AuthorizationLevel.AuthLevelValue, "get", "post")] HttpRequest req)
{
    return new OkObjectResult("Welcome to Azure Functions!");
}

После переименования функцию можно протестировать на локальном компьютере.

Локальное выполнение функции

Visual Studio интегрируется с Azure Functions Core Tools. Поэтому вы можете тестировать функции локально, используя полную среду выполнения Функций Azure.

  1. Чтобы запустить функцию, нажмите клавишу F5 в Visual Studio. Возможно, вам потребуется включить исключение брандмауэра, чтобы инструменты могли обрабатывать HTTP-запросы. Уровни авторизации никогда не применяются при запуске функции в локальной среде.

  2. Скопируйте URL-адрес функции из выходных данных среды выполнения функций Azure.

    Azure local runtime

  3. Вставьте URL-адрес HTTP-запроса в адресную строку браузера и запустите запрос. На следующем изображении показан ответ в браузере на локальный запрос GET, возвращаемый функцией:

    Function localhost response in the browser

  4. Чтобы остановить отладку, нажмите клавиши Shift+F5 в Visual Studio.

Убедившись, что функция выполняется правильно на локальном компьютере, опубликуйте проект в Azure.

Публикация проекта в Azure

Visual Studio может опубликовать локальный проект в Azure. Перед публикацией проекта убедитесь, что в вашей подписке Azure есть приложение-функция. Если у вас еще нет приложения-функции в Azure, публикация Visual Studio создаст его при первой публикации проекта. В этой статье вы создадите приложение-функцию и связанные ресурсы Azure.

  1. Щелкните правой кнопкой мыши проект в обозревателе решений и выберите пункт Опубликовать. Для параметра Целевой объект выберите Azure, а затем нажмите Далее.

    Screenshot of publish window.

  2. Выберите Приложение-функция Azure (Windows) для параметра Определенная цель, чтобы создать приложение-функцию, которое выполняется в Windows, а затем щелкните Далее.

    Screenshot of publish window with specific target.

  3. В разделе Экземпляр функции выберите Создать экземпляр Функций Azure.

    Screenshot of create a new function app instance.

  4. Создайте новый экземпляр, используя значения, указанные в следующей таблице.

    Параметр значение Описание
    Имя Глобально уникальное имя Имя, которое однозначно идентифицирует новое приложение-функцию. Используйте это имя или введите новое. Допустимые символы: a-z, 0-9 и -.
    Подписка Ваша подписка Подписка Azure, которую нужно использовать. Используйте эту подписку или выберите новую из раскрывающегося списка.
    Группа ресурсов Имя группы ресурсов Группа ресурсов, в которой вы хотите создать приложение-функцию. Выберите существующую группу ресурсов в раскрывающемся списке или щелкните Создать, чтобы создать новую группу ресурсов.
    Тип плана Потребление При публикации проекта в приложении-функции, которое работает в плане потребления, вы платите только за выполнение приложения-функции. Другие планы размещения связаны с дополнительными расходами.
    Местонахождение Расположение Службы приложений. Выберите расположение в ближайшем к вам регионе или регионе, ближайшем к другим службам, к которым обращаются ваши функции.
    Хранилище Azure Учетная запись хранения общего назначения Учетная запись хранения Azure — обязательный ресурс для среды выполнения Функций. Выберите Создать, чтобы настроить учетную запись хранения общего назначения. Можно также использовать существующую учетную запись при условии, что она соответствует требованиям учетной записи хранения.

    Screenshot of Create App Service dialog.

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

  6. Рядом с полем Экземпляр Функций установите флажок Запустить из файла пакета. Приложение-функция развертывается с помощью Zip Deploy с включенным режимом Run-From-Package (Выполнение из пакета). Развертывание из ZIP-файла — это рекомендуемый метод развертывания для проекта функций, так как он обеспечивает более высокую производительность.

    Screenshot of Finish profile creation.

  7. Нажмите кнопку Готово и на странице "Публикация" выберите Опубликовать, чтобы развернуть пакет с файлами проекта в новом приложении-функции в Azure.

    После завершения развертывания корневой URL-адрес приложения-функции в Azure отображается на вкладке Опубликовать.

  8. На вкладке "Публикация" в разделе "Размещение" выберите Открыть на портале Microsoft Azure. В результате на портале Azure будет открыт новый ресурс Azure для приложения-функции.

    Screenshot of Publish success message.

Проверка функции в Azure

  1. В Cloud Explorer приложения-функция уже должно быть выбрано. Если это не так, разверните свою подписку и выберите пункт >Службы приложений, затем выберите новое приложение-функцию.

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

    Function app running

  3. В адресной строке браузера добавьте строку /api/HttpExample?name=Functions к базовому URL-адресу и выполните запрос.

    URL-адрес для вызова функции, активируемой HTTP-запросом, указывается в следующем формате:

    http://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. Перейдите по этому URL-адресу и увидите в браузере ответ на удаленный запрос GET, возвращаемый функцией. Он выглядит аналогично следующему примеру:

    Function response in the browser

Очистка ресурсов

Под ресурсами в Azure подразумеваются приложения-функции, функции, учетные записи хранения и т. д. Они объединяются в группы ресурсов, при удалении которых удаляются и все данные в них.

Вы создали ресурсы Azure для работы с этим кратким руководством. Вам могут быть выставлены счета за эти ресурсы в зависимости от состояния учетной записи и цен на службы. Другие краткие руководства в этой коллекции созданы на основе этого документа. Если вы планируете работать с последующими руководствами или краткими руководствами, а также или любыми службами, созданными при работе с этим руководством, не очищайте ресурсы.

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

  1. В диалоговом окне "Публикация из Visual Studio" в разделе "Размещение" выберите Открыть на портале Mirosoft Azure.

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

    Select the resource group to delete from the function app page

  3. На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.

  4. Выберите Удалить группу ресурсов и следуйте инструкциям.

    Удаление может занять несколько минут. После этого на несколько секунд появится уведомление. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.

Следующие шаги

В рамках этого краткого руководства вы с помощью Visual Studio создали и опубликовали в Azure приложение-функцию C# с простой функцией, активируемой HTTP-запросом.

Дополнительные сведения о работе с функциями C#, выполняемыми в изолированном рабочем процессе, см. в руководстве по запуску Функции Azure C# в изолированном рабочем процессе. Ознакомьтесь с поддерживаемыми версиями .NET, чтобы просмотреть другие версии поддерживаемых версий .NET в изолированном рабочем процессе.

Перейдите к следующей статье, чтобы узнать, как добавить привязку очереди службы хранилища Azure к этой функции:

Connect functions to Azure Storage using Visual Studio Code (Подключение функций к службе хранилища Azure с помощью Visual Studio Code)