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


Краткое руководство. Создание приложения Устойчивые функции C#

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

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

В этом кратком руководстве вы используете Visual Studio Code для локального создания и тестирования приложения hello world Устойчивые функции. Приложение-функция управляет и объединяет вызовы других функций. Затем вы публикуете код функции в Azure. Используемые средства доступны через расширение Visual Studio Code Функции Azure.

Снимок экрана: код приложения Устойчивые функции в Visual Studio Code.

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

Для работы с этим кратким руководством вам понадобится:

  • Установленный экземпляр Visual Studio Code.

  • Установлены следующие расширения Visual Studio Code:

  • Последняя версия установленных Функции Azure Core Tools.

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

  • Пакет SDK для .NET Core версии 3.1 или более поздней версии.

  • Средство тестирования HTTP, которое обеспечивает безопасность данных. Дополнительные сведения см. в средствах тестирования HTTP.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Создание проекта Функций Azure

В Visual Studio Code создайте локальный проект Функции Azure.

  1. В меню "Вид" выберите палитру команд (или нажмите клавиши CTRL+SHIFT+P).

  2. В командной строке (>), введите и выберите Функции Azure: Создать проект.

    Снимок экрана: команда для создания проекта

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

  4. В запросах выберите или введите следующие значения:

    Prompt Действие Description
    Выбор языка для проекта приложения-функции выберите C#. Создает локальный проект функций C#.
    Выбор версии Выберите Функции Azure версии 4. Этот параметр отображается только в том случае, если основные инструменты еще не установлены. Основные инструменты устанавливаются при первом запуске приложения.
    Выберите среду выполнения .NET Выберите изолированное .NET 8.0. Создает проект Функций, поддерживающий .NET 8, работающий в изолированном рабочем процессе и Функции Azure runtime 4.0. Дополнительные сведения см. в статье Выбор целевых версий среды выполнения Функций Azure.
    Выбор шаблона для первой функции проекта Выберите Устойчивые функции оркестрации. Создает оркестрацию Устойчивые функции.
    Выбор типа устойчивого хранилища Выберите служба хранилища Azure. Поставщик хранилища по умолчанию для Устойчивые функции. Дополнительные сведения см. в разделе Устойчивые функции поставщиков хранилища.
    Укажите имя функции Введите HelloOrchestration. Имя функции оркестрации.
    Укажите пространство имен Введите Company.Function. Пространство имен для созданного класса.
    Выбор способа открытия проекта Выберите "Открыть" в текущем окне. Открывает Visual Studio Code в выбранной папке.

Visual Studio Code устанавливает Функции Azure core Tools, если это необходимо для создания проекта. Кроме того, создается проект приложения-функции в папке. Проект будет содержать файлы конфигурации host.json и local.settings.json.

Другой файл, HelloOrchestration.cs, содержит основные стандартные блоки приложения Устойчивые функции:

Метод Description
HelloOrchestration Определяет оркестрацию приложений Устойчивые функции. В этом случае оркестрация запускается, создает список, а затем добавляет результат трех вызовов функций в список. После завершения трех вызовов функции возвращается список.
SayHello Простое приложение-функция, которое возвращает hello. Эта функция содержит бизнес-логику, которая оркестрируется.
HelloOrchestration_HttpStart Функция с триггером HTTP, которая запускает экземпляр оркестрации и возвращает ответ на состояние проверки.

Дополнительные сведения об этих функциях см. в Устойчивые функции типах и функциях.

Настройка хранилища

Вы можете использовать Azurite, эмулятор для служба хранилища Azure, чтобы протестировать функцию локально. В local.settings.json задайте для этого значения AzureWebJobsStorage значение UseDevelopmentStorage=true :

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated"
  }
}

Чтобы установить и запустить расширение Azurite в Visual Studio Code, в палитре команд введите Azurite: "Пуск " и нажмите клавишу ВВОД.

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

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

