Поделиться через


Краткое руководство. Создание первой функции 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) Включить Поскольку для приложения-функции в Azure требуется учетная запись хранения, она назначается или создается при публикации проекта в Azure. При активации с помощью HTTP-запроса не используется строка подключения учетной записи хранения Azure. Для всех остальных типов активации требуется допустимая строка подключения к учетной записи хранения Azure. При выборе этого параметра используется эмулятор Azurite.
    Уровень авторизации Анонимный. Создаваемую функцию может активировать любой клиент без указания ключа. Этот параметр авторизации позволяет легко тестировать новые функции. Дополнительные сведения см . на уровне авторизации.

    Снимок экрана: параметры проекта Функций Azure.

    Убедитесь, что для параметра Уровень авторизации задано значение Анонимно. Если выбрать уровень функции по умолчанию, необходимо представить ключ функции в запросах на доступ к конечной точке функции в 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

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

    Ответ функции localhost в браузере

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

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

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

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

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

    Снимок экрана: область публикации.

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

    Снимок экрана: область публикации с определенным целевым объектом.

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

    Снимок экрана: создание экземпляра приложения-функции.

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

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

    Снимок экрана: диалоговое окно

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

  6. В экземпляре функций установите флажок "Запуск из файла пакета". Приложение-функция развертывается с помощью Zip Deploy с включенным режимом запуска из пакета . Zip Deploy — это рекомендуемый метод развертывания для проекта функций для повышения производительности.

    Снимок экрана: область создания профиля Готово.

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

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

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

    Снимок экрана: сообщение об успешном публикации.

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

  1. В портал Azure вы должны быть на странице обзора для нового приложения функций.

  2. В разделе "Функции" выберите новую функцию с именем HttpExample, а затем на странице функции выберите URL-адрес функции, а затем значок копирования в буфер обмена.

  3. В адресной строке в браузере вставьте только что скопированный URL-адрес и запустите запрос.

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

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

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

    Ответ функции в браузере

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

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

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

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

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

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

    Выбор группы ресурсов, которую требуется удалить со страницы приложения-функции

  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)