Создание рабочего процесса приложения логики уровня "Стандартный" в одном клиенте Azure Logic Apps с помощью Visual Studio Code

Область применения: Azure Logic Apps (стандартная версия)

В этом руководстве показано, как создать пример рабочего процесса интеграции, который выполняется в однотенантном Azure Logic Apps с помощью Visual Studio Code с расширением Azure Logic Apps (стандартный). Перед созданием этого рабочего процесса вы создадите ресурс приложения логики уровня "Стандартный", который предоставляет следующие возможности:

  • Приложение логики может иметь несколько рабочих процессов с отслеживанием состояния и без отслеживания состояния.

  • Рабочие процессы в одном приложении логики и клиенте выполняются в том же процессе, что и среда выполнения Azure Logic Apps, поэтому они используют одни и те же ресурсы и обеспечивают лучшую производительность.

  • Вы можете локально создавать, запускать и тестировать рабочие процессы с помощью среды разработки Visual Studio Code.

    Когда вы будете готовы, вы можете развернуть приложение логики в Azure, где рабочий процесс может выполняться в среде Azure Logic Apps с одним клиентом или в Среда службы приложений версии 3 (только Служба приложений windows). Вы также можете развернуть и запустить рабочий процесс в любом месте, где kubernetes может выполняться, включая Azure, Служба Azure Kubernetes, локальные или даже другие облачные поставщики из-за контейнерной среды выполнения Azure Logic Apps.

    Примечание.

    Развертывание приложения логики в кластере Kubernetes в настоящее время находится в общедоступной предварительной версии.

    Дополнительные сведения о однотенантной среде Azure Logic Apps см . в статье "Однотенантное" и "Мультитенантное" и "среда службы интеграции".

Хотя пример рабочего процесса основан на использовании облака и состоит всего из двух этапов, можно создавать рабочие процессы из сотен операций, которые могут подключать широкий спектр приложений, данных, служб и систем в облачных, локальных и гибридных средах. Пример рабочего процесса начинается со встроенного триггера запроса, затем выполняется операция Office 365 Outlook. Триггер создает вызываемую конечную точку для рабочего процесса и ожидает входящего HTTPS-запроса от любого вызывающего объекта. Когда триггер получает запрос и срабатывает, следующее действие выполняется путем отправки электронного сообщения на указанный адрес электронной почты вместе с выбранными выходными данными триггера.

Совет

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

Чтобы создать этот пример рабочего процесса с помощью портала Azure, выполните действия, описанные в статье Создание рабочих процессов интеграции в Azure Logic Apps с одним клиентом и на портале Azure. Оба варианта предоставляют возможность разрабатывать, запускать и развертывать рабочие процессы приложений логики в одних и тех же средах. Однако с помощью редактора Visual Studio Code можно локально разрабатывать, тестировать и запускать рабочие процессы в своей среде разработки.

Снимок экрана: Visual Studio Code, проект приложения логики и рабочий процесс.

Со временем вы сможете выполнить следующие высокоуровневые задачи:

  • Создание проекта для приложения логики и пустого рабочего процесса с отслеживанием состояния.
  • Добавление триггера и действия.
  • Запуск, тестирование, отладка и анализ журнала выполнения в локальной среде.
  • Поиск сведений о доменном имени для доступа к брандмауэру.
  • Развертывание в Azure и включение Application Insights (необязательно).
  • Управление развернутым приложением логики в Visual Studio Code и на портале Azure.
  • включение журнала выполнения для рабочих процессов без отслеживания состояния.
  • Включение или открытие Application Insights после развертывания.

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

Доступ и подключения

Инструменты

  1. Скачайте и установите Visual Studio Code, который является бесплатным.

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

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

    Автоматическая установка всех зависимостей (предварительная версия)

    Внимание

    Эта возможность входит в предварительную версию, и на нее распространяются Дополнительные условия использования предварительных версий Microsoft Azure.

    Начиная с версии 2.81.5 расширение Azure Logic Apps (standard) для Visual Studio Code включает установщик зависимостей, который автоматически устанавливает все необходимые зависимости в новой двоичной папке и оставляет все существующие зависимости неизменными. Дополнительные сведения см. в статье "Начало работы" с расширением Azure Logic Apps (standard) для Visual Studio Code.

    Это расширение включает следующие зависимости:

    Dependency Description
    C# для Visual Studio Code; Включает функции F5 для запуска рабочего процесса.
    Azurite для Visual Studio Code Предоставляет локальное хранилище данных и эмулятор для использования с Visual Studio Code, чтобы вы могли работать над проектом приложения логики и запускать рабочие процессы в локальной среде разработки. Если вы не хотите, чтобы Azurite автоматически запускал, этот параметр можно отключить:

    1. В меню "Файл" выберите параметры> Параметры.

    2. На вкладке "Пользователь" выберите расширения>Azure Logic Apps (стандартный).

    3. Найдите параметр с именем Azure Logic Apps standard: автозапуск Azurite и снимите выбранный проверка box.
    Пакет SDK для .NET 6.x.x Включает среду выполнения .NET 6.x.x, необходимые для среды выполнения Azure Logic Apps (стандартный).
    Функции Azure Core Tools — версия 4.x Устанавливает версию на основе операционной системы (Windows, macOS или Linux).

    Эти инструменты включают версию той же среды выполнения, которая обеспечивает работу среды выполнения "Функции Azure" и которую расширение Azure Logic Apps (стандартная версия) использует в редакторе Visual Studio Code.
    Node.js версии 16.x.x, если более новая версия еще не установлена Требуется для включения действия "Встроенные операции кода", которое запускает JavaScript.

    Установщик не выполняет следующие задачи:

    • Проверьте, существуют ли необходимые зависимости.
    • Установите только отсутствующие зависимости.
    • Обновите старые версии существующих зависимостей.
    1. Скачайте и установите расширение Azure Logic Apps (standard) для Visual Studio Code, начиная с версии 2.81.5.5.

    2. В Visual Studio Code на панели действий выберите "Расширения". (Клавиатура: клавиша CTRL+SHIFT+X)

    3. В области расширений откройте меню многоточия (...) и выберите "Установить" из VSIX.

    4. Найдите и выберите скачанный VSIX-файл.

      После завершения установки расширение автоматически активирует и запускает команду Validate и install dependency binaries . Чтобы просмотреть журналы процессов, откройте окно вывода .

    5. При появлении следующего запроса нажмите кнопку "Да" (рекомендуется), чтобы убедиться, что вы хотите автоматически установить необходимые зависимости:

      Снимок экрана: запрос на автоматическую установку зависимостей.

    6. При необходимости перезагрузите Visual Studio Code.

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

      C:\Users\<your-user-name\.azurelogicapps\dependencies\<dependency-name>>

    8. Убедитесь, что в Visual Studio Code заданы следующие параметры расширения:

      1. В меню "Файл" выберите параметры> Параметры.

      2. На вкладке "Пользователь" выберите расширения>Azure Logic Apps (стандартный).

      3. Изучите следующие параметры:

        Параметр расширения Значение
        Путь зависимостей C:\Users\<your-user-name>\.azurelogicapps\dependencies
        Время ожидания зависимостей 60 секунд
        Двоичный путь dotnet C:\Users\<your-user-name>\.azurelogicapps\dependencies\DotNetSDK\dotnet.exe
        Двоичный путь к func Core Tools C:\Users\<your-user-name>\.azurelogicapps\dependencies\FuncCoreTools\func
        Двоичный путь узла JS C:\Users\<your-user-name>\.azurelogicapps\dependencies\NodeJs\node
        Автозапуск Azurite Включен
        Время автоматического запуска разработки Включен
    9. Если у вас есть существующий проект приложения логики с пользовательскими задачами, хранящимися в vscode/tasks.json-файле , перед открытием проекта сохраните файл tasks.json в другом месте.

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

    10. При открытии проекта приложения логики отображаются следующие уведомления:

      Notification Действие
      Всегда запускайте фоновый процесс во время разработки? Чтобы быстрее открыть конструктор рабочих процессов, нажмите кнопку "Да" (рекомендуется).
      Настройте Azurite для автоматического запуска проекта? Чтобы хранилище Azurite автоматически запускалось при открытии проекта, нажмите кнопку "Включить автозапуск". В верхней части Visual Studio Code в появившемся окне командной строки нажмите клавишу ВВОД, чтобы принять путь по умолчанию:

      C\Users\<your-user-name>\.azurelogicapps\.azurite

    Известные проблемы с предварительной версией

    • Если вы решили автоматически установить все зависимости на компьютере, который не имеет какой-либо версии пакета SDK для .NET Core, появится следующее сообщение:

      "Не удается найти пакет SDK для .NET Core: ошибка при выполнении dotnet-info: ошибка: dotnet --info "dotnet не распознается как внутренняя или внешняя команда, операблная программа или пакетный файл. Dotnet не распознается как внутренняя или внешняя команда, операблная программа или пакетный файл. . Отладка .NET Core не будет включена. Убедитесь, что пакет SDK для .NET Core установлен и находится на пути".

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

      Если у вас возникли проблемы с открытием существующего проекта приложения логики или запуском задачи отладки (tasks.json) для запуска узла func, и появится это сообщение, выполните следующие действия, чтобы устранить проблему:

      1. Добавьте двоичный путь dotnet в переменную PATH среды.

        1. На панели задач Windows в поле поиска введите переменные среды и выберите "Изменить системные переменные среды".

        2. В поле "Свойства системы" на вкладке "Дополнительно" выберите "Переменные среды".

        3. В поле "Переменные среды" в поле "Пользовательские переменные" для <списка имен> пользователя выберите PATH и нажмите кнопку "Изменить".

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

          C:\Users\<your-user-name>\.azurelogicapps\dependencies\DotNetSDK

        5. По завершении нажмите кнопку OK.

      2. Закройте все окна Visual Studio Code и снова откройте проект.

    • Если у вас возникли проблемы с установкой и проверкой двоичных зависимостей, например:

      • Проблемы с разрешениями Linux
      • Вы получите следующую ошибку: <файл или путь> не существует
      • Проверка зависает на <имени> зависимостей.

      Выполните следующие действия, чтобы снова запустить команду Проверки и установки двоичных зависимостей :

      1. В меню Вид выберите Палитра команд.

      2. Когда появится окно командной строки, введите и выполните команду "Проверить и установить двоичные зависимости ".

    • Если у вас нет .NET Core 7 или более поздней версии, и вы открываете рабочую область Azure Logic Apps, содержащую проект Функции Azure, вы получите следующее сообщение:

      Возникли проблемы с загрузкой проекта [function-name].csproj. Дополнительные сведения см. в журнале.

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

    Установка каждой зависимости отдельно

    Dependency Description
    Пакет SDK для .NET 6.x.x Включает среду выполнения .NET 6.x.x, необходимые для среды выполнения Azure Logic Apps (стандартный).
    Функции Azure Core Tools — версия 4.x - Windows: используйте версию установщика Майкрософт (MSI), которая является func-cli-X.X.XXXX-x*.msi.
    - macOS
    - Linux

    Эти инструменты включают версию той же среды выполнения, которая обеспечивает работу среды выполнения "Функции Azure" и которую расширение Azure Logic Apps (стандартная версия) использует в редакторе Visual Studio Code.

    Если у вас установлена более ранняя версия, то сначала удалите эту версию или убедитесь в том, что переменная среды PATH указывает на версию, которую вы загрузили и установили.
    Node.js версии 16.x.x, если более новая версия еще не установлена Требуется для включения действия "Встроенные операции кода", которое запускает JavaScript.

    Примечание. Для Windows скачайте версию MSI. Если вместо этого используется ZIP-версия, обеспечьте доступ к Node.js вручную, используя переменную среды PATH для вашей операционной системы.
  4. Если вы уже установили версию расширения Azure Logic Apps (standard), которая автоматически устанавливает все зависимости (предварительная версия), пропустите этот шаг. В противном случае скачайте и установите расширение Azure Logic Apps (standard) для Visual Studio Code.

    1. В Visual Studio Code выберите пункт Расширения на панели инструментов слева.

    2. В поле поиска расширений введите стандартные приложения логики Azure. В списке результатов выберите Azure Logic Apps (стандартный)>Install.

      После завершения установки расширение появится в списке Расширения: установленные.

      Снимок экрана: Visual Studio Code с установленным расширением Azure Logic Apps (standard).

      Совет

      Если расширение не отображается в списке установленных расширений, попробуйте перезапустить Visual Studio Code.

    В настоящее время можно одновременно устанавливать расширения потребления (мультитенантные) и стандартные (однотенантные). Процесс разработки в некоторой степени различается, но подписка Azure может включать в себя как типы приложений "Стандартная версия", так и типы приложений "Версия потребления". В Visual Studio Code окно Azure отображает все развернутые и размещенные приложения логики Azure в подписке Azure, но упорядочивает приложения следующим образом:

    • Раздел Logic Apps (Потребление) — все приложения логики потребления в подписке.

    • Раздел ресурсов : все приложения логики "Стандартный" в подписке. Ранее эти приложения логики появились в разделе Logic Apps (Стандартный), который теперь перемещен в раздел "Ресурсы ".

  5. Для локального запуска триггеров и действий на основе веб-перехватчика, например встроенного триггера веб-перехватчика HTTP, в Visual Studio Code необходимо настроить переадресацию для URL-адреса обратного вызова.

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

  7. Если вы создаете ресурсы приложения логики с параметрами, поддерживающими использование приложений Аналитика, можно включить диагностика ведение журнала и трассировку для ресурса приложения логики. Это можно сделать либо при создании приложения логики, либо после его развертывания. Для этого нужен экземпляр Application Insights, но его можно создать заранее, при создании приложения логики или после его развертывания.

