Общие сведения о Функции Azure в Visual Studio для Mac

Внимание

Visual Studio для Mac планируется выйти на пенсию 31 августа 2024 г. в соответствии с корпорацией Майкрософт Современная политика жизненного цикла. Хотя вы можете продолжать работать с Visual Studio для Mac, есть несколько других вариантов для разработчиков на Mac, таких как предварительная версия нового расширения комплекта разработки C# для VS Code.

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

Функции Azure позволяют создавать и запускать управляемые событиями фрагменты кода (функции) в облаке без необходимости явной подготовки инфраструктуры и управления инфраструктурой. Дополнительные сведения о функциях Azure см. в документации по функциям Azure.

Требования

Средства функций Azure включены в Visual Studio для Mac 7.5 и более новых версий.

Для создания и развертывания функций необходима также подписка Azure. Если у вас нет учетной записи Azure, вы можете бесплатно зарегистрироваться прямо сегодня и бесплатно использовать популярные службы в течение 12 месяцев. Кроме того, вы получите 200 долл. США на счет и возможность работать с более чем 25 службами, которые всегда предоставляются бесплатно ->https://azure.com/free.

Создание первого проекта с функциями Azure

  1. В Visual Studio для Mac выберите Файл > Новое решение.

  2. В диалоговом окне нового проекта выберите шаблон "Функции Azure" в разделе Облако > Общие и нажмите кнопку Далее:

    New Project dialog showing Azure Functions option

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

    New Project dialog showing Azure Functions templates

    Совет

    Хотя пакеты среды выполнения и шаблонов функций Azure (CLI) поддерживаются в максимально актуальном состоянии, они неизбежно устаревают. При создании проекта функций Visual Studio для Mac проверка обновления интерфейса командной строки и уведомит вас, как показано на следующем рисунке. Просто нажмите кнопку, чтобы скачать обновленные шаблоны. New project dialog showing Azure Functions updates are available

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

    New Project dialog showing additional option

    Дополнительные сведения о различных типах шаблонов функций Azure и свойствах привязки, необходимые для настройки каждого шаблона, см. в разделе Шаблоны доступных функций. В этом примере мы используем триггер HTTP с правами доступа, установленными для анонимных.

  4. Задав параметры, выберите расположение проекта и нажмите Создать.

Visual Studio для Mac создаст проект .NET Standard, содержащий функцию по умолчанию. Он также включает ссылки NuGet на различные пакеты AzureWebJobs, а также на пакет Newtonsoft.Json.

Visual Studio for Mac editor displaying a brand new Azure function from template

Новый проект содержит следующие файлы.

  • Имя-вашей-функции.cs — класс, содержащий стереотипный код для выбранной вами функции. Он содержит атрибут FunctionName с именем функции и атрибут триггера, указывающий, что активирует функцию (например, HTTP-запрос). Дополнительные сведения о методе функции см. в статье Справочник разработчика C# по функциям Azure.
  • host.json — этот файл описывает параметры глобальной конфигурации для узла функции. Пример файла и сведения о доступных параметрах для этого файла см. в статье Справочник по файлу host.json для функций Azure.
  • local.settings.json — этот файл содержит все параметры для локального выполнения функций. Эти параметры используются в основных средствах функций Azure. Дополнительные сведения см. в разделе Файл с локальными параметрами статьи об основных инструментах службы "Функции Azure".

После создания нового проекта функций Azure в Visual Studio для Mac мы можем протестировать созданную по умолчанию функцию, активируемую по HTTP, с локального компьютера.

Тестирование функции локально

Поддержка функций Azure в Visual Studio для Mac позволяет тестировать и выполнять отладку функции на локальном компьютере разработчика.

  1. Чтобы проверить работу локально, нажмите кнопку запуска в Visual Studio для Mac:

    Start debugging button in Visual Studio for mac

  2. Запуск проекта запускает локальную отладку в функции Azure и открывает новое окно терминала, как показано на следующем рисунке:

    terminal window showing function output

    Скопируйте URL-адрес из выходных данных.

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

    HTTP request in browser

Добавление в проект другой функции

Шаблоны функций позволяют быстро создавать новые функции с помощью наиболее распространенных триггеров и шаблонов. Чтобы создать другой тип функции, выполните следующие действия:

  1. Чтобы добавить новую функцию, щелкните правой кнопкой мыши по имени проекта и выберите Добавить > Добавить функцию…:

    context action for adding new function

  2. В диалоговом окне Новая функция Azure выберите необходимую функцию:

    new Azure function dialog

    Список шаблонов функций Azure представлен в разделе "Доступные шаблоны функций".

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