Функции Azure Core Tools предоставляет возможность запуска проекта Функции Azure на локальном компьютере разработки. Вам будет предложено установить эти средства при первом запуске функции в Visual Studio Code.

  1. В Visual Studio Code установите точку останова SayHello в коде функции действия, а затем выберите F5, чтобы запустить проект приложения-функции. На панели терминала отображаются выходные данные основных инструментов.

    Примечание.

    Дополнительные сведения об отладке см. в Устойчивые функции диагностика.

    Если появится сообщение "Нет найденных функций заданий", обновите установку Функции Azure Core Tools до последней версии.

  2. На панели терминала скопируйте конечную точку URL-адреса функции, активируемой HTTP.

    Снимок экрана: локальное окно вывода Azure.

  3. Используйте средство тестирования HTTP для отправки HTTP-запроса POST в конечную точку URL-адреса.

    Ответ — это начальный результат функции HTTP. Он позволяет узнать, что Устойчивые функции оркестрация приложений успешно запущена. Он еще не отображает конечный результат оркестрации. Ответ включает несколько полезных URL-адреса.

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

  4. Скопируйте значение statusQueryGetUriURL-адреса, вставьте его в адресную строку браузера и выполните запрос. Кроме того, можно продолжать использовать средство тестирования HTTP для выдачи запроса GET.

    Запрос запрашивает экземпляр оркестрации для состояния. Вы увидите, что экземпляр завершен и содержит выходные данные или результаты приложения Устойчивые функции, как показано в этом примере:

    {
        "name":"HelloCities",
        "instanceId":"7f99f9474a6641438e5c7169b7ecb3f2",
        "runtimeStatus":"Completed",
        "input":null,
        "customStatus":null,
        "output":"Hello, Tokyo! Hello, London! Hello, Seattle!",
        "createdTime":"2023-01-31T18:48:49Z",
        "lastUpdatedTime":"2023-01-31T18:48:56Z"
    }
    

    Совет

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

  5. Чтобы остановить отладку, в Visual Studio Code выберите SHIFT+F5.

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

Вход в Azure

Прежде чем создавать ресурсы Azure или публиковать приложение, необходимо войти в Azure.

  1. Если вы еще не вошли, на панели действий выберите значок Azure. Затем в разделе "Ресурсы" выберите вход в Azure.

    Снимок экрана: вход в окно Azure в Visual Studio Code.

    Если вы уже выполнили вход и видите существующие подписки, перейдите к следующему разделу. Если у вас еще нет учетной записи Azure, выберите "Создать учетную запись Azure". Учащиеся могут выбрать "Создать учетную запись Azure для учащихся".

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

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

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

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

  1. В Visual Studio Code нажмите клавишу F1, чтобы открыть палитру команд. В командной строке (>), введите и выберите Функции Azure: создание приложения-функции в Azure.

  2. В запросах укажите следующие сведения:

    Prompt Действие
    Выбор подписки Выберите подписку Azure для использования. Запрос не отображается, если в разделе "Ресурсы" отображается только одна подписка.
    Ввод глобально уникального имени для приложения-функции Введите имя, допустимое в URL-пути. Введенное имя проверяется, чтобы убедиться, что оно уникально в Функции Azure.
    Выберите стек сред выполнения Выберите языковую версию, выполняемую локально.
    Выбор расположения для новых ресурсов Выберите регион Azure. Для повышения производительности выберите регион рядом с вами.

    На панели "Журнал действий" расширение Azure отображает состояние отдельных ресурсов, созданных в Azure.

    Снимок экрана: журнал создания ресурсов Azure.

  3. При создании приложения-функции в подписке Azure создаются следующие связанные ресурсы. Ресурсы именуются на основе имени, введенного для приложения-функции.

    • группу ресурсов — логический контейнер связанных ресурсов;
    • Учетная запись хранения Azure уровня "Стандартный" для сохранения состояния и других сведений о проектах.
    • Приложение-функция, которое предоставляет окружение для выполнения кода вашей функции. Приложение-функция позволяет группировать функции в логические единицы и упростить развертывание, масштабирование и совместное использование ресурсов, а также управление ими в рамках единого плана размещения.
    • План службы приложение Azure, определяющий базовый узел приложения-функции.
    • Экземпляр Application Insights, подключенный к приложению-функции, и который отслеживает использование функций в приложении.

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

    Совет

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

Развертывание проекта в Azure

Внимание

Развертывание в существующем приложении-функции всегда перезаписывает содержимое этого приложения в Azure.

  1. В палитре команд введите и выберите Функции Azure: Развернуть в приложении-функции.

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

  3. После завершения развертывания выберите "Просмотреть выходные данные ", чтобы просмотреть результаты создания и развертывания, включая созданные ресурсы Azure. Если вы пропустили уведомление, выберите значок колокольчика в правом нижнем углу, чтобы увидеть его снова.

    Снимок экрана с окном

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

  1. На панели вывода Visual Studio Code скопируйте URL-адрес триггера HTTP. URL-адрес для вызова функции, активируемой HTTP-запросом, должен быть в следующем формате:

    https://<function-app-name>.azurewebsites.net/api/HelloOrchestration_HttpStart

  2. Вставьте новый URL-адрес HTTP-запроса в адресную строку браузера. При использовании опубликованного приложения необходимо получить тот же ответ о состоянии, который вы получили при локальном тестировании.

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

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

Если вам больше не нужны ресурсы, созданные для выполнения краткого руководства, чтобы избежать связанных затрат в подписке Azure, удалите группу ресурсов и все связанные ресурсы.

В этом кратком руководстве вы используете Visual Studio 2022 для локального создания и тестирования приложения hello world Устойчивые функции. Функция оркеструет и объединяет вызовы других функций. Затем вы публикуете код функции в Azure. Используемые средства доступны через рабочую нагрузку разработки Azure в Visual Studio 2022.