Настройка Visual Studio Code

  1. Чтобы убедиться, что все расширения установлены правильно, перезагрузите или перезапустите Visual Studio Code.

  2. Убедитесь, что Visual Studio Code автоматически находит и устанавливает обновления расширений, чтобы все расширения могли получить последние обновления. В противном случае удалите устаревшую версию и установите последнюю версию вручную.

    1. В меню "Файл" выберите параметры> Параметры.

    2. На вкладке "Пользователь" перейдите в раздел "Расширения функций>".

    3. Убедитесь, что выбрана автоматическая проверка Обновления, а для автоматического обновления задано значение "Все расширения".

  3. Убедитесь, что для расширения Azure Logic Apps (цен. категория "Стандартный ") для расширения Azure Logic Apps (цен. категория "Стандартный") задано значение ~4:

    Примечание.

    Эта версия необходима для использования действий Операции встроенного кода.

    1. В меню "Файл" выберите параметры> Параметры.

    2. На вкладке "Пользователь" перейдите к >расширениям>Azure Logic Apps (стандартный).

      Например, можно найти параметр Azure Logic Apps Standard: Project Runtime здесь или использовать поле поиска для поиска других параметров.

      Снимок экрана: параметры Visual Studio Code для расширения Azure Logic Apps (стандартный).

Подключитесь к своей учетной записи Azure

  1. На панели действий Visual Studio Code щелкните значок Azure.

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

  2. В окне Azure в разделе "Ресурсы" выберите вход в Azure. Когда появится страница проверки подлинности Visual Studio Code, выполните вход под учетной записью Azure.

    Снимок экрана: окно Azure и выбранная ссылка для входа в Azure.

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

    1. В списке подписок наведите указатель мыши на первую подписку, так чтобы появилась кнопка Выбор подписок (значок фильтра). Выберите значок фильтра.

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

      Либо в строке состояния Visual Studio Code выберите свою учетную запись Azure.

    2. Когда появится список других подписок, выберите нужные подписки и убедитесь, что выбрано значение ОК.

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

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

  1. На компьютере создайте пустую локальную папку для проекта, который вы затем создадите в Visual Studio Code.

  2. В редакторе Visual Studio Code закройте все открытые папки.

  3. В окне Azure на панели инструментов раздела "Рабочая область" в меню Azure Logic Apps выберите "Создать проект".

    Снимок экрана: окно Azure, панель инструментов рабочей области и меню Azure Logic Apps с выбранным элементом

  4. Если брандмауэр Защитника Windows предлагает предоставить доступ к сети для Code.exe, т. е. Visual Studio Code, и для func.exe, т. е. Azure Functions Core Tools, выберите Частные сети, такие как домашняя или рабочая сеть>Разрешить доступ.

  5. Откройте папку, в которой вы создали папку проекта, выберите эту папку и переходите к следующим действиям.

    Снимок экрана: поле

  6. В появившемся списке шаблонов выберите Рабочий процесс с отслеживанием состояния или Рабочий процесс без отслеживания состояния. В этом примере выбран Рабочий процесс с отслеживанием состояния.

    Снимок экрана: список шаблонов рабочих процессов с выбранным рабочим процессом с отслеживанием состояния.

  7. Укажите имя рабочего процесса и нажмите клавишу ВВОД. В этом примере в качестве имени используется stateful-Workflow .

    Снимок экрана: создание нового рабочего процесса с отслеживанием состояния (3/4) и имени рабочего процесса с отслеживанием состояния.

    Примечание.

    Может возникнуть ошибка с именем azureLogicAppsStandard.createNewProject с сообщением об ошибке Не удается выполнить запись в рабочую область параметров, так как azureFunctions.suppressProject не является зарегистрированной конфигурацией. Если она возникнет, попробуйте установить расширение функций Azure для Visual Studio Code либо непосредственно из Visual Studio Marketplace, либо в Visual Studio Code.

  8. Если Visual Studio Code предложит открыть проект в текущем окне Visual Studio Code или в новом окне Visual Studio Code, выберите "Открыть в текущем окне". В противном случае нажмите кнопку "Открыть" в новом окне.

    Visual Studio Code завершает создание проекта.

  9. На панели действий Visual Studio откройте панель Обозреватель, если она еще не открыта.

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

    Снимок экрана: панель Обозреватель с папкой проекта, папкой рабочего процесса и файлом workflow.json.

    В Visual Studio Code ваш проект приложения логики может относиться к одному из следующих типов:

    • На основе пакета расширений (Node.js) — это тип по умолчанию
    • На основе пакета NuGet (.NET) — его можно преобразовать из типа по умолчанию

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

    В случае с типом по умолчанию на основе пакета расширений ваш проект включает папку и структуру файлов наподобие примера ниже:

    MyBundleBasedLogicAppProjectName
    | .vscode
    | Artifacts
      || Maps 
         ||| MapName1
         ||| ...
      || Schemas
         ||| SchemaName1
         ||| ...
    | WorkflowName1
      || workflow.json
      || ...
    | WorkflowName2
      || workflow.json
      || ...
    | workflow-designtime
    | .funcignore
    | connections.json
    | host.json
    | local.settings.json
    

    На корневом уровне проекта вы найдете следующие файлы и папки:

    Имя. Папка или файл Description
    .vscode Папка Содержит файлы параметров для Visual Studio Code, в том числе файлы extensions.json, launch.json, settings.json и tasks.json files.
    Артефакты Папка Содержит артефакты учетной записи интеграции, которые вы можете определить и использовать в рабочих процессах, поддерживающих сценарии B2B. Например, подобная структура включает карты и схемы для преобразования и проверки XML.
    <Имя рабочего процесса> Папка Для каждого рабочего процесса папка <WorkflowName> включает файл workflow.json, содержащий базовое для этого рабочего процесса определение JSON.
    workflow-designtime Папка Содержит файлы параметров для среды разработки.
    .funcignore Файлы Содержит сведения, касающиеся установленного набора Azure Functions Core Tools.
    connections.json Файлы Содержит метаданные, конечные точки и ключи для всех управляемых подключений и функций Azure, используемых рабочими процессами.

    Внимание! Чтобы в каждой среде использовать разные подключения и функции, не забудьте параметризовать этот файл connections.json и обновить конечные точки.
    host.json Файлы Содержит параметры конфигурации и значения для среды выполнения, например ограничения по умолчанию для платформы Azure Logic Apps с одним клиентом, приложения логики, рабочие процессы, триггеры и действия. На корневом уровне проекта приложения логики файл метаданных host.json содержит параметры конфигурации и значения по умолчанию, которые используют все рабочие процессы при выполнении, будь то локально или в Azure.

    Примечание. При создании приложения логики Visual Studio Code создает резервный файл host.snapshot.*.json в контейнере хранилища. Если вы удалите приложение логики, этот файл резервной копии не будет удален. Если создать другое приложение логики с тем же именем, будет создан другой файл моментального снимка. Для одного и того же приложения логики можно использовать до 10 моментальных снимков. Если вы превышаете это ограничение, вы получите следующую ошибку:

    Microsoft.Azure.WebJobs.Script.WebHost: Repository has more than 10 non-decryptable secrets backups (host))

    Чтобы устранить эту ошибку, удалите лишние файлы моментальных снимков из контейнера хранилища.
    local.settings.json Файлы Содержит параметры приложения, строки подключения и другие параметры, которые используют ваши рабочие процессы при локальном выполнении. Иными словами, эти параметры и значения применяются только в том случае, когда ваши проекты выполняются в локальной среде разработки. При развертывании в Azure этот файл и параметры игнорируются и не включаются в развертывание.

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

    Внимание! Файл local.settings.json может содержать секреты, поэтому не забудьте исключить его из системы управления версиями своего проекта.

