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

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

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

Внимание

Содержимое этой статьи изменяется на основе выбранной модели программирования Node.js в селекторе в верхней части страницы. Модель версии 4 общедоступна и предназначена для более гибкого и интуитивно понятного интерфейса для разработчиков JavaScript и TypeScript. Дополнительные сведения о различиях между версиями 3 и 4 см. в руководстве по миграции.

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

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

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

  • Расширение Visual Studio Code Функции Azure версии 1.10.4 или более поздней версии.
  • Средство тестирования HTTP, которое обеспечивает безопасность данных. Дополнительные сведения см. в средствах тестирования HTTP.

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

  • установлен Node.js версии 16.x+ .
  • установлен Node.js версии 18.x+ .

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

Создание локального проекта

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

  1. В Visual Studio Code выберите F1 (или нажмите клавиши CTRL/CMD+SHIFT+P), чтобы открыть палитру команд. В командной строке (>), введите и выберите Функции Azure: Создать проект.

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

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

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

    Prompt Действие Description
    Выбор языка для проекта приложения-функции Выберите JavaScript. Создает локальный проект функций Node.js.
    Выбор модели программирования JavaScript Выберите модель версии 3. Задает модель программирования версии 3.
    Выбор версии Выберите Функции Azure версии 4. Этот параметр отображается только в том случае, если основные инструменты еще не установлены. В этом случае основные средства устанавливаются при первом запуске приложения.
    Выбор шаблона для первой функции проекта выберите Пока пропустить.
    Выбор способа открытия проекта Выберите "Открыть" в текущем окне. Открывает Visual Studio Code в выбранной папке.
  1. В запросах укажите следующие сведения:

    Prompt Действие Description
    Выбор языка для проекта приложения-функции Выберите JavaScript. Создает локальный проект функций Node.js.
    Выбор модели программирования JavaScript Выберите модель версии 4. Выберите модель программирования версии 4.
    Выбор версии Выберите Функции Azure версии 4. Этот параметр отображается только в том случае, если основные инструменты еще не установлены. В этом случае основные средства устанавливаются при первом запуске приложения.
    Выбор шаблона для первой функции проекта выберите Пока пропустить.
    Выбор способа открытия проекта Выберите "Открыть" в текущем окне. Открывает Visual Studio Code в выбранной папке.

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

В корневой папке также создается файл package.json .

Установка пакета npm для расширения "Устойчивые функции"

Для работы с Устойчивые функции в приложении-функции Node.js используется библиотека, называемая устойчивыми функциями.

Чтобы использовать модель программирования версии 4, установите предварительную версию версии 3.x библиотеки устойчивых функций.

  1. Используйте меню "Вид" или нажмите клавиши CTRL+SHIFT+" для открытия нового терминала в Visual Studio Code.
  1. Установите пакет npm устойчивых функций, выполнив npm install durable-functions в корневом каталоге приложения-функции.
  1. Установите предварительную версию пакета npm для устойчивых функций, выполнив в npm install durable-functions@preview корневом каталоге приложения-функции.

Создание функций

Самый простой Устойчивые функции приложение имеет три функции:

  • Функция Orchestrator: рабочий процесс, который оркеструет другие функции.
  • Функция действия: функция, вызываемая функцией оркестратора, выполняет работу и при необходимости возвращает значение.
  • Клиентская функция: обычная функция в Azure, которая запускает функцию оркестратора. В этом примере используется функция, активироваемая HTTP.

Функция оркестратора

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

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

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

    Prompt Действие Description
    Выбор шаблона для функции Выберите оркестратор Устойчивые функции. Создает оркестрацию приложений Устойчивые функции.
    Выбор типа устойчивого хранилища Выберите служба хранилища Azure (по умолчанию). Выбирает серверную часть хранилища, используемую для приложения Устойчивые функции.
    Укажите имя функции Введите HelloOrchestrator. Имя устойчивой функции.

Вы добавили оркестратор для координации функций действий. Откройте файл HelloOrchestrator/index.js и изучите функцию оркестратора. Каждый вызов context.df.callActivity приводит к вызову функции действия с именем Hello.

Затем добавьте указанную Hello функцию действия.

Функция действия

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

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

    Prompt Действие Description
    Выбор шаблона для функции Выберите действие Устойчивые функции. Создает функцию действия.
    Укажите имя функции Введите Hello. Имя устойчивой функции.

Вы добавили Hello функцию действия, вызываемую оркестратором. Откройте файл Hello/index.js и убедитесь, что эта функция принимает имя в качестве входных данных и возвращает приветствие. Функция действия — это выполнение "реальной работы" в рабочем процессе, например вызов базы данных или выполнение некоторых недетерминированных вычислений.

Наконец, добавьте функцию, активированную HTTP, которая запускает оркестрацию.

Функция клиента (начальный объект HTTP)

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

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

    Prompt Действие Description
    Выбор шаблона для функции Выберите начальный Устойчивые функции HTTP. Создает начальную функцию HTTP.
    Укажите имя функции Введите DurableFunctionsHttpStart. Имя функции действия.
    Уровень авторизации Выберите "Анонимный". Для демонстрационных целей это значение позволяет вызывать функцию без использования проверки подлинности.