Снимок экрана: код приложения Устойчивые функции в Visual Studio 2019.

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

Для работы с этим кратким руководством вам понадобится:

  • Необходимо установить Visual Studio 2022.

    Убедитесь, что рабочая нагрузка Разработка для Azure также установлена. Visual Studio 2019 также поддерживает разработку Устойчивые функции, но пользовательский интерфейс и шаги отличаются.

  • Эмулятор Azurite установлен и запущен.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

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

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

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

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

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

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

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

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

    Параметр Действие Description
    Рабочая роль Функций Выберите изолированное .NET 8 (долгосрочная поддержка). Создает проект Функции Azure, поддерживающий .NET 8, работающий в изолированном рабочем процессе и среде выполнения Функции Azure 4.0. Дополнительные сведения см. в статье о том, как настроить версию среды выполнения Функции Azure.
    Function Введите Устойчивые функции оркестрации. Создает оркестрацию Устойчивые функции.

    Примечание.

    Если в рабочем меню "Функции" не отображается изолированный .NET 8 (долгосрочная поддержка), возможно, у вас нет последних наборов инструментов и шаблонов Функции Azure. Перейдите в раздел "Параметры>инструментов>" проектов и решений> Функции Azure> Check для скачивания последних версий.

  5. Чтобы использовать эмулятор Azurite, установите флажок Use Azurite для учетной записи хранения среды выполнения (AzureWebJobStorage). Чтобы создать проект Функций с помощью шаблона оркестрации Устойчивые функции, нажмите кнопку "Создать". В проекте есть базовые файлы конфигурации, необходимые для выполнения функций.

    Примечание.

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

В папке приложения файл с именем Function1.cs содержит три функции. Три функции являются основными стандартными блоками приложения Устойчивые функции:

Метод Description
RunOrchestrator Определяет оркестрацию приложений Устойчивые функции. В этом случае оркестрация запускается, создает список, а затем добавляет результат трех вызовов функций в список. После завершения трех вызовов функции возвращается список.
SayHello Простое приложение-функция, которое возвращает hello. Эта функция содержит бизнес-логику, которая оркестрируется.
HttpStart Функция с триггером HTTP, которая запускает экземпляр оркестрации и возвращает ответ на состояние проверки.

Дополнительные сведения об этих функциях см. в Устойчивые функции типах и функциях.

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

Функции Azure Core Tools предоставляет возможность запуска проекта Функции Azure на локальном компьютере разработки. Вам будет предложено установить эти средства при первом запуске функции в Visual Studio Code.

  1. В Visual Studio Code установите точку останова в коде SayHello функции действия и выберите F5. Если появится запрос, примите запрос из Visual Studio, чтобы скачать и установить средства Функции Azure Core (командная строка). Кроме того, возможно, вам понадобиться включить исключение брандмауэра, чтобы инструменты могли обрабатывать HTTP-запросы.

    Примечание.

    Дополнительные сведения об отладке см. в Устойчивые функции диагностика.

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

    Снимок экрана: локальная среда выполнения Azure.

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

    Снимок экрана: окно браузера с вызовом statusQueryGetUri.

    Ответ — это начальный результат функции HTTP. Он позволяет узнать, что устойчивый оркестрация успешно запущена. Он еще не отображает конечный результат оркестрации. Ответ включает несколько полезных URL-адреса.

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

  4. Скопируйте значение statusQueryGetUriURL-адреса, вставьте его в адресную строку браузера и выполните запрос.

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

    {
        "name":"HelloCities",
        "instanceId":"668814ac6ce84a43a9e6757f81dbc0bc",
        "runtimeStatus":"Completed",
        "input":null,
        "customStatus":null,
        "output":"Hello, Tokyo! Hello, London! Hello Seattle!",
        "createdTime":"2023-01-31T16:44:34Z",
        "lastUpdatedTime":"2023-01-31T16:44:37Z"
    }
    

    Совет

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

  5. Чтобы остановить отладку, выберите SHIFT+F5.

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

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

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

  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. На странице профиля публикации скопируйте базовый URL-адрес приложения-функции. Замените localhost:port часть URL-адреса, который вы использовали при тестировании функции локально новым базовым URL-адресом.

    URL-адрес для вызова триггера HTTP устойчивой функции должен быть в следующем формате:

    https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>_HttpStart

  2. Вставьте новый URL-адрес HTTP-запроса в адресную строку браузера. При тестировании опубликованного приложения необходимо получить тот же ответ состояния, который вы получили при локальном тестировании.

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

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

Если вам больше не нужны ресурсы, созданные для выполнения краткого руководства, чтобы избежать связанных затрат в подписке Azure, удалите группу ресурсов и все связанные ресурсы.