Преобразование проекта в пакет NuGet (.NET)

По умолчанию Visual Studio Code создает проект приложения логики, основанный на пакете расширений (Node.js), а не на основе пакета NuGet (.NET). Если требуется проект приложения логики, основанный на пакете NuGet (.NET), например для включения встроенной разработки соединителей, необходимо преобразовать проект из пакета расширения (Node.js) в пакет NuGet (.NET).

Внимание

Это действие является односторонней операцией, которую нельзя отменить.

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

    Снимок экрана: панель Обозреватель с контекстным меню проекта, открытое из пустой области в окне проекта.

  2. При появлении запроса подтвердите преобразование проекта.

Включение создание встроенного соединителя

Можно создать собственные встроенные соединители для любой необходимой службы, используя платформу расширяемости Azure Logic Apps с одним клиентом. Подобно встроенным соединителям, таким как служебная шина Azure и SQL Server, эти соединители обеспечивают более высокую пропускную способность, низкую задержку, локальное подключение и работают изначально в том же процессе, что и среда выполнения Azure Logic Apps с одним клиентом.

Возможность разработки в настоящее время доступна только в Visual Studio Code, но не включена по умолчанию. Чтобы создать эти соединители, выполните следующие действия.

  1. Если вы еще не сделали этого, преобразуйте проект из пакета расширения (Node.js) в пакет NuGet (.NET).

  2. Просмотрите и выполните действия, описанные в статье, Azure Logic Apps, выполняющаяся в любом месте— встроенная расширяемость соединителя.

Добавление настраиваемых артефактов в проект

В рабочем процессе приложения логики некоторые соединители имеют зависимости от артефактов, таких как карты, схемы или сборки. В Visual Studio Code эти артефакты можно передать в проект приложения логики, аналогично тому, как можно отправить эти артефакты в портал Azure с помощью меню ресурсов приложения логики в разделе "Артефакты", например:

Снимок экрана: меню ресурсов приложения логики портал Azure и

Добавление карт в проект

Чтобы добавить карты в проект, в иерархии проектов разверните артефакты >Карты, которая является папкой, в которой можно поместить карты.

Снимок экрана: иерархия проектов Visual Studio Code с развернутыми артефактами и Карты папками.

Добавление схем в проект

Чтобы добавить схемы в проект, в иерархии проектов разверните схемы артефактов>, которая является папкой, в которой можно поместить схемы.

Снимок экрана: иерархия проектов Visual Studio Code с развернутыми папками артефактов и схем.

Добавление сборок в проект

Приложение логики уровня "Стандартный" может использовать или ссылаться на определенные типы сборок, которые можно отправить в проект в Visual Studio Code. Однако их необходимо добавить в определенные папки в проекте. В следующей таблице приведены дополнительные сведения о каждом типе сборки и о том, где именно их следует поместить в проект.

Тип сборки Description
Сборка клиента или пакета SDK (платформа .NET Framework) Этот тип сборки предоставляет хранилище и развертывание клиентского и пользовательского пакета SDK для платформа .NET Framework. Например, встроенный соединитель SAP использует эти сборки для загрузки нераспространимых DLL-файлов SAP NCo.

Убедитесь, что эти сборки добавлены в следующую папку: \lib\buildinOperationSdks\net472
Сборка клиента или пакета SDK (Java) Этот тип сборки предоставляет хранилище и развертывание пользовательского пакета SDK для Java. Например, встроенный соединитель JDBC использует эти JAR-файлы для поиска драйверов JDBC для пользовательских реляционных баз данных (RDB).

Обязательно добавьте эти сборки в следующую папку: \lib\buildinOperationSdks\JAR
Пользовательская сборка (платформа .NET Framework) Этот тип сборки предоставляет хранилище и развертывание пользовательских библиотек DLL. Например, операция преобразования XML использует эти сборки для пользовательских функций преобразования, необходимых во время преобразования XML.

Обязательно добавьте эти сборки в следующую папку: \lib\custom\net472

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

Снимок экрана: Visual Studio Code, проект приложения логики и место отправки сборок.

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

Перенос проектов на основе NuGet для использования сборок lib\*

Внимание

Эта задача необходима только для проектов приложения логики на основе NuGet.

Если вы создали проект приложения логики, когда поддержка сборок не была доступна для рабочих процессов приложений логики уровня "Стандартный", можно добавить следующие строки в <файл project-name.csproj> для работы с проектами, использующих сборки:

  <ItemGroup>
    <LibDirectory Include="$(MSBuildProjectDirectory)\lib\**\*"/>
  </ItemGroup>
  <Target Name="CopyDynamicLibraries" AfterTargets="_GenerateFunctionsExtensionsMetadataPostPublish">
    <Copy SourceFiles="@(LibDirectory)" DestinationFiles="@(LibDirectory->'$(MSBuildProjectDirectory)\$(PublishUrl)\lib\%(RecursiveDir)%(Filename)%(Extension)')"/>
  </Target>

Внимание

Для проекта, работающего в Linux или MacOS, обязательно обновите разделитель каталогов. Например, просмотрите следующее изображение, в которое показан предыдущий код, добавленный в <файл project-name.csproj.>

Снимок экрана: перенесенные сборки и добавленный код в CSPROJ-файле.

Открытие файла определения рабочего процесса в конструкторе

  1. Разверните папку проекта рабочего процесса с именем Stateful-Workflow в этом примере и откройте файл workflow.json .

  2. Откройте контекстное меню файла workflow.json и выберите "Открыть конструктор".

    Снимок экрана: панель Обозреватель, контекстное меню workflow.json файла и выбранный конструктор.

  3. После открытия списка "Включить соединители в Списке Azure" выберите "Использовать соединители из Azure", которые применяются ко всем управляемым или общим соединителям, которые размещаются и выполняются в Azure, а также встроенные соединители или соединители "в приложении", которые выполняются непосредственно с помощью среды выполнения Azure Logic Apps.

    Снимок экрана: панель Обозреватель, открытый список с именем

    Примечание.

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

  4. После открытия списка подписок select выберите подписку Azure, используемую для проекта приложения логики.

    Снимок экрана: панель Обозреватель со списком

  5. После открытия списка групп ресурсов выберите "Создать группу ресурсов".

    Снимок экрана: панель Обозреватель с списком групп ресурсов и выбранным параметром для создания новой группы ресурсов.

  6. Укажите имя для группы ресурсов Azure и нажмите клавишу ВВОД. В этом примере используется Fabrikam-Workflows-RG.

    Снимок экрана: поле Обозреватель области и группы ресурсов.

  7. В списке расположений выберите регион Azure, который будет использоваться при создании ресурсов и группы ресурсов. В этом примере используется Центрально-западная часть США.

    Снимок экрана: панель обозревателя со списком расположений и выбранным значением

    После выполнения этого шага Visual Studio Code откроет конструктор рабочих процессов.

    Примечание.

    Когда Visual Studio Code запустит API-интерфейс времени разработки рабочего процесса, может появиться сообщение о том, что запуск может занять несколько секунд. Игнорируйте это сообщение или нажмите кнопку ОК.

    Если конструктор не откроется, проверьте раздел устранения неполадок: Конструктор не открывается.

    После появления конструктора в конструкторе появится запрос на добавление триггера .

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

    Снимок экрана: конструктор рабочих процессов, выбранная строка с именем

  9. Затем добавьте триггер и действия в свой рабочий процесс.

