Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: Azure Logic Apps (стандартная версия)
В этом руководстве показано, как локально создать пример рабочего процесса логического приложения 'Стандарт', который можно запустить в однопользовательской среде Azure Logic Apps при использовании Visual Studio Code с расширением Azure Logic Apps (Standard).
В этом руководстве вы создадите рабочую область стандартного логического приложения и проект, разработаете рабочий процесс и развернете проект в качестве ресурса стандартного логического приложения в Azure, где рабочий процесс может выполняться в одноарендных Azure Logic Apps или в среде службы приложений версии 3 (только планы службы приложений для Windows). Вы также можете развернуть и запустить рабочий процесс в любом месте, где поддерживается Kubernetes, например, в Azure, Службе Azure Kubernetes (AKS), локально или даже у других облачных провайдеров, благодаря контейнерной среде выполнения Azure Logic Apps в версии "Стандарт".
Ниже приведены лишь некоторые преимущества, предоставляемые приложениями логики уровня "Стандартный".
Вы можете локально создавать, отлаживать, запускать и тестировать рабочие процессы в локальной среде разработки Visual Studio Code. Портал Azure и Visual Studio Code предоставляют возможность создавать, запускать и развертывать ресурсы и рабочие процессы приложения логики уровня "Стандартный". Однако с помощью Visual Studio Code эти задачи можно выполнять локально.
Проект приложения логики уровня "Стандартный" может включать как рабочие процессы с отслеживанием состояния, так и без отслеживания состояния.
Рабочие процессы в одном и том же ресурсе логического приложения уровня "Standard" и клиенте выполняются в том же процессе, что и среда выполнения Azure Logic Apps (Standard), поэтому они совместно используют одни и те же ресурсы и обеспечивают более высокую производительность.
Этот пример рабочего процесса руководства изначально начинается с триггера запроса , за которым следует действие Office 365 Outlook . Триггер запроса создает вызываемую конечную точку для рабочего процесса и ожидает входящего HTTPS-запроса от любого вызывающего объекта. Когда триггер получает запрос и запускается, следующее действие выполняется путем отправки сообщения электронной почты указанному получателю вместе с выходными данными триггеров, которые вы выбрали. Позже можно добавить действие ответа , возвращающее ответ и обработанные данные вызывающему объекту.
Хотя пример этого руководства основан на облаке и содержит только несколько шагов, вы можете создавать рабочие процессы с помощью операций с 1400+ соединителей , которые помогают интегрировать широкий спектр служб, систем, приложений и данных в облачных, локальных и гибридных средах.
По мере прохождения инструкции вы выполните следующие высокоуровневые задачи:
- Создайте стандартную рабочую область для приложения логики и проект с пустым workflow с отслеживанием состояния.
- Добавьте триггер и действия в рабочий процесс.
- Локальное выполнение, отладка и тестирование.
- Просмотрите журнал выполнения рабочего процесса.
- Найдите сведения о домене для доступа к брандмауэру.
- Включите журнал выполнения для рабочих процессов без отслеживания состояния.
- Развертывание в Azure, включающее необязательное включение Application Insights.
- Включите или откройте Application Insights после развертывания.
- Управление ресурсом развернутого приложения логики в Visual Studio Code и портале Azure.
Предпосылки
Требования к доступу и подключению
Если вы планируете локально создавать и запускать рабочие процессы с помощью только встроенных операций, которые выполняются в среде выполнения Azure Logic Apps (стандартный), в этом разделе не требуются требования к доступу и подключению. Однако для следующих сценариев необходимо выполнить следующие требования:
- Разверните приложение логики из Visual Studio Code в Azure.
- Создайте рабочий процесс, использующий управляемые операции соединителя , выполняемые в глобальной среде Azure.
- Доступ к существующим ресурсам и рабочим процессам логического приложения типа "Стандартный" в Azure или другим развернутым ресурсам Azure.
К этим требованиям относятся следующие элементы:
Учетная запись и подписка Azure. Если у вас нет ее, вы можете зарегистрироваться для получения бесплатной учетной записи Azure.
Доступ к интернету, чтобы скачать необходимое расширение, подключиться от Visual Studio Code к учетной записи Azure, тестировать рабочие процессы, включая управляемые действия соединителя, и выполнить развертывание в Azure из Visual Studio Code.
Чтобы создать тот же пример рабочего процесса в этом руководстве, вам потребуется учетная запись электронной почты Office 365 Outlook, использующая рабочую или учебную учетную запись Майкрософт для входа.
Если у вас нет учетной записи Office 365, можно использовать любое другое доступное действие, которое может отправлять сообщения из учетной записи электронной почты, например Outlook.com. Если выбрать другой соединитель электронной почты, например Outlook.com, вы все равно можете выполнить пример, и общие общие шаги одинаковы. Однако ваш опыт и ваши возможности могут отличаться в определённой степени. Например, с помощью соединителя Outlook.com используйте личную учетную запись Майкрософт для входа.
Инструменты
Скачайте и установите Visual Studio Code, который является бесплатным.
Скачайте и установите расширение Azure Logic Apps (standard) для Visual Studio Code , выполнив следующие действия.
В Visual Studio Code на панели действий выберите "Расширения". (Клавиатура: клавиша CTRL+SHIFT+X)
В поле поиска расширений введите стандартные приложения логики Azure. В списке результатов выберите Azure Logic Apps (стандартный)>Install.
Расширение загружает и устанавливает все необходимые зависимости и правильные версии для следующих платформ:
- Основные инструменты Функций Azure
- Пакет SDK для .NET
- Node.js
После завершения установки расширение появится в списке расширений.
Перезагрузите или перезапустите Visual Studio Code, чтобы убедиться, что расширение и все зависимости правильно установлены.
Чтобы убедиться, что расширение и все зависимости установлены правильно, см. раздел "Проверка установки расширения".
В настоящее время можно одновременно устанавливать расширения потребления (мультитенантные) и стандартные (однотенантные). Опыт разработки в некоторых отношениях отличается друг от друга, но ваша подписка Azure может включать как стандартные, так и потребительские типы ресурсов приложения логики. В Visual Studio Code в области Azure отображаются все развернутые и размещенные приложения логики Azure в вашей подписке Azure, однако эти приложения упорядочены следующим образом:
- Раздел Ресурсов: все приложения логики Standard в вашей подписке.
- Раздел Logic Apps (Потребление) — все приложения логики потребления в подписке.
Для локального запуска триггеров и действий на основе веб-перехватчика, таких как встроенный триггер веб-перехватчика HTTP, необходимо настроить перенаправление ДЛЯ URL-адреса обратного вызова в Visual Studio Code.
Чтобы включить ведение журнала диагностики и отслеживание с помощью Application Insights для логического приложения стандартного уровня, эту задачу можно выполнить либо во время развертывания логического приложения, либо после развертывания. У вас должен быть ресурс Application Insights, но этот ресурс можно создать заранее, во время развертывания или после развертывания.
Установите или используйте средство, которое может отправлять HTTP-запросы для тестирования примера рабочего процесса, например:
- Visual Studio Code с расширением из магазина расширений Visual Studio
- PowerShell Invoke-RestMethod
- Microsoft Edge — средство сетевой консоли
- Бруно
- локон
Осторожность
В сценариях, когда у вас есть конфиденциальные данные, такие как учетные данные, секреты, маркеры доступа, ключи API и другие аналогичные сведения, обязательно используйте средство, которое защищает данные с помощью необходимых функций безопасности. Средство должно работать в автономном режиме или локально, а не требовать входа в учетную запись в Интернете или синхронизации данных с облаком. При использовании средства с этими характеристиками снижается риск предоставления конфиденциальных данных общественности.
Проверка установки расширения
Чтобы убедиться, что расширение и все зависимости установлены правильно, перезагрузите или перезапустите Visual Studio Code.
Убедитесь, что Visual Studio Code автоматически находит и устанавливает обновления расширений, чтобы все расширения получили последние обновления. В противном случае необходимо вручную удалить устаревшую версию и установить последнюю версию.
В меню "Файл" перейдите к параметрам параметров>.
На вкладке "Пользователь" перейдите в раздел"Расширения>".
Убедитесь, что выбрана автоматическая проверка обновлений , и для автоматического обновления задано значение "Все расширения".
Убедитесь, что для параметра Azure Logic Apps Standard: Project Runtime задана правильная версия:
На вкладке "Пользователь" перейдите к >расширениям>Azure Logic Apps (стандартный).
Убедитесь, что время выполнения проекта установлено на версию ~4, например:
Примечание.
Эта версия требуется для использования действий операций встроенного кода.
Подключитесь к своей учетной записи Azure
Если вы еще не подключены к учетной записи Azure, выполните следующие действия, чтобы подключиться:
В Visual Studio Code на панели действий щелкните значок Azure, чтобы открыть панель Azure .
В области Azure в разделе "Ресурсы" выберите "Войти в Azure". Когда появится страница проверки подлинности Visual Studio Code, выполните вход под учетной записью Azure.
После входа на панели Azure отображаются подписки Azure, связанные с учетной записью Azure. Если ожидаемые подписки не отображаются или вы хотите, чтобы на панели отображались только определенные подписки, выполните следующие действия:
В списке подписок переместите указатель рядом с первой подпиской, пока не появится кнопка "Выбрать подписки " (значок фильтра). Выберите значок фильтра.
Или в строке состояния Visual Studio Code выберите свою учетную запись Azure.
Когда появится обновленный список подписок, выберите нужные подписки и убедитесь, что нажмите кнопку "ОК".
Создание локальной рабочей области
Для проекта приложения логики всегда требуется рабочая область. Таким образом, прежде чем создать приложение логики, необходимо создать рабочую область , в которой вы храните проект приложения логики. Позже вы используете эту рабочую область и проект для управления вашим логическим приложением, его запуска и развертывания из Visual Studio Code в вашу среду развертывания. Базовый проект похож на проект Azure Functions, также известный как проект функционального приложения.
На компьютере создайте пустую локальную папку, чтобы использовать ее позже для рабочей области и проекта.
В этом примере создается папка с именем fabrikam-workflows.
В Visual Studio Code закройте все открытые папки.
В окне Azure на панели инструментов раздела "Рабочая область " в меню Azure Logic Apps выберите "Создать рабочую область приложения логики".
Если брандмауэр Защитника Windows предложит предоставить сетевой доступ дляCode.exe, который представляет собой Visual Studio Code, и дляfunc.exe, который является ядром инструментов Azure Functions, выберите частные сети, такие как моя домашняя или рабочая сетьРазрешить доступ.
В окне "Выбор папки" перейдите в расположение, в котором вы создали папку, выберите папку и выберите команду "Выбрать " (не дважды выберите папку).
На панели инструментов Visual Studio Code появляется запрос назвать вашу рабочую область.
В поле "Укажите имя рабочей области", введите используемое имя рабочей области.
В этом примере используются Fabrikam-Workflows.
Затем создайте проект приложения логики.
Создание проекта приложения логики
Создав требуемую рабочую область, следуйте инструкциям по созданию проекта.
Для шаблона проекта выберите приложение логики. Введите имя проекта для использования.
В этом примере используются Fabrikam-Workflows.
Для шаблона рабочего процесса выберите рабочий процесс с отслеживанием состояния или рабочий процесс без отслеживания состояния в зависимости от вашего сценария. Введите имя рабочего процесса для использования.
В этом примере выбирается рабочий процесс с отслеживанием состояния, в котором хранятся журнал рабочих процессов, входные данные и выходные данные, а в качестве имени используется рабочий процесс с отслеживанием состояния .
Рабочие процессы без отслеживания состояния не хранят эти данные и в настоящее время поддерживают только управляемые действия соединителя, а не триггеры. Хотя у вас есть возможность включить соединители в Azure для рабочего процесса без отслеживания состояния, конструктор не отображает триггеры управляемого соединителя для выбора.
Примечание.
Если вы получите ошибку с именем azureLogicAppsStandard.createNewProject и сообщением об ошибке: не удается записать в настройки рабочей области, так как azureFunctions.suppressProject не является зарегистрированной конфигурацией, попробуйте переустановить расширение Azure Functions для Visual Studio Code, либо непосредственно из Visual Studio Marketplace, либо из самого Visual Studio Code.
Теперь выберите, нужно ли открыть проект в текущем окне Visual Studio Code или в новом окне. Выберите "Открыть в текущем окне " или "Открыть" в новом окне в соответствии с вашими предпочтениями.
Откроется панель обозревателя, чтобы отобразить рабочую область, проект и автоматически открытый workflow.json файл. Этот файл существует в папке с именем Stateful-Workflow и сохраняет базовое определение JSON для рабочего процесса, который вы создаете в конструкторе. Сведения о структуре проекта см. в статье "Стандартный проект приложения логики".
Вы также получите запрос на включение мультитенантных "общих" соединителей, размещенных в службах Azure, например:
Чтобы включить все управляемые «общие» соединители, которые работают в многоарендном Azure, чтобы вы могли просматривать и выбирать их для использования в рабочем процессе, выберите Use connectors from Azure.
Примечание.
Если этот параметр не выбран, и позже вы попытаетесь добавить операцию управляемого соединителя при сборке рабочего процесса, вы не сможете продолжить, так как в области сведений об операции отображается круг вращения, который не останавливается.
Для группы ресурсов Azure выберите "Создать новую группу ресурсов". Введите имя группы ресурсов для использования.
В этом примере используется Fabrikam-Workflows-RG.
Для подписки выберите подписку Azure, используемую с проектом приложения логики.
Для расположения, в котором нужно создать группу и ресурсы, выберите регион Azure.
В этом примере используется западная часть США.
Если в проекте требуется другая настройка для разработки или требуется поддержка артефактов для создания рабочего процесса, ознакомьтесь со следующими сценариями и связанными задачами:
Сценарий Задача Локально выполняемые триггеры или действия на основе веб-хуков. Настройте переадресацию для URL-адресов обратного вызова вебхука. Настройка журнала выполнения рабочего процесса без отслеживания состояния. Включите журнал выполнения для рабочих процессов без отслеживания состояния. Добавьте артефакты и зависимости, такие как карты, схемы и сборки. Добавление артефактов и зависимостей. Работа с проектом на базе NuGet (.NET) Преобразуйте проект на основе расширений (Node.js) в проект На основе пакетов NuGet (.NET).
Примечание. Чтобы преобразовать проект на основе пакета расширений (Node.js), созданный перед наличием поддержки сборок, см. также статью "Миграция проектов на основе пакетов NuGet для использования сборок в папке lib".Создайте собственные встроенные соединители. 1. Преобразование проекта на основе пакета расширения (Node.js) в проект на основе пакета NuGet (.NET ).
2. Включение авторинга встроенных соединителей.
Теперь откройте конструктор рабочих процессов.
Открытие конструктора рабочих процессов
После открытия проекта в области обозревателя откройте конструктор, чтобы создать рабочий процесс.
В контекстном меню workflow.json файла выберите "Открыть конструктор".
Примечание.
После выбора этого параметра вы можете получить сообщение о том, что запуск может занять несколько секунд из-за "запуска API проектирования рабочего процесса". Можно проигнорировать это сообщение или нажать ОК.
Visual Studio Code открывает конструктор рабочих процессов и отображает запрос на добавление триггера , например:
Примечание.
Если конструктор не откроется, см. раздел "Устранение неполадок", конструктор не открывается.
Затем добавьте триггер и действия для создания рабочего процесса.
Добавление триггера и действия
Чтобы создать рабочий процесс, запустите рабочий процесс с триггером, а затем сначала добавьте одно действие. Таким образом можно протестировать рабочий процесс перед добавлением следующего действия. В примере рабочего процесса используются следующие триггеры и действия, которые совместно называются операциями:
Соединитель или группа операций | Наименование операции | Тип операции | Описание |
---|---|---|---|
запрос | При получении HTTP-запроса | Триггер (встроенный) | Создает URL-адрес конечной точки рабочего процесса для получения входящих вызовов или запросов от других служб или рабочих процессов приложения логики. Дополнительные сведения см. в статье "Получение и реагирование на вызовы входящих HTTPs для рабочих процессов". |
Office 365 Outlook | Отправить сообщение электронной почты | Действие (управляемое) | Отправьте сообщение электронной почты с помощью учетной записи Outlook Office 365. Чтобы выполнить действия, описанные в этом руководстве, вам нужна учетная запись электронной почты Office 365 Outlook. Дополнительные сведения см. в статье "Подключение к Office 365 Outlook" из Azure Logic Apps. Примечание. Если у вас есть учетная запись электронной почты, поддерживаемая другим соединителем, можно использовать этот соединитель, но взаимодействие с пользователем этого соединителя отличается от действий, описанных в этом примере. |
запрос | Ответ | Действие (встроенное) | Отправьте ответ и верните данные обратно вызывающей стороне. Дополнительные сведения см. в разделе «Добавление действия ответа». |
Добавление триггера "Запрос"
В конструкторе рабочих процессов выберите "Добавить триггер", если он еще не выбран.
Откроется панель "Добавить триггер" и отображается коллекция, в которой можно выбрать из доступных соединителей и групп операций, например:
В области добавления триггеравыполните следующие общие действия, чтобы добавить триггер запроса с именем "При получении HTTP-запроса".
В следующем примере выбирается встроенный параметр, поэтому отображаются только встроенные триггеры:
Когда триггер появится в конструкторе, откроется область сведений о триггере и будут отображены его параметры, настройки и другие связанные задачи.
Примечание.
Если панель сведений о триггере не отображается, убедитесь, что триггер выбран в конструкторе.
Сохраните свой рабочий процесс. На панели инструментов конструктора выберите Сохранить.
Добавление действия Office 365 Outlook
В конструкторе в триггере запросавыполните следующие общие действия, чтобы добавить действие Office 365 Outlook с именем Send an email (V2).
Если действие не отображается в начальных результатах, рядом с именем соединителя выберите дополнительные сведения, например:
Когда появится область проверки подлинности действия, выберите "Войти ", чтобы создать подключение к учетной записи электронной почты.
Следуйте подсказкам, чтобы аутентифицировать учетные данные, разрешите доступ и возвращение в Visual Studio Code.
Примечание.
Если проходит слишком много времени перед выполнением запросов, время проверки подлинности истекает, и она завершается сбоем. В этом случае вернитесь к конструктору и попробуйте снова войти в систему, чтобы создать подключение.
Когда появится запрос на проверку подлинности Майкрософт, выберите учетную запись пользователя для Office 365 Outlook. На открывающейся странице подтверждения выберите "Разрешить доступ".
Когда Azure Logic Apps предложит открыть ссылку Visual Studio Code, нажмите кнопку "Открыть".
Когда Visual Studio Code предложит вам открыть расширение Microsoft Azure Tools, нажмите кнопку "Открыть".
После того как Visual Studio Code создаст подключение, некоторые соединители показывают сообщение о том, что подключение будет действовать только <n> дней. Это ограничение времени применяется только к времени создания логического приложения в Visual Studio Code. После развертывания это ограничение больше не применяется, так как рабочий процесс может пройти проверку подлинности во время выполнения с помощью управляемого удостоверения, назначаемого системой автоматически. Это управляемое удостоверение отличается от тех учетных данных проверки подлинности или строк подключения, которые вы используете при создании подключения. Если отключить управляемую идентичность, назначенную системой, подключения не будут работать во время выполнения программ.
На открывающейся вкладке "Параметры" в области "Отправка сведений электронной почты" укажите необходимые сведения для действия.
Примечание.
Если область сведений о действии не открыта автоматически, выберите действие "Отправить сообщение электронной почты " в конструкторе.
Недвижимость Обязательно Ценность Описание до Да < ваш адрес электронной почты> Получатель электронной почты, который может быть вашим адресом электронной почты в целях тестирования. В этом примере используется вымышленное сообщение электронной почты. sophia.owen@fabrikam.com Тема Да Сообщение электронной почты из примера рабочего процесса Тема электронной почты Тело Да Привет из примера рабочего процесса! Содержимое текста электронной почты Рассмотрим пример.
Сохраните свой рабочий процесс. В конструкторе нажмите кнопку "Сохранить".
Стандартная структура проекта логического приложения
В Visual Studio Code ваш проект приложения логики может относиться к одному из следующих типов:
- На основе пакета расширений (Node.js) — это тип по умолчанию
- На основе пакета NuGet (.NET) — его можно преобразовать из типа по умолчанию
На основе этих типов проект может включать несколько разных папок или файлов. Например, проект на основе пакетов Nuget содержит папку .bin , содержащую пакеты и другие файлы библиотеки. Проект на основе пакета расширений не включает эту папку .bin .
В некоторых сценариях для запуска приложения требуется проект на основе пакета NuGet, например при разработке и выполнении пользовательских встроенных операций. Для получения дополнительной информации о переводе своего проекта на использование NuGet см. раздел Включение создания встроенных соединителей.
Проект пакета расширений по умолчанию имеет папку и структуру файлов, аналогичную следующему примеру:
MyWorkspaceName
| MyBundleBasedLogicAppProjectName
|| .vscode
|| Artifacts
||| Maps
|||| MapName1
|||| ...
||| Rules
||| Schemas
|||| SchemaName1
|||| ...
|| lib
||| builtinOperationSdks
|||| JAR
|||| net472
||| custom
|| WorkflowName1
||| workflow.json
||| ...
|| WorkflowName2
||| workflow.json
||| ...
|| workflow-designtime
||| host.json
||| local.settings.json
|| .funcignore
|| connections.json
|| host.json
|| local.settings.json
На корневом уровне проекта можно найти следующие папки и файлы вместе с другими элементами:
Имя | Папка или файл | Описание |
---|---|---|
VSCODE | Папка | Содержит файлы параметров для Visual Studio Code, в том числе файлы extensions.json, launch.json, settings.json и tasks.json files. |
Артефакты | Папка | Содержит артефакты учетной записи интеграции, которые вы можете определить и использовать в рабочих процессах, поддерживающих сценарии B2B. Например, пример структуры включает следующие папки: - Карты: содержит карты , используемые для операций преобразования XML. - Схемы: содержит схемы , используемые для операций проверки XML. - Правила: артефакты бизнес-правил для проектов систем на основе правил. |
Библиотека | Папка | Содержит поддерживаемые сборки, которые ваше логическое приложение может использовать или на которые можно ссылаться. Эти сборки можно передать в проект в Visual Studio Code, но их необходимо добавить в определенные папки в проекте. Например, эта папка содержит следующие папки: - builtinOperationSdks: содержит папки JAR и net472 для сборок Java и .NET Framework соответственно. - custom: содержит пользовательские сборки .NET Framework. Дополнительные сведения о поддерживаемых типах сборок и их расположении в проекте см. в разделе "Добавление сборок в проект". |
< Имя рабочего процесса> | Папка | Для каждого рабочего процесса папка <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 может содержать секреты, поэтому не забудьте исключить его из системы управления версиями своего проекта. Этот файл также содержит параметры, необходимые для корректной работы вашего логического приложения. Справочные сведения см. в разделе "Изменение параметров приложения" и параметров узла. |
Другие задачи настройки разработки
После создания проекта у вас по-прежнему могут быть другие задачи установки для поддержки конкретных локальных сценариев разработки вокруг создания, запуска и развертывания приложений логики уровня "Стандартный" с помощью Visual Studio Code. В следующих разделах описаны задачи для этих сценариев.
Включите локальные веб-перехватчики
Операция веб-перехватчика — это триггер или действие в рабочем процессе, которое ожидает возникновения события перед выполнением самой операции. В частности, операция веб-перехватчика ожидает получения HTTPS-запроса от вызывающей службы или рабочего процесса, прежде чем она может продолжиться. Например, webhooks включают такие операции, как триггер запроса и триггер HTTP+Webhook.
В Azure-портале среда выполнения Azure Logic Apps автоматически регистрирует вебхук в вызывающей службе или рабочем процессе. Среда выполнения регистрирует URL-адрес обратного вызова для веб-перехватчика в службе вызова или рабочем процессе. Затем веб-перехватчик ожидает, когда вызывающий отправит запрос по URL-адресу обратного вызова.
Однако в Visual Studio Code необходимо выполнить некоторые задачи настройки, чтобы операции webhook работали корректно. В этом сценарии URL-адрес обратного вызова использует сервер localhost (http://localhost:7071/...
), который является частным, поэтому вызывающий объект не может напрямую отправлять запрос через Интернет в этот URL-адрес.
Для операций веб-перехватчика в локально запущенных рабочих процессах необходимо настроить общедоступный URL-адрес, который предоставляет сервер localhost и безопасно перенаправит вызовы от вызывающего объекта к URL-адресу обратного вызова. Вы можете использовать службу пересылки и инструмент, например ngrok, который открывает http-туннель к порту localhost или использовать собственный эквивалентный инструмент.
Настройка переадресации звонков с помощью ngrok
Перейдите на веб-сайт ngrok. Зарегистрируйтесь для новой учетной записи или войдите в свою учетную запись, если у вас уже есть.
Получите свой личный токен аутентификации, который клиенту ngrok необходим для подключения и авторизации доступа к вашей учетной записи.
Чтобы найти страницу вашего токена аутентификации, в меню панели управления вашей учетной записи разверните пункт Проверка подлинности и выберите Ваш токен.
С из поля Your Authtoken скопируйте токен в надежное место.
На странице загрузки ngrok или панели мониторинга учетной записи скачайте нужную версию ngrok и извлеките файл .zip.
Дополнительные сведения см. в шаге 1. Распакуйте для установки.
На компьютере откройте средство командной строки. Перейдите к расположению, где находится файлngrok.exe.
Подключите клиент ngrok к учетной записи ngrok , выполнив следующую команду:
ngrok authtoken <your-authentication-token>
Дополнительные сведения см. в шаге 2. Подключение учетной записи.
Откройте http-туннель для порта localhost 7071, выполнив следующую команду:
ngrok http 7071
Дополнительные сведения см. в шаге 3: Запуск.
В выходных данных найдите следующую строку:
http://<domain>.ngrok.io -> http://localhost:7071
Скопируйте и сохраните URL-адрес, имеющий следующий формат:
http://<domain>.ngrok.io
Настройка URL-адреса пересылки в параметрах приложения
В Visual Studio Code на дизайн-панели добавьте операцию вебхука, которую вы хотите использовать в рабочем процессе.
Этот пример продолжается с триггером HTTP+ Webhook .
Когда появится запрос для расположения узла, введите ранее созданный 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": "dotnet", "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"
Включение журнала выполнения для рабочих процессов без отслеживания состояния
Чтобы упростить отладку рабочего процесса без отслеживания состояния, можно включить журнал выполнения для этого рабочего процесса, а затем отключить журнал выполнения после завершения. Выполните следующие действия для Visual Studio Code или если вы работаете на портале Azure, см. статью "Создание рабочих процессов на основе одного клиента" на портале Azure.
В проекте Visual Studio Code на уровне корневой папки откройте файл local.settings.json .
Workflows.<workflow-name>.operationOptions
Добавьте свойство и задайте значениеWithStatelessRunHistory
, например:Виндоус
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "Workflows.<workflow-name>.OperationOptions": "WithStatelessRunHistory" } }
macOS или Linux
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=fabrikamstorageacct; \ AccountKey=<access-key>;EndpointSuffix=core.windows.net", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "Workflows.<workflow-name>.OperationOptions": "WithStatelessRunHistory" } }
В папке проекта с именем workflow-designtime откройте файлlocal.settings.json и внесите одно и то же изменение.
Чтобы отключить журнал выполнения по завершении, задайте для свойства
Workflows.<workflow-name>.OperationOptions
None
значение или удалите это свойство и его значение.
Добавление артефактов и зависимостей в проект
В определенных сценариях рабочий процесс может включать операции, требующие зависимостей, таких как сборки или артефакты, такие как карты, схемы или правила. В Visual Studio Code можно добавить эти элементы в соответствующие папки проекта, например:
Товар | Тип файла | Описание |
---|---|---|
Карты | .xslt | Дополнительные сведения см. в разделе "Добавление карт" для преобразований в рабочих процессах. |
Схемы | XSD | Дополнительные сведения см. в разделе "Добавление схем для проверки". |
Правила | .xml | Дополнительные сведения см. в разделе "Создание проекта движка правил Azure Logic Apps". |
Сборки |
-
.dll (.NET Framework или .NET 8) - .jar (Java) |
Ресурс стандартного логического приложения может использовать или ссылаться на определенные типы сборок, которые можно загрузить в проект в Visual Studio Code. Однако их необходимо добавить в определенные папки проекта. Дополнительные сведения см. в разделе "Добавление ссылочных сборок". Примечание. Если у вас есть проект приложения логики на основе пакета NuGet (.NET), созданный до появления поддержки сборок, см. статью "Миграция проектов на основе пакетов NuGet для использования сборок в папке lib". |
Преобразуйте проект в основанный на пакетах NuGet (.NET)
По умолчанию Visual Studio Code создает проект Logic Apps в виде пакета расширений (Node.js). Если вам нужен проект на основе пакета NuGet (.NET), например для создания собственных встроенных соединителей, необходимо преобразовать проект по умолчанию в проект На основе пакетов NuGet (.NET).
Это важно
Это односторонняя операция, которую нельзя отменить.
В области обозревателя переместите указатель мыши на любую пустую область под папками и файлами проекта, откройте контекстное меню и выберите команду "Преобразовать в проект приложения логики на основе NuGet".
Когда появится запрос, подтвердите преобразование проекта.
Перенос проектов на основе пакетов NuGet для использования сборок в папке lib
Это важно
Эта задача необходима только для проектов приложения логики на основе пакетов NuGet (.NET), созданных до того, как сборки стали доступны.
Если вы создали проект приложения логики, когда поддержка сборок не была доступна для рабочих процессов приложений логики уровня "Стандартный", вы можете добавить следующие строки в файл <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>:
Включение встроенной разработки соединителей
Вы можете создать собственные встроенные соединители для любой службы, необходимой с помощью платформы расширяемости Azure Logic Apps с одним клиентом. Подобно встроенным соединителям, таким как Azure Service Bus и SQL Server, эти соединители обеспечивают более высокую пропускную способность, низкую задержку, локальную связь и работают нативно в том же процессе, что и среда выполнения Azure Logic Apps для одного арендатора.
В настоящее время возможность разработки доступна только в Visual Studio Code, но не включена по умолчанию. Чтобы создать эти соединители, выполните следующие действия.
Если вы еще не сделали этого, преобразуйте проект на основе пакета расширения (Node.js) в проект На основе пакета NuGet (.NET).
Просмотрите и выполните действия, описанные в статье, Azure Logic Apps, работающая в любом месте — возможности расширения встроенного соединителя.
Локальное выполнение, отладка и тестирование рабочих процессов
В следующих разделах показано, как задать точки останова и запустить сеанс отладки для запуска и тестирования рабочего процесса локально.
Настройка точек останова для отладки
Прежде чем запускать и тестировать рабочий процесс приложения логики, запуская сеанс отладки, можно задать точки останова внутри файла workflow.json для каждого рабочего процесса. Другая настройка не требуется.
Точки останова в настоящее время поддерживаются только для действий, а не триггеров. Каждое определение действия содержит следующие расположения точек останова:
Задайте начальную точку останова в строке, где отображается имя действия. Когда эта точка останова срабатывает в процессе отладки, перед их оценкой можно просмотреть данные действия.
Задайте конечную точку останова в строке, показывающую закрывающую фигурную скобку действия (}). Когда эта точка останова срабатывает во время сеанса отладки, можно просмотреть результаты до окончания выполнения действия.
Чтобы добавить точку останова, выполните следующие действия.
Откройте файл workflow.json для рабочего процесса, который вы хотите отладить.
В строке, в которой нужно задать точку останова, в левом столбце выберите внутри этого столбца. Чтобы удалить точку останова, выберите эту точку останова.
При запуске сеанса отладки представление "Запуск" отображается в левой части окна кода, а панель инструментов отладки отображается в верхней части окна.
Примечание.
Если представление запуска не отображается автоматически, нажмите клавиши CTRL+SHIFT+D.
Чтобы ознакомиться с доступной информацией, когда срабатывает точка останова, в представлении "Запуск" просмотрите область "Переменные.
Чтобы продолжить выполнение рабочего процесса, на панели инструментов отладки нажмите кнопку "Продолжить " (кнопка воспроизведения).
Вы можете добавлять и удалять точки останова в любое время во время выполнения рабочего процесса. Однако, если обновить файл workflow.json после начала выполнения, точки останова не обновляются автоматически. Чтобы обновить точки останова, перезапустите приложение логики.
Общие сведения см. в разделе "Точки останова" — Visual Studio Code.
Отладка и проверка рабочего процесса
Чтобы протестировать рабочий процесс, выполните следующие действия, чтобы запустить сеанс отладки и найти URL-адрес конечной точки, созданной триггером запроса . Этот URL-адрес необходим, чтобы позже можно было отправить запрос в эту конечную точку.
Если у вас есть рабочий процесс без отслеживания состояния, включите журнал выполнения для рабочего процесса , чтобы упростить отладку.
В меню "Запуск " выберите "Начать отладку " (F5).
Откроется окно терминала , чтобы просмотреть сеанс отладки.
Примечание.
Если вы получите сообщение об ошибке "Ошибка существует после запуска preLaunchTask "generateDebugSymbols", см. раздел "Устранение неполадок", сеанс отладки не запускается.
Теперь найдите URL-адрес обратного вызова для конечной точки, созданной триггером запроса .
Откройте панель обозревателя, чтобы просмотреть проект.
В контекстном меню workflow.json файла выберите "Обзор".
Скопируйте и сохраните URL-адрес обратного вызова, похожий на следующий URL-адрес для триггера получения HTTP-запроса в этом примере:
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-адрес обратного вызова и активировать рабочий процесс, отправьте HTTP-запрос в URL-адрес, включая метод, который ожидает триггер, с помощью средства HTTP-запроса и его инструкций.
В этом примере используется метод GET с скопированным URL-адресом, который выглядит следующим образом:
GET http://localhost:7071/api/Stateful-Workflow/triggers/manual/invoke?api-version=2020-05-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=<shared-access-signature>
При срабатывании триггера пример рабочего процесса запускается и отправляет сообщение электронной почты, похожее на этот пример:
В Visual Studio Code вернитесь на страницу обзора рабочего процесса. В разделе "Журнал выполнения" проверьте состояние выполнения рабочего процесса.
Подсказка
Если состояние выполнения не отображается, попробуйте обновить страницу обзора, нажав кнопку "Обновить". Выполнение не происходит для триггера, пропускаемого из-за неудовлетворенных критериев или отсутствия данных.
В следующей таблице показаны возможные конечные состояния, которые могут иметь каждый рабочий процесс и отображаться в Visual Studio Code:
Состояние выполнения Описание Недоношенный Выполнение остановлено или не завершено из-за внешних проблем, например сбоя системы или не завершенной подписки Azure. отменено Запуск был инициирован и начат, но поступило требование на его отмену. Неудачно По крайней мере одно действие в процессе завершилось сбоем. Последующие действия в рабочем процессе не были настроены для обработки сбоя. Бег Запуск был инициирован и выполняется, но это состояние также может отображаться для выполнения, которое ограничено из-за ограничений действий или текущего плана ценообразования.
Совет. Если вы настроили ведение журнала диагностики, вы можете получить сведения о любых событиях регулирования, которые происходят.Успешно Запуск выполнен успешно. Если какое-либо действие завершилось сбоем, последующее действие в рабочем процессе обработало этот сбой. Истекло время ожидания Время ожидания выполнения истекло, так как текущая длительность превысила ограничение длительности выполнения, которое управляется параметром хранения журнала выполнения в днях. Длительность выполнения рассчитывается, используя время начала выполнения и ограничение времени выполнения на момент запуска. Примечание. Если длительность выполнения также превышает текущий предел хранения журнала выполнения, который также контролируется параметром хранения журнала выполнения в днях, выполнение удаляется из журнала выполнения ежедневным заданием очистки. Независимо от того, истекает ли время выполнения или оно завершается, период хранения всегда рассчитывается, начиная с времени начала выполнения и с учетом текущего ограничения хранения. Таким образом, если уменьшить ограничение длительности для запуска во время полета, время ожидания истекает. Однако выполнение остается или удаляется из журнала выполнения в зависимости от того, превышает ли длительность выполнения ограничение хранения.
Ожидание Запуск не начат или приостановлен, например, из-за более раннего экземпляра рабочего процесса, который всё ещё выполняется. Чтобы просмотреть состояние каждого шага, входные данные и выходные данные для определенного запуска рабочего процесса, выберите любой шаг:
В столбце идентификатора выберите идентификатор запуска рабочего процесса.
Рядом со столбцом "Длительность " откройте меню многоточия (...) для запуска рабочего процесса и выберите 'Показать запуск', например:
Visual Studio Code открывает представление сведений о выполнении и отображает состояние каждого шага в выполнении рабочего процесса.
Примечание.
Если выполнение провалилось, а в представлении сведений о выполнении отображается ошибка 400 Плохой запрос, причиной проблемы может быть слишком длинное имя триггера или действие, из-за чего идентификатор URI превышает ограничение на количество символов по умолчанию. Дополнительные сведения см. в разделе "400 Недопустимый запрос".
В следующей таблице показаны возможные состояния, которые могут иметь каждое действие рабочего процесса и отображаться в Visual Studio Code:
Состояние действия Описание Недоношенный Действие остановлено или не завершено из-за внешних проблем, например сбоя системы или не завершенной подписки Azure. отменено Действие выполнялось, но получило запрос на отмену. Неудачно Не удалось выполнить действие. Бег В настоящее время действие выполняется. Пропущено Действие было пропущено, так как предыдущее действие сразу же завершилось ошибкой. Действие имеет runAfter
условие, требующее успешного завершения предыдущего действия до запуска текущего действия.Успешно Действие выполнено успешно. Успешно выполнено после повторных попыток Действие выполнено успешно, но только после одной или нескольких повторных попыток. Чтобы просмотреть журнал повторных попыток, в представлении сведений журнала выполнения выберите это действие, чтобы просмотреть входные и выходные данные. Истекло время ожидания Действие остановлено из-за ограничения времени ожидания, указанного параметрами этого действия. Ожидание Применяется к действиям веб-хука, ожидающим входящего запроса от вызывающего. Чтобы просмотреть входные и выходные данные для каждого шага, выберите нужный шаг, например:
Чтобы просмотреть необработанные входные и выходные данные, выберите "Показать необработанные входные данные " или "Показать необработанные выходные данные".
Чтобы остановить сеанс отладки, в меню "Выполнить " выберите "Остановить отладку " (SHIFT + F5).
Вернуть ответ
Если у вас есть рабочий процесс, который начинается с триггера получения HTTP-запроса, рабочий процесс может вернуть ответ вызывающему объекту, отправляющий первоначальный запрос, с помощью действия запроса с именем Response.
В конструкторе рабочих процессов в разделе "Отправить сообщение электронной почты " выполните следующие общие действия, чтобы добавить действие запроса с именем Response.
В панели информации о действии Ответ на вкладке Параметры укажите необходимые сведения для ответа вызывающему абоненту.
В этом примере возвращается значение параметра Body , которое является выходным результатом действия "Отправить сообщение электронной почты ".
Для параметра Body выберите внутри поля редактирования и щелкните значок молнии, который открывает список динамического содержимого. В этом списке показаны доступные выходные значения из предыдущего триггера и действий в рабочем процессе.
В списке динамического содержимого в разделе "Отправить сообщение электронной почты" выберите "Текст".
Когда вы закончите, свойство Body действия Ответ теперь установлено в значение Body из действия Отправить электронное письмо, например:
Сохраните свой рабочий процесс.
Повторное тестирование рабочего процесса
Чтобы протестировать обновления, можно повторно запустить отладчик и отправить другой запрос, который активирует рабочий процесс, аналогичный шагам в локальном режиме запуска, отладки и тестирования рабочих процессов.
На панели инструментов Visual Studio Code в меню "Выполнить " и выберите "Начать отладку " (F5).
В средстве создания и отправки запросов отправьте другой запрос, чтобы активировать рабочий процесс.
На странице обзора рабочего процесса в разделе "Журнал выполнения" проверьте состояние последнего запуска и откройте представление сведений о выполнении.
Например, ниже приведены пошаговые сведения о состоянии выполнения после обновления примера рабочего процесса с действием "Ответ ".
Чтобы остановить сеанс отладки, в меню "Выполнить " выберите "Остановить отладку " (SHIFT + F5).
Подготовка к развертыванию
Прежде чем развертывать приложение логики уровня "Стандартный" на портале Azure, ознакомьтесь с этим разделом о любой подготовке, которую может потребоваться выполнить.
Настройка доступа к брандмауэру
Если в вашей среде есть строгие требования к сети или брандмауэры, ограничивающие трафик, необходимо настроить разрешения для любых подключений, созданных управляемыми, размещенными и общими соединителями Azure, и используемыми в рабочем процессе.
Чтобы найти полные доменные имена (FQDN) для этих подключений, выполните следующие действия.
В проекте приложения логики откройте файл local.settings.json .
Для каждого созданного соединения найдите свойство с именем
<connection-name>-ConnectionRuntimeUrl
, которое использует следующий синтаксис:"<connection-name>-ConnectionRuntimeUrl": <connection-runtime-URL>
Например, предположим, что у вас есть пример local.settings.json файла, содержащего эти подключения: подключение Office 365 и подключение AS2. Эти подключения используют следующие соответствующие примеры значений
<connection-name>-ConnectionRuntimeUrl
для свойств:Office 365:
"office365-ConnectionRuntimeUrl": https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/office365/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1"
AS2:
"as2-ConnectionRuntimeUrl": https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/as2/b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2
Пример файлаlocal.settings.json выглядит следующим образом:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "node", "APP_KIND": "workflowapp", "ProjectDirectoryPath": "c:\\Users\\<local-username>\\Desktop\\Visual Studio Code projects\\Azure Logic Apps\fabrikam-workflows\\Fabrikam-Workflows\\Fabrikam-Workflows", "WORKFLOWS_TENANT_ID": "<Microsoft-Entra-tenant-ID>", "WORKFLOWS_SUBSCRIPTION_ID": "<Azure-subscription-ID>", "WORKFLOWS_RESOURCE_GROUP_NAME": "Fabrikam-Workflows-RG", "WORKFLOWS_LOCATION_NAME": "westcentralus", "WORKFLOWS_MANAGEMENT_BASE_URI": "https://management.azure.com/", "as2-connectionKey": "<connection-key>", "as2-ConnectionRuntimeUrl": "https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/as2/b1b1b1b1-cccc-dddd-eeee-f2f2f2f2f2f2", "office365-connectionKey": "<connection-key>", "office365-ConnectionRuntimeUrl": "https://A1bC2dE3fH4iJ5kL6mN7oP8qR9sT0u.00.common.logic-<Azure-region>.azure-apihub.net/apim/office365/a0a0a0a0-bbbb-cccc-dddd-e1e1e1e1e1e1", } }
Скопируйте и сохраните эти URL-адреса среды выполнения подключения в безопасном месте, чтобы настроить брандмауэр с помощью этих сведений.
Когда вы будете готовы, настройте брандмауэр с помощью сохраненных URL-адресов. Дополнительные сведения см. в следующей документации:
Развертывание в Azure
Чтобы развернуть стандартное логическое приложение из Visual Studio Code, вы можете непосредственно опубликовать свой проект в Azure. Приложение логики можно опубликовать в качестве нового ресурса, который автоматически создает все необходимые ресурсы, такие как учетная запись хранения Azure, аналогично требованиям приложения-функции. Кроме того, вы можете опубликовать логическое приложение в ресурсе ранее развернутого логического приложения Standard, что перезаписывает развернутую версию.
Для развертывания ресурса логического приложения типа "Стандартный" требуется план размещения и ценовая категория, выбранная вами во время развертывания. Дополнительные сведения см. в разделе "Планы размещения" и ценовые категории.
Публикация в ресурс нового логического приложения стандартного типа.
В области обозревателя переместите указатель мыши на любую пустую область под папками и файлами проекта, откройте контекстное меню и выберите " Развернуть в приложении логики".
Хотя вам не нужно открывать файлы для развертывания, убедитесь, что вы сохранили все, что планируется развернуть.
Вам предлагается выбрать следующие параметры для целевого ресурса логического приложения стандартного типа. Вы можете создать новое приложение логики "Стандартный" или выбрать существующее развернутое приложение логики "Стандартный" в Azure:
- Создание нового логического приложения (стандартное) в Azure (быстро)
- Создать новый Logic App (Standard) в Azure Advanced
- Выберите ранее развернутые ресурсы стандартного приложения логики, при наличии.
В параметрах развертывания выберите, следует ли создавать или использовать существующий ресурс приложения логики назначения.
В этом примере продолжается создание новой Logic App (Standard) в Azure Advanced.
Выполните следующие действия, чтобы создать ресурс приложения логики назначения:
Введите глобально уникальное имя для целевого приложения логики.
В этом примере используется Fabrikam-Workflows-App.
Для развертывания выберите регион Azure.
В этом примере используется западная часть США.
Для плана размещения выберите один из следующих вариантов:
План размещения Описание Стандарт рабочего процесса Разверните как новый ресурс логического приложения Стандартной логики, размещенного в однопользовательском Azure Logic Apps. Гибрид "Разверните стандартное логическое приложение, размещенное в вашей собственной инфраструктуре."
Примечание. Прежде чем выбрать этот параметр, убедитесь, что вы настроили необходимую инфраструктуру. Дополнительные сведения см. в статье Настройка собственной инфраструктуры для стандартных приложений логики с помощью гибридного развертывания.Для плана службы приложений Windows выберите один из следующих вариантов:
- Создать новый план службы приложений
- Выберите существующие планы службы приложений в выбранном регионе Azure (только для Windows), если они существуют.
В этом примере выбирается Создать новый план службы приложений.
Для нового плана укажите глобально уникальное имя и выберите ценовую категорию.
В этом примере используется Fabrikam-Workflows-App-Service-Plan и выбирается уровень "Стандартный рабочий процесс WS1 ".
Дополнительные сведения см. в разделе "Планы размещения" и ценовые категории.
Для целевой группы ресурсов Azure выберите ту же группу ресурсов, что и проект, чтобы обеспечить оптимальную производительность.
В этом примере используется та же ранее созданная группа с именем Fabrikam-Workflows-RG.
Примечание.
Хотя вы можете создать или использовать другую группу ресурсов, это может повлиять на производительность. Если вы создаете или выбираете другую группу ресурсов, но отменяете после появления запроса подтверждения, развертывание также отменяется.
Чтобы учетная запись хранения Azure использовалась с рабочими процессами, которые позволяют сохранять сведения журнала выполнения, выберите один из следующих вариантов:
- Создание учетной записи хранения
- Выберите из существующих учетных записей хранения Azure, если таковые есть.
В этом примере выбирается создание учетной записи хранения.
Введите глобально уникальное имя учетной записи хранения. Можно использовать только строчные буквы и цифры.
В этом примере используется fabrikamstorageaccount< номер>.
Чтобы использовать хранилище SQL в этом примере, выберите "Нет".
Если вы уже настроили базу данных SQL для хранения, следуя инструкциям в Настройка хранилища базы данных SQL для рабочих процессов стандартного логического приложения, можно выбрать «Да».
Для ресурса Application Insights, который включает ведение журнала диагностики и трассировку для приложения логики, выберите один из следующих вариантов:
- Создание ресурса Application Insights
- Пропустить сейчас. После развертывания вы можете настроить Application Insights.
- Выберите существующий ресурс Application Insights, если он существует.
В этом примере выбирается "Пропустить сейчас".
Примечание.
Если у вас есть ресурс Application Insights, который вы хотите использовать, можно выбрать этот ресурс.
Чтобы сейчас создать новый ресурс Application Insights и включить ведение журнала диагностики и трассировку, см. статью "Включить Application Insights во время развертывания".
Дополнительные сведения о Application Insights см. в следующей документации:
После выбора "Пропустить сейчас" или существующего ресурса Application Insights в Visual Studio Code отображается сообщение о готовности к запуску развертывания. В сообщении также рекомендуется для достижения наилучшей производительности разместить ресурсы подключения для управляемых операций в той же группе ресурсов, что и ресурсы вашего логического приложения и рабочих процессов. В Azure Logic Apps управляемые подключения операций существуют в качестве отдельных ресурсов Azure.
Когда вы будете готовы к развертыванию, в сообщении подтверждения нажмите кнопку "Развернуть".
Visual Studio Code начинает создавать и развертывать необходимые ресурсы для публикации приложения логики в Azure.
Чтобы просмотреть и отслеживать процесс развертывания, в меню "Вид " выберите "Выходные данные".
На панели инструментов окна вывода в списке областей выберите Azure Logic Apps (стандартный).
Когда Visual Studio Code завершит развертывание приложения логики в Azure, появится сообщение об успешном создании приложения логики, например:
Ресурс приложения логики и рабочий процесс теперь доступны в режиме реального времени, включен и запущен в Azure.
Включение Application Insights во время развертывания
Чтобы включить ведение журнала диагностики и трассировку с помощью Application Insights во время развертывания приложения логики, выполните следующие действия.
Выберите существующий ресурс Application Insights или создайте новый ресурс Application Insights.
На портале Azure перейдите к ресурсу Application Insights.
В меню ресурсов выберите Обзор. Найдите и скопируйте значение ключа инструментирования .
В Visual Studio Code в корневой папке проекта откройте файлlocal.settings.json .
В объекте
Values
добавьтеAPPINSIGHTS_INSTRUMENTATIONKEY
свойство и задайте значение ключа инструментирования, например:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet", "APPINSIGHTS_INSTRUMENTATIONKEY": <instrumentation-key> } }
Проверьте правильность отображения триггера рабочего процесса и имен действий в экземпляре Application Insights.
Вернитесь к ресурсу Application Insights на портале Azure.
В меню ресурсов в разделе " Исследование" выберите "Карта приложения".
Просмотрите имена операций, которые отображаются на карте.
Некоторые входящие запросы со встроенных триггеров могут отображаться как дубликаты в схеме приложений. Вместо использования
WorkflowName.ActionName
формата эти дубликаты используют имя рабочего процесса в качестве имени операции и исходя из узла Функций Azure.
При необходимости измените уровень важности данных трассировки, которые ваше приложение логики собирает и отправляет в экземпляр 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" } } }
Задачи, выполняемые после развертывания
В следующих разделах описаны задачи, выполняемые после завершения развертывания приложения логики.
Подтверждение развертывания на портале Azure
После развертывания приложения логики из Visual Studio Code на портале Azure убедитесь, что приложение логики появится на портале. Ресурсы Azure организованы и группируются на портале на основе их типа ресурсов. Чтобы найти стандартные приложения логики, выполните следующие действия.
Войдите на портал Azure с помощью своей учетной записи Azure.
В поле поиска в Azure введите название вашего логического приложения, которое должно появиться в разделе Ресурсы. Выберите приложение логики, чтобы открыть ресурс.
В меню приложения логики в разделе Рабочие процессы выберите Рабочие процессы.
На странице "Рабочие процессы" выберите рабочий процесс.
В меню рабочего процесса в разделе "Сервис" выберите "Конструктор". Убедитесь, что рабочий процесс отображается должным образом.
Теперь вы можете внести изменения в этот рабочий процесс на портале Azure.
Обязательно включите возможности мониторинга для развернутого приложения логики , чтобы просмотреть журнал выполнения рабочего процесса, входные данные, выходные данные и другие связанные сведения.
Включение возможностей мониторинга для развернутого приложения логики
Прежде чем просматривать журнал выполнения рабочих процессов, входные данные, выходные данные и связанные сведения для развернутого ресурса приложения логики уровня "Стандартный" с интерфейсом мониторинга на портале Azure, необходимо сначала включить этот интерфейс в ресурсе приложения логики.
На портале Azure откройте развернутый ресурс логического приложения Standard.
В меню ресурсов в разделе API выберите CORS.
На панели CORS в разделе "Разрешенные источники" добавьте подстановочный знак (*).
По завершении на панели инструментов CORS нажмите кнопку "Сохранить".
Включение или открытие Application Insights после развертывания
Во время выполнения рабочего процесса рабочий процесс приложения логики выдает данные телеметрии вместе с другими событиями. Эту телеметрию можно использовать, чтобы лучше узнать, насколько хорошо работает рабочий процесс и как работает среда выполнения Azure Logic Apps. Application Insights предоставляет возможность включить ведение журнала диагностики, трассировку и мониторинг приложения логики с помощью телеметрии практически в режиме реального времени (динамические метрики). Эта возможность позволяет более легко изучить проблемы с ошибками и производительностью при использовании данных телеметрии для диагностики проблем, настройки оповещений и построения диаграмм.
Если вы ранее не настроили Application Insights, эту возможность можно включить на портале Azure после развертывания приложения логики из Visual Studio Code. Необходимо иметь ресурс Application Insights в Azure, но этот ресурс можно создать отдельно или при включении этой возможности после развертывания.
Если вы ранее настроили Application Insights во время развертывания из Visual Studio Code, вы можете просто открыть ресурс Application Insights из приложения логики на портале Azure.
Включение Application Insights для развернутого логического приложения
На портале Azure найдите и откройте развернутое логическое приложение.
В меню приложения логики в разделе "Мониторинг" выберите Application Insights.
На странице Application Insights выберите "Включить Application Insights".
После обновления страницы Application Insights в разделе "Изменение ресурса " выберите следующие параметры:
Создание ресурса
Azure создает ресурсы для Application Insights и рабочей области Log Analytics с помощью текущей подписки и группы ресурсов. Если вы хотите использовать другую подписку и группу ресурсов, см. статью "Создание ресурса Application Insights", а затем вернитесь на эту страницу.
Недвижимость Описание Новое название ресурса Примите созданное имя или укажите другое имя. Местонахождение Выберите регион Azure. Рабочая область Log Analytics Выберите существующую рабочую область, если она есть. В противном случае для вас создается рабочая область по умолчанию. Дополнительные сведения см. в обзоре рабочей области Log Analytics. Выберите существующий ресурс:
Выберите подписку Azure для ресурса Application Insights.
Выберите ресурс Application Insights.
Когда вы закончите, в нижней части страницы нажмите кнопку "Применить".
Откройте "Application Insights" из вашего логического приложения
На портале Azure найдите и откройте развернутое логическое приложение.
В меню приложения логики в разделе "Мониторинг" выберите Application Insights.
На странице Application Insights выберите ссылку для ресурса Application Insights.
После открытия Application Insights можно просмотреть различные метрики для приложения логики. Дополнительные сведения см. в следующих статьях:
- Azure Logic Apps, работающие в любом месте — мониторинг с помощью Application Insights; часть 1
- Запуск Azure Logic Apps где угодно - Мониторинг с помощью Application Insights, часть 2
Устранение ошибок и проблем
Не удается открыть конструктор
При попытке открыть конструктор вы получите эту ошибку: "Не удалось запустить режим проектирования рабочего процесса". Если вы ранее пытались открыть конструктор, но вы прекратили или удалили проект, пакет расширений может не правильно скачать. Чтобы проверить, является ли эта причина причиной, выполните следующие действия.
В Visual Studio Code откройте окно вывода. В меню "Вид " выберите "Выходные данные".
В списке в строке заголовка окна вывода выберите Azure Logic Apps (стандартный), чтобы просмотреть выходные данные из расширения, например:
Просмотрите выходные данные и проверьте, отображается ли это сообщение об ошибке:
A host error has occurred during startup operation '<operation-ID>'. System.Private.CoreLib: The file 'C:\Users\<user-name>\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\user-name<\>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".
Сохраните любую работу, которую вы не хотите потерять, и закройте Visual Studio Code.
На компьютере перейдите к следующей папке, содержащей версии папок для существующего пакета:
...\Users\<user-name>\.azure-functions-core-tools\Functions\ExtensionBundles\Microsoft.Azure.Functions.ExtensionBundle.Workflows
Удалите папку версии для более раннего пакета, например, если у вас есть папка для версии 1.1.3, удалите эту папку.
Теперь перейдите к следующей папке, содержащей папки с версиями для требуемого пакета NuGet:
...\Users\<user-name>\.nuget\packages\microsoft.azure.workflows.webjobs.extension
Удалите папку версии для предыдущего пакета.
Перезапустите Visual Studio Code, проект и файлworkflow.json в конструкторе.
Отсутствующие триггеры и действия теперь отображаются в конструкторе.
"400 Недопустимый запрос" отображается в триггере или действии
Когда выполнение завершилось сбоем, и вы проверяете выполнение в режиме мониторинга, эта ошибка может появиться в триггере или действии с более длинным именем, что приводит к превышению основной предельной длины символов унифицированного идентификатора ресурса (URI) по умолчанию.
Чтобы устранить эту проблему и настроить более длинный универсальный идентификатор ресурса (URI), измените ключи реестра UrlSegmentMaxCount
и UrlSegmentMaxLength
на вашем компьютере, следуя этим шагам. Значения по умолчанию этих ключей описаны в этой статье ,Http.sys параметры реестра для Windows.
Это важно
Перед началом работы убедитесь, что вы сохраните свою работу. Это решение требует перезагрузки компьютера после завершения работы, чтобы изменения вступили в силу.
На компьютере откройте окно запуска и выполните
regedit
команду, которая открывает редактор реестра.В поле "Контроль учетных записей пользователей " выберите "Да ", чтобы разрешить изменения на компьютере.
В области слева в разделе "Компьютер" разверните узлы по пути, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parametersи выберите "Параметры".
В правой области найдите разделы реестра
UrlSegmentMaxCount
иUrlSegmentMaxLength
.Увеличьте ключевые значения так, чтобы URI могли вместить имена, которые вы хотите использовать. Если эти ключи не существуют, добавьте их в папку "Параметры ", выполнив следующие действия:
В контекстном меню Параметры выберите Создать>значение DWORD (32-разрядное).
В появившемся поле редактирования введите
UrlSegmentMaxCount
имя нового ключа.Откройте контекстное меню нового ключа и нажмите кнопку "Изменить".
В появившемся поле "Изменить строку" введите значение ключа данных значения , которое требуется в шестнадцатеричном или десятичном формате. Например,
400
в шестнадцатеричной системе эквивалентно1024
в десятичной системе.Чтобы добавить
UrlSegmentMaxLength
значение ключа, повторите эти действия.
После увеличения или добавления этих ключевых значений редактор реестра выглядит следующим образом:
Когда вы будете готовы, перезапустите компьютер, чтобы изменения вступили в силу.
Не удается запустить сеанс отладки
При попытке запустить сеанс отладки вы получите ошибку "Ошибка существует после запуска preLaunchTask "generateDebugSymbols". Чтобы устранить эту проблему, измените файл tasks.json в проекте, чтобы пропустить создание символов.
В проекте разверните папку VSCODE** и откройте файл tasks.json .
В следующей задаче удалите строку, а также запятую, которая заканчивает предыдущую строку
"dependsOn: "generateDebugSymbols"
, например:До:
{ "type": "func", "command": "host start", "problemMatcher": "$func-watch", "isBackground": true, "dependsOn": "generateDebugSymbols" }
После:
{ "type": "func", "command": "host start", "problemMatcher": "$func-watch", "isBackground": true }