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


Краткое руководство: Создание первой функции 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 Functions.

Завершение этого быстрого старта влечет за собой небольшие расходы в несколько центов США или меньше в вашей учетной записи 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 Functions.

    Убедитесь, что для параметра Уровень авторизации задано значение Анонимно. Если выбрать уровень функции по умолчанию, необходимо представить ключ функции в запросах на доступ к конечной точке функции в 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.Anonymous, "get", "post")] HttpRequest req)
{
    return new OkObjectResult("Hello, 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. В экземпляре Functions выберите Создать новую функцию Azure.

    Снимок экрана, который показывает создание нового экземпляра функции-приложения.

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

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