Добавление триггера и действий

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

Внимание

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

Рабочий процесс в этом примере использует следующие триггеры и действия:

Добавление триггера "Запрос"

  1. В конструкторе рабочих процессов в области добавления триггера откройте список среды выполнения и выберите "В приложении ", чтобы просмотреть только доступные встроенные триггеры соединителя.

  2. Найдите триггер запроса с именем "При получении HTTP-запроса" с помощью поля поиска и добавьте этот триггер в рабочий процесс. Дополнительные сведения см. в разделе "Создание рабочего процесса с помощью триггера и действий".

    Снимок экрана: конструктор рабочих процессов, добавление области триггера и выбранный триггер с именем

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

    Снимок экрана: панель сведений для триггера с именем

    Совет

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

  3. Сохраните результаты своих действий. На панели инструментов конструктора выберите Сохранить.

Если необходимо удалить элемент из конструктора, выполните эти действия для удаления элементов из конструктора.

Добавление действия Office 365 Outlook

  1. В конструкторе в триггере запроса выберите знак плюса (+) >Добавить действие.

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

  3. Найдите действие управляемого соединителя Office 365 Outlook с именем Send an email (V2) с помощью поля поиска и добавьте это действие в рабочий процесс. Дополнительные сведения см. в разделе "Создание рабочего процесса с помощью триггера и действий".

    Снимок экрана: конструктор рабочих процессов и панель действий с выбранным действием Outlook Office 365 с именем

  4. Когда откроется область проверки подлинности действия, выберите "Войти ", чтобы создать подключение к учетной записи электронной почты.

    Снимок экрана: действие с именем Send an email (V2) с выбранной кнопкой входа.

  5. Следуйте последующим запросам, чтобы выбрать учетную запись, разрешить доступ и разрешить возвращение в Visual Studio Code.

    Примечание.

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

    1. Когда появится запрос Майкрософт, выберите учетную запись пользователя для Office 365 Outlook и выберите "Разрешить доступ".

    2. Когда Azure Logic Apps предложит открыть ссылку Visual Studio Code, нажмите кнопку "Открыть".

      Снимок экрана: запрос на открытие ссылки для Visual Studio Code.

    3. Когда Visual Studio Code предложит открыть инструменты Microsoft Azure, нажмите кнопку "Открыть".

      Снимок экрана: запрос на открытие инструментов Microsoft Azure.

    Совет

    Чтобы пропустить такие будущие запросы, выберите следующие параметры при появлении связанных запросов:

    • Разрешение на открытие ссылки для Visual Studio Code. Выберите всегда разрешать logic-apis-westcentralus.consent.azure-apim.net открывать ссылки этого типа в связанном приложении. Это изменение домена в зависимости от региона Azure, выбранного для ресурса приложения логики.

    • Разрешение на открытие средств Microsoft Azure: выберите " Не запрашивать снова" для этого расширения.

    После создания подключения Visual Studio Code некоторые соединители показывают сообщение о том, что подключение будет допустимо только в течение {n} дней. Это ограничение времени применяется только к длительности при создании рабочего процесса приложения логики в Visual Studio Code. После развертывания это ограничение больше не применяется, так как рабочий процесс может пройти проверку подлинности во время выполнения с помощью управляемого удостоверения, назначаемого системой автоматически. Это управляемое удостоверение отличается от учетных данных проверки подлинности или строки подключения, используемой при создании соединения. Если отключить назначенное системой управляемое удостоверение, подключения во время выполнения работать не будут.

  6. Если в конструкторе не выбрано действие Отправить электронное письмо, выберите это действие.

  7. На вкладке "Параметры" на вкладке "Параметры " укажите необходимые сведения для действия, например:

    Снимок экрана: сведения о действии Office 365 Outlook с именем

    Свойство Обязательное поле значение Описание
    Кому Да <ваш адрес электронной почты> Получатель электронной почты — для целей тестирования вы можете указать собственный адрес электронной почты. В этом примере используется вымышленный адрес электронной почты sophia.owen@fabrikam.com.
    Тема Да Сообщение электронной почты из примера рабочего процесса тему сообщения;
    Текст Да Привет из примера рабочего процесса! Содержимое текста электронного письма.

    Примечание.

    Если вы вносите изменения на вкладке "Тестирование ", убедитесь, что нажмите кнопку "Сохранить ", чтобы зафиксировать эти изменения перед переключением вкладок или переключением фокуса на конструктор. В противном случае Visual Studio Code не сохранит изменения.

  8. Сохраните результаты своих действий. В конструкторе нажмите Сохранить.

Включение веб-перехватчиков, запускаемых локально

При использовании триггера или действия на основе веб-перехватчика, например HTTP Webhook, с рабочим процессом приложения логики, запущенным в Azure, среда выполнения Azure Logic Apps подписывается на конечную точку службы путем создания и регистрации URL-адреса обратного вызова в этой конечной точке. Затем триггер или действие ожидают, пока конечная точка службы не вызовет URL-адрес. Однако при работе в Visual Studio Code созданный URL-адрес обратного вызова начинается с http://localhost:7071/.... Этот URL-адрес предназначен для сервера localhost, который является частным, поэтому конечная точка службы не может вызывать этот URL-адрес.

Для локального запуска триггеров и действий на основе веб-перехватчика в Visual Studio Code необходимо настроить общедоступный URL-адрес, который обеспечивает доступ к серверу localhost и безопасно перенаправляет вызовы из конечной точки службы на URL-адрес обратного вызова перехватчика. Можно использовать службу переадресации и такой инструмент, как ngrok, который открывает HTTP-туннель к порту localhost, или собственный аналогичный инструмент.

Настройка переадресации вызовов с помощью ngrok

  1. Перейдите на веб-сайт ngrok. Зарегистрируйтесь для новой учетной записи или войдите в свою учетную запись, если у вас уже есть.

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

    1. Чтобы найти страницу маркера проверки подлинности, в меню панели мониторинга учетной записи разверните узел "Проверка подлинности" и выберите "Проверка подлинности".

    2. В поле Маркер проверки подлинности скопируйте маркер в надежное расположение.

  3. На странице загрузки ngrok или на панели мониторинга учетной записи скачайте нужную версию ngrok и распакуйте ZIP-файл. Дополнительные сведения см. в разделе Шаг 1. Распаковка для установки.

  4. На компьютере откройте средство командной строки. Перейдите в расположение, где находится файл ngrok.exe.

  5. Подключите клиент ngrok к учетной записи ngrok, выполнив следующую команду. Дополнительные сведения см. разделе Шаг 2. Подключение учетной записи.

    ngrok authtoken <your_auth_token>

  6. Откройте HTTP-туннель для порта localhost 7071, выполнив следующую команду. Дополнительные сведения см. в разделе Шаг 3. Запуск.

    ngrok http 7071

  7. В открывшихся данных найдите следующую строку:

    http://<domain>.ngrok.io -> http://localhost:7071

  8. Скопируйте и сохраните URL-адрес, имеющий следующий формат: http://<domain>.ngrok.io

Настройка URL-адреса переадресации в параметрах приложения

  1. В Visual Studio Code в конструкторе добавьте триггер или действие на основе веб-перехватчика, которое вы хотите использовать.

    Этот пример продолжается с триггером HTTP+ Webhook .

  2. Когда система предложит указать расположение конечной точки узла, введите созданный ранее URL-адрес переадресации (перенаправления).

    Примечание.

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

    Чтобы открыть запрос, на корневом уровне проекта откройте контекстное меню файла local.settings.json и выберите "Настроить конечную точку перенаправления веб-перехватчика". После этого появится запрос, в котором можно будет указать URL-адрес переадресации.

    Visual Studio Code добавит URL-адрес переадресации в файл local.settings.json в корневом каталоге проекта. После этого в объекте Values появится свойство с именем Workflows.WebhookRedirectHostUri, значением которого станет URL-адрес переадресации, например:

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "FUNCTIONS_WORKER_RUNTIME": "node",
          "FUNCTIONS_V2_COMPATIBILITY_MODE": "true",
          <...>
          "Workflows.WebhookRedirectHostUri": "http://xxxXXXXxxxXXX.ngrok.io",
          <...>
       }
    }
    

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

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

Примечание.

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

message='Http request failed with unhandled exception of type 'InvalidOperationException' and message: 'System.InvalidOperationException: Synchronous operations are disallowed. Call ReadAsync or set AllowSynchronousIO to true instead.'