Вы добавили функцию, активированную HTTP, которая запускает оркестрацию. Откройте файл DurableFunctionsHttpStart/index.js и убедитесь, что эта функция запускает оркестрацию с помощью client.startNew. Затем он используется client.createCheckStatusResponse для возврата HTTP-ответа, содержащего URL-адреса, которые можно использовать для мониторинга и управления новым оркестрацией.

Теперь у вас есть приложение Устойчивые функции, которое можно запустить локально и развернуть в Azure.

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

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

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

    Prompt Действие Description
    Выбор шаблона для функции Выберите оркестратор Устойчивые функции. Создает файл с Устойчивые функции оркестрацией приложений, функцией действия и устойчивой функцией запуска клиента.
    Выбор типа устойчивого хранилища Выберите служба хранилища Azure (по умолчанию). Задает серверную часть хранилища, используемую для приложения Устойчивые функции.
    Укажите имя функции Введите привет. Имя устойчивой функции.

Откройте src/functions/hello.js , чтобы просмотреть созданные вами функции.

Вы создали оркестратор, который вызывается helloOrchestrator для координации функций действий. Каждый вызов вызывает context.df.callActivity функцию helloдействия.

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

Наконец, также добавлена функция с триггером HTTP, которая запускает оркестрацию. В том же файле видно, что он используется client.startNew для запуска новой оркестрации. Затем он используется client.createCheckStatusResponse для возврата HTTP-ответа, содержащего URL-адреса, которые можно использовать для мониторинга и управления новым оркестрацией.

Теперь у вас есть приложение Устойчивые функции, которое можно запустить локально и развернуть в Azure.

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

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

  1. Чтобы проверить функцию, установите точку останова Hello в коде функции действия (в Hello/index.js). Выберите F5 или выберите "Отладка " в палитре команд, чтобы запустить проект приложения-функции. Выходные данные основных инструментов отображаются на панели терминала.

    Примечание.

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

  1. Чтобы проверить функцию, установите точку останова hello в коде функции действия (в src/functions/hello.js). Выберите F5 или выберите "Отладка " в палитре команд, чтобы запустить проект приложения-функции. Выходные данные основных инструментов отображаются на панели терминала.

    Примечание.

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

  1. Для выполнения Устойчивых функций требуется учетная запись хранения Azure. Когда Visual Studio Code предложит выбрать учетную запись хранения, щелкните Выбрать учетную запись хранения.

    Снимок экрана: окно генерации оповещений Visual Studio Code. Выделена учетная запись хранения.

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

    Prompt значение Описание
    Выбор подписки имя вашей подписки Выберите подписку Azure.
    Выберите учетную запись хранения Создать учетную запись хранения
    Ввод имени новой учетной записи хранения уникальное имя Имя учетной записи хранения для создания
    Выберите группу ресурсов уникальное имя Имя создаваемой группы ресурсов
    Выбор расположения region Выберите ближайший регион.
  3. На панели терминала скопируйте конечную точку URL-адреса функции, активируемой HTTP.

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

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

    Последний сегмент замените именем функции оркестратора (HelloOrchestrator в нашем примере). URL-адрес должен выглядеть приблизительно так: http://localhost:7071/api/orchestrators/HelloOrchestrator.

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

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

    Последний сегмент замените именем функции оркестратора (HelloOrchestrator в нашем примере). URL-адрес должен выглядеть приблизительно так: http://localhost:7071/api/orchestrators/HelloOrchestrator.

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

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

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

    {
        "name": "HelloOrchestrator",
        "instanceId": "9a528a9e926f4b46b7d3deaa134b7e8a",
        "runtimeStatus": "Completed",
        "input": null,
        "customStatus": null,
        "output": [
            "Hello Tokyo!",
            "Hello Seattle!",
            "Hello London!"
        ],
        "createdTime": "2020-03-18T21:54:49Z",
        "lastUpdatedTime": "2020-03-18T21:54:54Z"
    }
    
  1. Скопируйте значение statusQueryGetUriURL-адреса, вставьте его в адресную строку браузера и выполните запрос. Вы также можете продолжать использовать средство тестирования HTTP для выдачи запроса GET.

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

    {
        "name": "helloOrchestrator",
        "instanceId": "6ba3f77933b1461ea1a3828c013c9d56",
        "runtimeStatus": "Completed",
        "input": "",
        "customStatus": null,
        "output": [
            "Hello, Tokyo",
            "Hello, Seattle",
            "Hello, Cairo"
        ],
        "createdTime": "2023-02-13T23:02:21Z",
        "lastUpdatedTime": "2023-02-13T23:02:25Z"
    }
    
  1. В 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

Примечание.

Чтобы использовать модель программирования версии 4 Node.js, убедитесь, что приложение работает по крайней мере в версии 4.25 среды выполнения Функции Azure.

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

    https://<functionappname>.azurewebsites.net/api/orchestrators/HelloOrchestrator

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

    https://<functionappname>.azurewebsites.net/api/orchestrators/helloOrchestrator

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

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

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

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