Публикация в Azure

  1. Щелкните правой кнопкой мыши имя проекта и выберите "Опубликовать публикацию > в Azure": Context menu with Publish > Publish to Azure... option highlighted

  2. Если вы уже подключили учетную запись Azure к Visual Studio для Mac, появится список доступных приложений. Если вы еще не вошли в систему, вам будет предложено это сделать.

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

  4. В диалоговом окне "Создание нового Служба приложений" введите параметры:New App Service dialog, with fields for service name, subscription, resource group, and service plan settings.

    Параметр Description
    Имя службы приложений Глобально уникальное имя, определяющее новое приложение-функцию.
    Подписка Подписка Azure, которую нужно использовать.
    Группа ресурсов Имя группы ресурсов, в которой создается приложение-функция. Щелкните +, чтобы создать группу ресурсов.
    План обслуживания Выберите существующий план или создайте пользовательский план. Выберите Расположение в ближайшем к вам регионе или регионе, ближайшем к другим службам, к которым обращаются ваши функции.
  5. Нажмите Далее, чтобы создать учетную запись хранения. Учетная запись хранения Azure — обязательный ресурс для среды выполнения Функций. Нажмите Пользовательский, чтобы создать учетную запись хранения общего назначения, или выберите уже существующую учетную запись:

    New App Service dialog with prompt for storage account name.

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

  7. При публикации может появиться диалоговое окно с сообщением "Обновить версию функций в Azure". Нажмите Да:

    Prompt asking to

Параметры приложения-функции

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

Чтобы открыть параметры приложения, зайдите на портал Azure по адресу https://ms.portal.azure.com/. В разделе Приложения-функции выберите Приложения-функции и выделите имя своей функции:

Azure Functions menu

На вкладке Обзор выберите Дополнительные параметры в разделе Настроенные компоненты.

Over tab of Azure function

Здесь можно настроить параметры для приложения-функции, добавить новые или изменить уже существующие:

application settings area of Azure portal

Один из важных параметров, который может потребоваться задать FUNCTIONS_EXTENSION_VERSION. При публикации из Visual Studio для Mac этому параметру должно быть присвоено значение beta.

Доступные шаблоны функций

  • Триггер GitHub — реагирует на события, происходящие в репозиториях GitHub. Дополнительные сведения см. в статье о работе с GitHub в функциях Azure

    • Комментатор GitHub — функция, которая будет запускаться и добавлять комментарий при получении веб-перехватчика GitHub для проблемы или запроса на вытягивание.
    • Веб-перехватчик GitHub — функция, которая будет запускаться при получении веб-перехватчика GitHub.
  • HTTP — запускает выполнение кода с помощью HTTP-запроса. Существует явные шаблоны для следующих триггеров HTTP:

    • Триггер HTTP
    • HTTP GET создание, обновление, чтение и удаление (CRUD)
    • HTTP POST CRUD
    • Триггер HTTP с параметрами
  • Таймер — выполняет очистку или другие пакетные задачи по предопределенному расписанию. Этот шаблон имеет два поля: имя и расписание, которое представляет собой выражение CRON из шести полей. Дополнительные сведения см. в статье о работе с таймерами в Функциях Azure

  • Триггер очереди — это функция, которая будет отвечать на сообщения по мере их поступления в очередь служба хранилища Очереди Azure. Помимо имени функции в шаблоне необходимо указать Путь (имя очереди, из которого будут считываться сообщения) и учетную запись хранения в параметре Подключение (имя параметра приложения, содержащего строку подключения вашей учетной записи хранения). Дополнительные сведения см. в статье о работе со Хранилищем очередей в Функциях Azure.

  • Триггер BLOB — обрабатывает BLOB-объекты хранилища Azure при их добавлении к контейнеру. Помимо имени функции в этом шаблоне также необходимо указать путь и параметры подключения. В параметре "Путь" указывается путь в учетной записи хранения, который будет отслеживаться триггером. В качестве учетной записи подключения указывается имя параметра приложения, содержащего строку подключения вашей учетной записи хранения. Дополнительные сведения см. в статье о работе с Хранилищами BLOB-объектов в Функциях Azure.

  • Универсальный веб-перехватчик — это простая функция, которая будет выполняться каждый раз при получении запроса от любых служб, поддерживающих веб-перехватчики. Дополнительные сведения см. в статье о работе с универсальными веб-перехватчиками в Функциях Azure.

  • Оркестрация устойчивых функций — устойчивые функции позволяют записывать функции с отслеживанием состояния в бессерверной среде. Расширение автоматически управляет состоянием, создает контрольные точки и перезагружается. Дополнительные сведения см. в руководствах по устойчивым функциям.

  • Изменение размеров изображения — функция, которая создает изображения измененного размера при каждом добавлении BLOB-объекта в контейнер. В шаблоне необходимо указать путь и строку подключения для триггера, вывод для маленьких изображений и вывод для изображений среднего размера.

  • Токен SAS — функция, которая создает токен SAS для указанного контейнера и имени BLOB-объекта службы хранилища Azure. Помимо имени функции в этом шаблоне также необходимо указать путь и параметры подключения. В параметре "Путь" указывается путь в учетной записи хранения, который будет отслеживаться триггером. В качестве учетной записи подключения указывается имя параметра приложения, содержащего строку подключения вашей учетной записи хранения. Также необходимо задать права доступа. Уровень авторизации определяет, требуется ли функции ключ API, и какой ключ необходимо использовать. Функция использует ключ функции, администратор использует ключ доступа к учетной записи. Дополнительные сведения см. в функции Azure C# для создания примера маркеров SAS.