В этом случае откройте файл local.settings.json в корневом каталоге проекта и убедитесь, что для свойства задано значение true:

"FUNCTIONS_V2_COMPATIBILITY_MODE": "true"

Управление точками останова для отладки

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

Точки останова пока поддерживаются только для действий, но не для триггеров. Каждое определение действия имеет следующие расположения точек останова:

  • Установите начальную точку останова в той строке, где отображается имя действия. При попадании в эту точку останова во время сеанса отладки можно проверить входные данные действия перед оценкой.

  • Установите конечную точку останова в строке с закрывающей фигурной скобкой действия (}). При попадании в эту точку останова во время сеанса отладки можно проверить результаты действия перед его завершением.

Для добавления точки останова выполните следующие действия.

  1. Откройте файл workflow.json для рабочего процесса, который требуется отладить.

  2. В строке, где нужно задать точку останова, выберите нужно место в левом столбце. Чтобы удалить точку останова, выберите эту точку останова.

    Когда вы запустите сеанс отладки, в левой части окна кода появится представление "Выполнение", а вверху — панель инструментов "Отладка".

    Примечание.

    Если представление "Выполнение" не отображается автоматически, нажмите клавиши CTRL+SHIFT+D.

  3. Чтобы просмотреть доступные сведения при попадании в точку останова, в представлении "Выполнение" проверьте панель Переменные.

  4. Чтобы продолжить выполнение рабочего процесса, на панели инструментов "Отладка" нажмите кнопку Продолжить (кнопка воспроизведения).

Добавлять и удалять точки останова можно в любое время во время выполнения рабочего процесса. Однако если вы обновите файл workflow.json после начала выполнения, точки останова автоматически не обновятся. Чтобы обновить точки останова, перезапустите приложение логики.

Общие сведения см. в разделе Точки останова — Visual Studio Code.

Локальное выполнение, тестирование и отладка

Чтобы протестировать рабочий процесс приложения логики, выполните следующие действия, чтобы запустить сеанс отладки и найти URL-адрес конечной точки, созданной триггером запроса. Этот URL-адрес потребуется вам для того, чтобы впоследствии можно было отправить запрос к этой конечной точке.

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

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

    1. В Visual Studio Code в меню "Вид " выберите палитру команд.

    2. После отображения палитры команд введите Azurite: Start.

    Дополнительные сведения о командах Azurite см . в документации по расширению Azurite в Visual Studio Code.

  3. На панели действий Visual Studio Code откройте меню Выполнение и выберите Начать отладку (F5).

    Откроется окно Терминал, в котором можно просмотреть данные сеанса отладки.

    Примечание.

    Если появится сообщение "После выполнения предварительной задачи generateDebugSymbols возникает ошибка", см. пункт Не удается запустить сеанс отладки в разделе об устранении неполадок.

  4. Теперь найдите URL-адрес обратного вызова для конечной точки в триггере запроса.

    1. Снова откройте панель обозревателя, чтобы где можно просмотреть проект.

    2. В контекстном меню файла workflow.json выберите пункт Обзор.

      Снимок экрана: панель Обозреватель, контекстное меню файла workflow.json с выбранным параметром

    3. Найдите значение URL-адреса обратного вызова, аналогичное URL-адресу в этом примере триггера запроса:

      http://localhost:7071/api/<workflow-name>/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<shared-access-signature>

      Снимок экрана: страница обзора рабочего процесса с URL-адресом обратного вызова.

  5. Чтобы проверить URL-адрес обратного вызова путем активации рабочего процесса приложения логики, откройте Postman или предпочитаемое вами средство для создания и отправки запросов.

    В этом примере будет использоваться Postman. Дополнительные сведения см. в руководстве по началу работы с Postman.

    1. На панели инструментов Postman нажмите кнопку Создать.

      Снимок экрана, на котором показана панель инструментов Postman с выделенной кнопкой

    2. В области Создание в разделе Стандартные блоки выберите Запрос.

    3. В окне "Сохранить запрос" в разделе "Имя запроса" укажите имя запроса, например триггер тестового рабочего процесса.

    4. В разделе Select a collection or folder to save to (Выберите коллекцию или папку для сохранения) выберите Создать коллекцию.

    5. В разделе Все коллекции укажите имя коллекции, которую нужно создать для упорядочения запросов, нажмите клавишу ВВОД и выберите Сохранить в <имя-коллекции>. В этом примере в качестве имени коллекции используются запросы Logic Apps.

      В Postman откроется панель запросов, где можно отправить запрос по URL-адресу обратного вызова для триггера запроса.

      Снимок экрана: Postman с открытой областью запроса.

    6. Верните в Visual Studio Code. На странице с обзором рабочего процесса скопируйте значение свойства URL-адрес обратного вызова.

    7. Вернитесь в Postman. На панели запросов рядом со списком методов, где сейчас по умолчанию выбран метод запроса GET, вставьте URL-адрес обратного вызова, скопированный ранее, в поле адреса, и нажмите кнопку Отправить.

      Снимок экрана: Postman и URL-адрес обратного вызова в поле адреса с выбранной кнопкой

      В этом примере рабочий процесс приложения логики отправляет электронное письмо следующего вида:

      Снимок экрана: электронная почта Outlook, как описано в примере.

  6. В Visual Studio Code вернитесь на страницу обзора рабочего процесса.

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

    Совет

    Если состояние выполнения не отображается, обновите страницу обзора, выбрав Обновить. Триггер, пропущенный из-за невыполненных условий или ненайденных данных, выполняться не будет.

    Снимок экрана: страница обзора рабочего процесса с состоянием выполнения и журналом.

    В таблице ниже показаны возможные конечные состояния в каждом выполнении рабочего процесса, которые отображаются в Visual Studio Code.

    Состояние выполнения Description
    Прервана Выполнение остановлено или не завершено из-за внешних проблем, например, из-за сбоя системы или истекшего срока действия подписки Azure.
    Отменено Выполнение был активировано и запущено, но затем была запрошена отмена.
    Неудачно В процессе выполнения не удалось выполнить как минимум одно действие. В рабочем процессе не настроены последующие действия для обработки подобного сбоя.
    Выполнение Выполнение было запущено и осуществляется, но это состояние также может отображаться, если выполнение регулируется из-за ограничений действия или текущего плана ценообразования;.

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

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

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

    Ожидание Выполнение не началось или приостановлено, например, из-за предыдущего экземпляра рабочего процесса, который еще выполняется.
  7. Чтобы просмотреть состояния каждого шага в определенном запуске, а также входные и выходные данные шага, нажмите кнопку с многоточием (...) для этого запуска и выберите команду "Показать запуск".

    Снимок экрана: строка журнала выполнения рабочего процесса с выбранной кнопкой многоточия и отображением запуска.

    Visual Studio Code откроет представление мониторинга и покажет состояние каждого шага в этом выполнении.

    Снимок экрана: каждый шаг выполнения рабочего процесса и их состояние.

    Примечание.

    Если сбой выполнения и шаг в представлении мониторинга отображает ошибку 400 bad Request , эта проблема может привести к более длинному имени триггера или имени действия, которое приводит к превышению ограничения символов по умолчанию. Дополнительные сведения см. в разделе 400 Недопустимый запрос.

    В таблице ниже показаны возможные состояния в каждом действии рабочего процесса, которые отображаются в Visual Studio Code.

    Состояние действия Description
    Прервана Действие остановлено или не завершено из-за внешних проблем, например, из-за сбоя системы или истекшего срока действия подписки Azure.
    Отменено Действие было запущено, но поступил запрос на отмену.
    Неудачно Выполнить действие не удалось.
    Выполнение Действие выполняется.
    Пропущено Действие было пропущено, так как предыдущее действие завершилось сбоем. Действие имеет условие runAfter, которое требует, чтобы перед его выполнением предыдущее действие было успешно завершено.
    Успешно Действие успешно выполнено.
    Выполнено с повторными попытками Действие выполнено, но только после одной или нескольких повторных попыток. Чтобы просмотреть журнал повторных попыток, в представлении сведений о журнале выполнения выберите соответствующее действие, чтобы просмотреть входные и выходные данные.
    Истекло время ожидания Действие остановлено из-за превышения времени ожидания, указанного в параметрах этого действия.
    Ожидание Применяется к действию веб-перехватчика, ожидающему входящего запроса от вызывающего объекта.
  8. Чтобы просмотреть входные и выходные данные по каждому шагу, разверните шаг, который необходимо проверить. Для более подробного изучения необработанных входных и выходных данных этого этапа выберите параметр Show raw inputs (Показать необработанные входные данные) или Show raw outputs (Показать необработанные выходные данные).

    Снимок экрана: состояние каждого шага в рабочем процессе, а также входные и выходные данные в развернутом действии с именем

  9. Чтобы остановить сеанс отладки, в меню Выполнение выберите команду Остановить отладку (SHIFT+F5).

Возврат ответа

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

  1. В конструкторе рабочих процессов в разделе "Отправить сообщение электронной почты " выберите знак плюса (+) >Добавить действие.

    Откроется панель действий "Добавить" , чтобы выбрать следующее действие.

  2. В области "Добавление действия" в списке среды выполнения выберите "В приложении". Найдите и добавьте действие ответа .

    После появления действия "Ответ" в конструкторе откроется область сведений о действии.

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

  3. На вкладке Параметры укажите необходимые сведения для функции, которую необходимо вызвать.

    В этом примере возвращается значение параметра Body , которое является выходным результатом действия "Отправить сообщение электронной почты ".

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

    2. В списке динамическое содержимое в разделе Отправить электронное письмовыберите Текст.

      Снимок экрана: открытый список динамического содержимого, где в разделе

      После этого для свойства Текст в действии "Ответ" будет задано выходное значение Текст действия Отправить электронное письмо.

      Снимок экрана: конструктор рабочих процессов, область сведений о ответе и параметр

  4. В конструкторе нажмите Сохранить.

Повторное тестирование приложения логики

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

  1. На панели действий Visual Studio Code откройте меню Выполнение и выберите Начать отладку (F5).

  2. В Postman или другом инструменте для создания и отправки запросов отправьте другой запрос для активации рабочего процесса.

  3. Если вы создали рабочий процесс с отслеживанием состояния, на странице обзора рабочего процесса проверьте состояние последнего выполнения. Чтобы просмотреть состояние, входные данные и выходные данные для каждого шага в этом запуске, нажмите кнопку с многоточием (...) для этого запуска и нажмите кнопку "Показать".

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

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

  4. Чтобы остановить сеанс отладки, в меню Выполнение выберите команду Остановить отладку (SHIFT+F5).

Поиск доменных имен для доступа к брандмауэру

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

Чтобы узнать полные доменные имена (FQDN) этих подключений, выполните следующие действия:

  1. В проекте приложения логики откройте файл connections.json, который создается после добавления в рабочий процесс первого триггера или действия на основе подключения, и найдите объект managedApiConnections.

  2. Для каждого созданного подключения скопируйте и сохраните в безопасном месте значение свойства connectionRuntimeUrl, чтобы затем использовать эти данные для настройки брандмауэра.

    Файл connections.json в этом примере содержит два подключения — AS2 и Office 365 со следующими значениямиconnectionRuntimeUrl:

    • AS2: "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba

    • Office 365: "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f

    {
       "managedApiConnections": {
          "as2": {
             "api": {
                "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/as2"
             },
             "connection": {
                "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}"
             },
             "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/as2/11d3fec26c87435a80737460c85f42ba,
             "authentication": {
                "type":"ManagedServiceIdentity"
             }
          },
          "office365": {
             "api": {
                "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region}/managedApis/office365"
             },
             "connection": {
                "id": "/subscriptions/{Azure-subscription-ID}/resourceGroups/{Azure-resource-group}/providers/Microsoft.Web/connections/{connection-resource-name}"
             },
             "connectionRuntimeUrl": https://9d51d1ffc9f77572.00.common.logic-{Azure-region}.azure-apihub.net/apim/office365/668073340efe481192096ac27e7d467f,
             "authentication": {
                "type":"ManagedServiceIdentity"
             }
          }
       }
    }
    

Развернуть в Azure

Из Visual Studio Code вы можете непосредственно опубликовать проект в Azure, чтобы развернуть ресурс приложения логики уровня "Стандартный". Вы можете опубликовать свое приложение логики как новый ресурс — в этом случае автоматически будут созданы все необходимые ресурсы, такие как учетная запись хранения Azure, как и в случае с приложением-функцией. Кроме того, вы можете опубликовать приложение логики в ранее развернутом ресурсе приложения логики "Стандартный", который перезаписывает это приложение логики.

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

Публикация в новом ресурсе приложения логики "Стандартный"

  1. На панели действий Visual Studio Code щелкните значок Azure, чтобы открыть окно Azure.

  2. В окне Azure на панели инструментов раздела "Рабочая область" в меню Azure Logic Apps выберите "Развернуть в приложении логики".

    Снимок экрана: окно Azure с панелью инструментов рабочей области и контекстным меню Azure Logic Apps с выбранным меню

  3. При появлении запроса выберите подписку Azure, которая будет использоваться для развертывания приложения логики.

  4. В открывшемся списке Visual Studio Code выберите следующие параметры:

    • Создать новое приложение логики (стандартная версия) в Azure (быстрый вариант)
    • Создать новое приложение логики (стандартная версия) в Azure (расширенная версия)
    • Развернутый ранее ресурс Приложение логики (стандартная версия), если он существует

    В этом примере выбран параметр Создать новое приложение логики (стандартная версия) в Azure (расширенная версия).

    Снимок экрана: список параметров развертывания и выбранный параметр, создание нового приложения логики (стандартный) в Azure Advanced.

  5. Чтобы создать новый ресурс приложения логики уровня "Стандартный", выполните следующие действия.

    1. Укажите для нового приложения логики глобально уникальное имя, которое будет использоваться для ресурса Приложение логики (стандартная версия). В этом примере используется Fabrikam-Workflows-App.

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

    2. Выберите план размещения для нового приложения логики. Создайте имя плана или выберите существующий план (только для windows Служба приложений планов). В этом примере выбран вариант Создать новый план службы приложений.

      Снимок экрана: панель

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

      Дополнительные сведения см. в статье Планы размещения и ценовые категории.

    4. Для оптимальной производительности выберите ту же группу ресурсов, что и в проекте для развертывания.

      Примечание.

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

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

      Снимок экрана: панель

    6. Если параметры создания и развертывания вашего приложения логики поддерживают использование Application Insights, вы можете по желанию включить для этого приложения логики ведение журнала диагностики и трассировку. Это можно сделать при развертывании приложения логики из Visual Studio Code или после развертывания. Для этого нужен экземпляр Application Insights, но его можно создать заранее, при развертывании приложения логики или после развертывания.

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

      1. Выберите параметр Создать новый ресурс Application Insights или выберите уже существующий ресурс.

      2. Вернитесь к ресурсу Application Insights на портале Azure.

      3. В меню ресурсов выберите Обзор. Найдите и скопируйте значение ключа инструментирования.

      4. В Visual Studio Code в корневой папке проекта откройте файл local.settings.json.

      5. В объекте Values добавьте свойство APPINSIGHTS_INSTRUMENTATIONKEY и задайте значение для ключа инструментирования, например:

        {
           "IsEncrypted": false,
           "Values": {
              "AzureWebJobsStorage": "UseDevelopmentStorage=true",
              "FUNCTIONS_WORKER_RUNTIME": "node",
              "APPINSIGHTS_INSTRUMENTATIONKEY": <instrumentation-key>
           }
        }
        

        Совет

        Вы можете проверить, правильно ли указаны имена триггера и действия в экземпляре Application Insights.

        1. Вернитесь к ресурсу Application Insights на портале Azure.

        2. В меню ресурсов в разделе "Исследование" выберите "Карта приложения".

        3. Проверьте имена операций, которые отображаются на карте.

        Некоторые входящие запросы от встроенных триггеров могут отображаться в схеме приложения как дубликаты. Вместо использования формата WorkflowName.ActionName эти дубликаты используют имя рабочего процесса в качестве имени операции и берутся из узла Функций Azure.

      6. При желании вы можете можно настроить уровень серьезности для данных трассировки, собираемых приложением логики и отправляемых в экземпляр Application Insights.

        Каждый раз, когда происходит событие, связанное с рабочим процессом, например при запуске рабочего процесса или выполнении действия, среда выполнения создает различные трассировки. Они охватывают время существования рабочего процесса и включают, помимо прочего, следующие типы событий:

        • Действия службы, такие как запуск, остановка и ошибки.
        • Задания и активность диспетчера.
        • Активность рабочего процесса, такие как триггер, действие и выполнение.
        • Активность запросов хранилища — выполнен или не выполнен.
        • Активность HTTP-запросов — входящие, исходящие, выполненные и не выполненные.
        • Трассировки разработки, например, сообщения отладки.

        Каждому типу события присваивается уровень серьезности. Например, уровень Trace включает самые подробные сообщения, а уровень Information — общую активность в рабочем процессе, например, когда приложение логики, рабочий процесс, триггер и действия запускаются и останавливаются. В следующей таблице представлены уровни серьезности и типы их трассировки.

        Уровень серьезности Тип трассировки
        Критически важно Журналы, описывающие неустранимый сбой в приложении логики.
        Отладка Журналы, которые можно использовать для изучения во время разработки, например входящие и исходящие HTTP-вызовы.
        Ошибка Журналы, указывающие на сбой выполнения рабочего процесса, но не на общий сбой в приложении логики.
        Информация Журналы, отслеживающие общее действие в приложении логики или рабочем процессе, например:

        — Запуск и остановка триггера, действия или выполнения.
        — Запуск и остановка приложения логики.

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

        Чтобы задать уровень серьезности, на корневом каталоге проекта откройте файл host.json файле и найдите объект logging. Он управляет фильтрацией журналов для всех рабочих процессов в приложении логики и соответствует разметке ASP.NET Core для фильтрации типов журналов.

        {
           "version": "2.0",
           "logging": {
              "applicationInsights": {
                 "samplingExcludedTypes": "Request",
                 "samplingSettings": {
                    "isEnabled": true
                 }
              }
           }
        }
        

        Если объект logging не содержит объект logLevel, включающий свойство Host.Triggers.Workflow, добавьте эти элементы. В этом свойстве укажите уровень серьезности для соответствующего типа трассировки, например:

        {
           "version": "2.0",
           "logging": {
              "applicationInsights": {
                 "samplingExcludedTypes": "Request",
                 "samplingSettings": {
                    "isEnabled": true
                 }
              },
              "logLevel": {
                 "Host.Triggers.Workflow": "Information"
              }
           }
        }
        

    После завершения действий по развертыванию Visual Studio Code приступит к созданию и развертыванию ресурсов, необходимых для публикации приложения логики.

  6. Для просмотра и отслеживания процесса развертывания в меню Вид выберите пункт Выходные данные. На панели инструментов окна с выходными данными выберите Приложения логики Azure.

    Снимок экрана: окно вывода с помощью Azure Logic Apps, выбранного в списке инструментов, а также ход развертывания и состояния.

    Когда Visual Studio Code завершит развертывание вашего приложения логики в Azure, появится следующее сообщение:

    Снимок экрана: сообщение о успешном завершении развертывания в Azure.

    Готово! Теперь ваше приложение логики активно в Azure и по умолчанию включено.

Далее вы можете узнать, как выполнять следующие задачи:

Добавление в проект пустого рабочего процесса

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

  1. На панели действий Visual Studio Code щелкните значок Azure.

  2. В окне Azure на панели инструментов раздела "Рабочая область" в меню Azure Logic Apps выберите "Создать рабочий процесс".

  3. Выберите тип рабочего процесса, который вы хотите добавить: С отслеживанием состояния или Без отслеживания состояния.

  4. Укажите имя для рабочего процесса.

После этого в проекте появится папка нового рабочего процесса, а также файл workflow.json для определения рабочего процесса.

Управление развернутыми приложениями логики в Visual Studio Code

В Visual Studio Code можно просмотреть все развернутые приложения логики в подписке Azure, будь то ресурсы приложения логики "Потребление" или "Стандартный" и выбирать задачи, помогающие управлять этими приложениями логики. Однако для доступа к обоим типам ресурсов требуются расширения Azure Logic Apps (потребление) и расширения Azure Logic Apps (стандартный) для Visual Studio Code.

  1. На панели действий Visual Studio Code щелкните значок Azure. В разделе "Ресурсы" разверните подписку и разверните приложение логики, которое отображает все приложения логики, развернутые в Azure для этой подписки.

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

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

    Примечание.

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

    Снимок экрана: Visual Studio Code с разделом

  3. Чтобы просмотреть все рабочие процессы в приложении логики, разверните приложение логики, а затем узел Рабочие процессы.

  4. Чтобы просмотреть конкретный рабочий процесс, откройте контекстное меню этого рабочего процесса и выберите команду Открыть в конструкторе, чтобы открыть рабочий процесс в режиме только для чтения.

    Чтобы изменить рабочий процесс, можно использовать следующие варианты:

    • В Visual Studio Code откройте файл workflow.json проекта в конструкторе рабочих процессов, внесите изменения и заново разверните приложение логики в Azure.

    • Откройте приложение логики на портале Azure. Затем можно открыть, изменить и сохранить рабочий процесс.

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

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

    Снимок экрана: страница портал Azure для приложения логики в Visual Studio Code.

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

    Снимок экрана: портал Azure и панель поиска с результатами поиска для развернутого приложения логики, которое отображается.

Рекомендации по остановке приложений логики

Остановка приложения логики влияет на экземпляры рабочих процессов следующим образом:

  • Azure Logic Apps немедленно отменяет все выполняющиеся и ожидающие выполнения рабочие процессы.

  • Azure Logic Apps не будет создавать или выполнять новые экземпляры рабочего процесса.

  • Триггеры не будут срабатывать при следующем выполнении условий. Однако для состояний триггеров сохраняются точки, в которых приложение логики было остановлено. Таким образом, при повторном запуске приложения логики триггеры срабатывают для всех необработанных элементов с момента последнего запуска.

    Чтобы триггер не срабатывал на необработанные элементы с момента последнего запуска, удалите состояние триггера перед повторным запуском приложения логики.

    1. На панели действий Visual Studio Code щелкните значок Azure, чтобы открыть окно Azure.

    2. В разделе "Ресурсы" разверните подписку, в которой показаны все развернутые приложения логики для этой подписки.

    3. Разверните приложение логики, а затем разверните узел Рабочие процессы.

    4. Откройте рабочий процесс и измените любую часть триггера этого рабочего процесса.

    5. Сохранение изменений. На этом этапе выполняется сброс текущего состояния триггера.

    6. Повторите действия для каждого рабочего процесса.

    7. По завершении перезапустите приложение логики.

Рекомендации по удалению приложений логики

Удаление приложения логики влияет на экземпляры рабочих процессов следующим образом:

  • Azure Logic Apps немедленно отменяет выполняемые и ожидающие запуска рабочие процессы, но не запускает задачи очистки в хранилище, используемом приложением.

  • Azure Logic Apps не будет создавать или выполнять новые экземпляры рабочего процесса.

  • Если удалить и повторно создать рабочий процесс, его метаданные будут отличаться от метаданных удаленного рабочего процесса. Чтобы обновить метаданные, необходимо заново сохранить любой рабочий процесс, вызвавший удаленный рабочий процесс. Так вызывающий объект получит правильные сведения о воссозданном рабочем процессе. В противном случае вызовы к повторно созданному рабочему процессу завершатся ошибкой Unauthorized. Такое поведение также применяется к рабочим процессам, использующим артефакты в учетных записях интеграции, и рабочим процессам, вызывающим функции Azure.

Управление развернутыми приложениями логики на портале

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

  1. В поле поиска портал Azure введите приложения логики. Когда появится список результатов, в разделе Службы выберите Logic Apps.

    Снимок экрана: поле поиска портал Azure с приложениями логики в виде текста поиска.

  2. На панели Logic Apps выберите приложение логики, развернутое из Visual Studio Code.

    Снимок экрана: портал Azure и ресурсы приложения логики уровня

    Портал Azure откроет отдельную страницу ресурсов для выбранного приложения логики.

    Снимок экрана: страница портал Azure и ресурса приложения логики.

  3. Чтобы просмотреть рабочие процессы в этом приложении логики, в меню приложения логики выберите Рабочие процессы.

    В области Рабочие процессы отобразятся все рабочие процессы в текущем приложении логики. В этом примере показан рабочий процесс, созданный в Visual Studio Code.

    Снимок экрана: страница ресурса приложения логики с открытой областью рабочих процессов и рабочими процессами.

  4. Чтобы просмотреть рабочий процесс, выберите этот рабочий процесс в области Рабочие процессы.

    Откроется область рабочих процессов с дополнительными сведениями и задачами, которые можно выполнить в этом рабочем процессе.

    Например, чтобы просмотреть шаги в рабочем процессе, выберите Конструктор.

    Снимок экрана: выбранная область обзора рабочего процесса, а в меню рабочего процесса отображается выбранная команда

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

    Снимок экрана: конструктор рабочих процессов и рабочий процесс, развернутые из Visual Studio Code.

Добавление другого рабочего процесса на портале

С помощью портал Azure можно добавить пустые рабочие процессы в ресурс приложения логики "Стандартный", развернутый из Visual Studio Code, и создать эти рабочие процессы в портал Azure.

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

  2. В меню ресурсов приложения логики выберите рабочие процессы. В области Рабочие процессы выберите Добавить.

    Снимок экрана: выбранная область рабочих процессов приложения логики и панель инструментов с выбранной командой

  3. В области Новый рабочий процесс укажите имя для рабочего процесса. Выберите "Создать без отслеживания состояния" или "Без отслеживания состояния>".

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

    Снимок экрана: выбранный рабочий процесс с параметрами управления и проверки.

    Например, при открытии конструктора для нового рабочего процесса отображается пустой холст. Теперь этот рабочий процесс можно создать на портале Azure.

    Снимок экрана: конструктор рабочих процессов и пустой рабочий процесс.

Включение журнала выполнения для рабочих процессов без отслеживания состояния.

Чтобы упростить отладку рабочего процесса без отслеживания состояния, можно включить для него журнал выполнения, а по завершении работы отключить его. Выполните следующие действия в редакторе Visual Studio Code или, если используете портал Azure, см. статью Создание рабочих процессов с одним клиентом на портале Azure.

  1. В проекте Visual Studio Code на уровне корневой папки откройте файл local.settings.json .

  2. Workflows.{yourWorkflowName}.operationOptions Добавьте свойство и задайте значение WithStatelessRunHistory, например:

    Windows

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "UseDevelopmentStorage=true",
          "FUNCTIONS_WORKER_RUNTIME": "node",
          "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory"
       }
    }
    

    macOS или Linux

    {
       "IsEncrypted": false,
       "Values": {
          "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=fabrikamstorageacct; \
              AccountKey=<access-key>;EndpointSuffix=core.windows.net",
          "FUNCTIONS_WORKER_RUNTIME": "node",
          "Workflows.{yourWorkflowName}.OperationOptions": "WithStatelessRunHistory"
       }
    }
    
  3. В папке проекта с именем workflow-designtime откройте файл local.settings.json и внесите одно и то же изменение.

  4. Чтобы отключить журнал выполнения по завершении, присвойте свойству Workflows.{yourWorkflowName}.OperationOptions значение None или удалите это свойство вместе со значением.

Включение представления мониторинга на портале Azure

После развертывания ресурса Приложение логики (стандартная версия) из Visual Studio Code в Azure можно просмотреть любой доступный журнал выполнения и сведения о рабочем процессе в этом ресурсе на портале Azure и через интерфейс монитора для этого рабочего процесса. Однако сначала необходимо включить возможность использовать представление Монитор для этого ресурса приложения логики.

  1. В портал Azure откройте ресурс приложения логики "Стандартный".

  2. В меню ресурсов приложения логики в разделе API выберите CORS.

  3. В области CORS в разделе Разрешенные источники добавьте подстановочный знак (*).

  4. Затем на панели инструментов CORS нажмите кнопку Сохранить.

    Снимок экрана: портал Azure с развернутыми ресурсами приложения логики

Включение или открытие Application Insights после развертывания.

Во время выполнения рабочего процесса ваше приложение логики выдает вместе с другими событиями данные телеметрии. Данные телеметрии можно использовать для получения более четкого представления о том, насколько хорошо работает рабочий процесс, а также о различных способах работы среды выполнения Logic Apps. Вы можете отслеживать рабочий процесс в службе Application Insights, которая предоставляет данные телеметрии практически в режиме реального времени (динамические метрики). Эта возможность упрощает исследование сбоев и проблем с производительностью, так как можно использовать эти данные для диагностики проблем, настройки оповещений и построения диаграмм.

Если параметры создания и развертывания вашего приложения логики поддерживают использование Application Insights, вы можете по желанию включить для этого приложения логики ведение журнала диагностики и трассировку. Это можно сделать при развертывании приложения логики из Visual Studio Code или после развертывания. Для этого нужен экземпляр Application Insights, но его можно создать заранее, при развертывании приложения логики или после развертывания.

Чтобы включить Application Insights в развернутом приложении логики или просмотреть данные Application Insights, если он уже включен, выполните следующие действия:

  1. Найдите свое развернутое приложение логики на портале Azure.

  2. В меню приложения логики в разделе Параметры выберите Application Insights.

  3. Если служба Application Insights не включена, в области Application Insights выберите Включить Application Insights. Когда область обновится, щелкните внизу Применить.

    Если служба Application Insights включена, в области Application Insights выберите Просмотреть данные Application Insights.

Когда откроется область Application Insights, вы сможете просмотреть различные метрики для своего приложения логики. Дополнительные сведения см. в следующих разделах:

Удаление элементов из конструктора

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

  • Выберите элемент, откройте контекстное меню этого элемента (SHIFT+F10) и выберите Удалить. Для подтверждения выберите ОК.

  • Выберите элемент и нажмите клавишу DELETE. Для подтверждения выберите ОК.

  • Выберите элемент, чтобы открыть область сведений об этом элементе. В верхнем правом углу это области откройте меню с многоточием () и выберите Удалить. Для подтверждения выберите ОК.

    Снимок экрана: выбранный элемент в конструкторе с открытой областью сведений, а также выбранная кнопка многоточия и команда

    Совет

    Если меню с многоточием не отображается, разверните окно Visual Studio Code достаточно широко для того, чтобы в правом верхнем углу в области сведений появилась кнопка с многоточием (...).

Устранение ошибок и проблем

Не удается открыть конструктор

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

  1. Откройте в Visual Studio Code окно вывода. В меню Вид выберите пункт Вывод.

  2. В списке в заголовке окна вывода выберите Azure Logic Apps (стандартная версия), чтобы просмотреть выходные данные, полученные при использовании расширения.

    Снимок экрана: окно вывода с выбранным параметром

  3. Просмотрите выходные данные и проверьте, отображается ли это сообщение об ошибке:

    A host error has occurred during startup operation '{operationID}'.
    System.Private.CoreLib: The file 'C:\Users\{userName}\AppData\Local\Temp\Functions\
    ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows\1.1.7\bin\
    DurableTask.AzureStorage.dll' already exists.
    Value cannot be null. (Parameter 'provider')
    Application is shutting down...
    Initialization cancellation requested by runtime.
    Stopping host...
    Host shutdown completed.
    

Чтобы устранить эту ошибку, удалите папку ExtensionBundles по адресу ...\Users{your-username}\AppData\Local\Temp\Functions\ExtensionBundles и попробуйте открыть файл workflow.json в конструкторе еще раз.

В средстве выбора конструктора для ранее созданных рабочих процессов отсутствуют новые триггеры и действия

Azure Logic Apps с одним клиентом поддерживает встроенные действия для операций с использованием среды "Функции Azure", операций Liquid и XML-операций, таких как проверка XML и преобразование XML. Однако для приложений логики, созданных ранее, эти действия могут не отображаться в средстве выбора конструктора, если Visual Studio Code использует устаревшую версию пакета расширений Microsoft.Azure.Functions.ExtensionBundle.Workflows.

Кроме того, соединитель и действия в Операциях Функций Azure не отображаются в средстве выбора конструктора, если при создании приложения логики вы не включили или не выбрали Использование соединителей из Azure. Если вы не включили соединители, развернутые в Azure, во время создания приложения, их можно включить в проекте в Visual Studio Code. Откройте контекстное меню для файла workflow.json и выберите команду Использовать соединители из Azure.

Чтобы устранить проблему с устаревшим пакетом расширений, выполните указанные ниже действия, чтобы удалить устаревший пакет — в результате Visual Studio Code автоматически обновит пакет расширений до последней версии.

Примечание.

Это решение относится только к приложениям логики, созданным и развернутым с помощью редактора Visual Studio Code с расширением Azure Logic Apps (стандартная версия), и не подходит для приложений логики, созданных с помощью портала Azure. См. раздел Поддерживаемые триггеры и действия отсутствуют в конструкторе на портале Azure.

  1. Сохраните все результаты работы, которые вы не хотите потерять, и закройте Visual Studio.

  2. На компьютере откройте следующую папку, содержащую версии папок для существующего пакета:

    ...\Users\{your-username}\.azure-functions-core-tools\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows

  3. Удалите папку версии для предыдущего пакета, например, если у вас есть папка для версии 1.1.3, удалите эту папку.

  4. Теперь перейдите в следующую папку, содержащую версии папок для требуемого пакета NuGet:

    ...\Users\{your-username}\.nuget\packages\microsoft.azure.workflows.webjobs.extension

  5. Удалите папку версии для более раннего пакета.

  6. Снова откройте Visual Studio Code, свой проект, а затем файл workflow.json в конструкторе.

Теперь отсутствующие триггеры и действия должны отображаться в конструкторе.

В триггере или действии отображается сообщение "400 Недопустимый запрос"

Если при выполнении произошел сбой и вы проверяете выполнение в представлении мониторинга, эта ошибка может возникнуть в триггере или действии с длинным именем, из-за которое соответствующий универсальный код ресурса (Uniform Resource Identifier, URI) превышает ограничение на количество символов по умолчанию.

Чтобы решить эту проблему и увеличить допустимую длину URI, измените разделы реестра UrlSegmentMaxCount и UrlSegmentMaxLength на компьютере, выполнив описанные ниже действия. Значения этих разделов по умолчанию описаны в статье Параметры реестра http.sys для Windows.

Внимание

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

  1. На компьютере откройте окно Выполнить и выполните команду regedit, которая открывает редактор реестра.

  2. В поле Контроль учетных записей пользователей выберите Да, чтобы разрешить внесение изменений на компьютере.

  3. В области слева в разделе Компьютер разверните узлы в пути HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters, а затем выберите Параметры.

  4. В области справа найдите разделы реестра UrlSegmentMaxCount и UrlSegmentMaxLength.

  5. Увеличьте эти значения разделов, чтобы URI мог принимать необходимые вам имена. Если этих разделов не существует, добавьте их в папку Параметры, выполнив следующие действия:

    1. В контекстном меню для папки Параметры выберите команду Создать>Значение DWORD (32-разрядная версия).

    2. В появившемся поле ввода введите UrlSegmentMaxCount в качестве нового имени раздела.

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

    4. В появившемся поле Изменить строку введите желаемое значение раздела Данные значения в шестнадцатеричном или десятичном формате. Например, значение 400 в шестнадцатеричном формате эквивалентно значению 1024 в десятичном.

    5. Повторите эти действия, чтобы добавить значение раздела UrlSegmentMaxLength.

    После увеличения или добавления значений этих разделов редактор реестра будет выглядеть следующим образом:

    Снимок экрана: редактор реестра.

  6. Закончив внесение изменений, перезагрузите компьютер, чтобы они вступили в силу.

Не удается запустить сеанс отладки

При попытке запустить сеанс отладки появляется сообщение об ошибке "После выполнения предварительной задачи 'generateDebugSymbols' возникает ошибка". Чтобы решить эту проблему, измените файл tasks.json в своем проекте так, чтобы пропустить создание символов.

  1. В проекте разверните папку .vscode и откройте файл tasks.json.

  2. В следующей задаче удалите строку "dependsOn: "generateDebugSymbols" вместе с запятой, завершающей предыдущую строку, например:

    До:

     {
       "type": "func",
       "command": "host start",
       "problemMatcher": "$func-watch",
       "isBackground": true,
       "dependsOn": "generateDebugSymbols"
     }
    

    После:

     {
       "type": "func",
       "command": "host start",
       "problemMatcher": "$func-watch",
       "isBackground": true
     }
    

Следующие шаги

Мы хотели бы узнать о ваших впечатлениях от использования расширения Azure Logic Apps (стандартная версия).