Добавление сопоставлений для преобразования в рабочих процессах с помощью Azure Logic Apps
Область применения: Azure Logic Apps (Потребление + Стандартный)
Действия рабочих процессов, такие как преобразование XML и Liquid, требуют сопоставление для выполнения своих задач. Например, для действия преобразования XML требуется сопоставление для преобразования XML в разные форматы. Сопоставление — это XML-документ, который использует язык XSLT для описания способа преобразования данных из XML в другой формат и имеет расширение имени файла .xslt. Эта карта состоит из исходной схемы XML в качестве входных данных и целевой схемы XML в качестве выходных данных. С помощью карты вы можете определить простое преобразование, такое как копирование имени и адреса из одного документа в другой. Но вы также можете создавать и более сложные преобразования с помощью встроенных операций сопоставления. Вы можете использовать разные встроенные функции, помогающие работать с данными и управлять ими, включая действия со строками, условные назначения, арифметические выражения, модули форматирования даты и времени и даже циклические конструкции.
Например, предположим, что вы регулярно получаете заказы или счета B2B от клиента, который использует формат даты YearMonthDay (ГГГГММДД). Однако ваша организация использует дату в формате МесяцДеньГод (ММДДГГГГ). Вы можете определить и использовать карту, которая преобразует формат ГГГГММДД в формат ММДДГГГГ перед сохранением деталей заказа или счета в базе данных действий клиентов.
В этом руководстве показано, как добавить карту для используемого рабочего процесса. Вы можете добавить карты в связанную учетную запись интеграции или, если у вас есть стандартное приложение логики, вы можете добавить карты непосредственно в ресурс приложения логики.
Необходимые компоненты
Учетная запись и подписка Azure. Если у вас еще нет подписки, зарегистрируйтесь и получите бесплатную учетную запись Azure.
Сопоставление для добавления. Для создания карт можно использовать любой из следующих средств:
Visual Studio Code и расширение Mapper для данных. Чтобы вызвать карты, созданные с помощью mapper данных из рабочего процесса, необходимо использовать действие "Операции сопоставления данных" с именем "Преобразование" с помощью XSLT средства сопоставления данных, а не действия XML-операций с именем Transform XML. Дополнительные сведения см. в статье "Создание карт для преобразования данных с помощью Visual Studio Code".
Visual Studio 2019 и расширение Средств интеграции Microsoft Azure Logic Apps Enterprise.
Visual Studio 2015 и расширение средств корпоративной интеграции Microsoft Azure Logic для Visual Studio 2015 2.0.
Примечание.
Не устанавливайте расширение Microsoft Azure Logic Apps Enterprise Integration Tools вместе с расширением BizTalk Server. Наличие обоих расширений может привести к непредвиденному поведению. Убедитесь, что установлено только одно из этих расширений.
На мониторах с высоким разрешением может возникнуть проблема с отображением конструктора карт в Visual Studio. Чтобы устранить эту проблему, перезапустите Visual Studio в режиме, не поддерживающем DPI, либо добавьте значение реестра DPIUNAWARE.
Дополнительные сведения см. в разделе Создание сопоставлений в этой статье.
В зависимости от того, работаете ли вы над рабочим процессом приложения логики категории "Потребление" или "Стандартный", вам потребуется ресурс учетной записи интеграции. Как правило, этот ресурс требуется при определении и хранении артефактов для использования в рабочих процессах интеграции предприятия и совместной работы B2B.
Важно!
Для включения совместной работы ваша учетная запись интеграции и ресурс приложения логики должны существовать в одной подписке Azure и регионе Azure.
Если вы работаете над рабочим процессом приложения логики уровня "Потребление", вам потребуется учетная запись интеграции, связанная с ресурсом приложения логики.
Если вы работаете над рабочим процессом приложения логики уровня "Стандартный", вы можете связать учетную запись интеграции с ресурсом приложения логики, отправить сопоставления непосредственно в ресурс приложения логики или выполнить и то, и другое в зависимости от следующих сценариев:
Если у вас уже есть учетная запись интеграции с нужными или используемыми артефактами, можно связать учетную запись интеграции с несколькими ресурсами приложения логики уровня "Стандартный", где вы хотите использовать артефакты. Таким образом, вам не нужно отправлять сопоставления в каждое отдельное приложение логики. Дополнительные сведения см. в статье Связывание ресурса приложения логики с учетной записью интеграции.
Встроенный соединитель Liquid позволяет выбрать карту, которую вы ранее отправили в ресурс приложения логики или связанную учетную запись интеграции, но не в оба целевых объекта.
Таким образом, если у вас отсутствует или вам требуется учетная запись интеграции, вы можете использовать вариант с отправкой. В противном случае можно использовать вариант со связыванием. Затем вы можете использовать эти артефакты во всех дочерних рабочих процессах в одном ресурсе приложения логики.
Рабочие процессы потребления и уровня "Стандартный" поддерживают карты XSLT, ссылающиеся на внешние сборки, которые позволяют напрямую вызывать пользовательский код .NET из карт XSLT. Для поддержки этой возможности рабочие процессы потребления также имеют следующие требования:
Вам требуется 64-разрядная сборка. Служба преобразования выполняет 64-разрядный процесс, поэтому 32-разрядные сборки не поддерживаются. Если у вас исходный код для 32-разрядной сборки, выполните повторную компиляцию кода в 64-разрядную сборку. Если у вас нет исходного кода, но вы получили двоичный код от стороннего поставщика, запросите у него 64-разрядную версию. Например, некоторые поставщики предлагают сборки в пакетах, где есть как 32-разрядная, так и 64-разрядная версии. Если у вас есть соответствующая возможность, используйте 64-разрядную сборку.
Вы должны загрузить и сборку, и карту в определенном порядке в свою учетную запись интеграции. Сначала передайте сборку, и лишь затем отправляйте карту со ссылкой на эту сборку.
Если ваша сборка или сопоставление имеет размер 2 МБ или меньше, вы можете добавить свою сборку и сопоставление в учетную запись интеграции непосредственно на портале Azure.
Если сборка больше 2 МБ, но не больше чем ограничение размера для сборок, вам потребуется учетная запись хранения Azure и контейнер BLOB-объектов для отправки в него сборки. Вы сможете указать расположение контейнера позже — при добавлении сборки в учетную запись интеграции. Для этой задачи в следующей таблице описаны необходимые элементы:
Элемент Description Учетная запись хранения Azure В этой учетной записи создайте контейнер больших двоичных объектов Azure для сборки. Узнайте, как создать учетную запись хранения. Контейнер BLOB-объектов В этот контейнер можно передать сборку. Вам также понадобится расположение URI содержимого этого контейнера при добавлении сборки в учетную запись интеграции. Узнайте, как создать контейнер больших двоичных объектов. Обозреватель службы хранилища Azure Это средство упрощает управление учетными записями хранения и контейнерами больших двоичных объектов. Чтобы использовать Обозреватель службы хранилища Azure, скачайте и установите его. Затем подключите Обозреватель службы хранилища к учетной записи хранения, следуя шагам из статьи Начало работы с Обозревателем службы хранилища. Дополнительные сведения см. в кратком руководстве Создание большого двоичного объекта с помощью Обозревателя службы хранилища Azure.
Выберите свою учетную запись хранения на портале Azure. В меню учетной записи хранения выберите Обозреватель службы хранилища.Для добавления сопоставлений большого размера используйте REST API Azure Logic Apps для сопоставлений. Для рабочих процессов уровня "Стандартный" интерфейс REST API Azure Logic Apps в настоящее время недоступен.
Ограничения
Ограничения применяются к некоторым артефактам, например сопоставлениям, в каждой отдельной учетной записи интеграции. Дополнительные сведения см. в статье Ограничения и сведения о конфигурации для Azure Logic Apps.
В зависимости от того, работаете ли вы над рабочим процессом приложения логики уровня "Потребление" или "Стандартный", применяются следующие ограничения:
Стандартные рабочие процессы
Поддержка XSLT 1.0, 2.0 и 3.0.
К размерам файлов сопоставлений не применяются ограничения.
Рабочие процессы уровня "Потребление"
Azure Logic Apps выделяет ограниченный объем памяти для обработки преобразований XML. Если вы создаете рабочие процессы уровня "Потребление", а преобразование сопоставления или полезных данных активно потребляет память, такое преобразование может завершиться сбоем из-за ошибок памяти. Чтобы избежать этого, рассмотрите описанные ниже варианты.
Измените карты или полезные данные, чтобы уменьшить потребление памяти.
Создайте рабочие процессы приложения логики уровня "Стандартный", которые выполняются в Azure Logic Apps с одним клиентом и предлагают выделенные и гибкие варианты для вычислительных ресурсов и ресурсов памяти.
Создание карт
Вы можете создавать карты с помощью Visual Studio Code с расширением Data Mapper или Visual Studio с расширением Microsoft Azure Logic Apps Enterprise Integration Tools.
Visual Studio Code
При создании карт с помощью Visual Studio Code и расширения Mapper данных эти карты можно вызывать из рабочего процесса, но только с действием "Операции сопоставления данных" с именем "Преобразование с помощью средства сопоставления данных XSLT", а не действия xml Operations с именем Transform XML. Дополнительные сведения см. в статье "Создание карт для преобразования данных с помощью Visual Studio Code".
Visual Studio
При создании карт с помощью Visual Studio необходимо создать проект интеграции с любой из следующих средств:
Visual Studio 2019 и расширение Microsoft Azure Logic Apps Enterprise Integration Tools
Visual Studio 2015 и расширение средств корпоративной интеграции Microsoft Azure Logic для Visual Studio 2015 2.0.
В проекте интеграции можно создать файл сопоставления интеграции, чтобы визуально сопоставить элементы в двух файлах схем XML. Эти средства предоставляют следующие возможности сопоставления:
Вы будете работать с графическим представлением сопоставления, включая все созданные вами отношения и связи.
Можно создать прямую копию данных между схемами XML, которые используются для создания карты. Пакет SDK для корпоративной интеграции для Visual Studio включает средство сопоставления, которое делает эту задачу такой же простой, как рисование линии, соединяющей элементы исходной схемы XML с их аналогами в целевой схеме XML.
Доступны операции или функции для нескольких карт, включая строковые функции, функции даты, времени и т. д.
Чтобы добавить образец сообщения XML, вы можете использовать возможность тестирования карты. Одним движением мыши вы можете протестировать созданную карту и просмотреть сгенерированный результат.
После создания этого проекта вы получите XSLT-документ.
Ваша карта должна иметь следующие атрибуты и раздел CDATA
, содержащий вызов ассемблерного кода.
name
— имя пользовательской сборки.namespace
— это пространство имен в вашей сборке, которое включает настраиваемый код.
В следующем примере показана карта, которая ссылается на сборку с именем XslUtilitiesLib и вызывает circumference
метод из сборки.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:my-scripts">
<msxsl:script language="C#" implements-prefix="user">
<msxsl:assembly name="XsltHelperLib"/>
<msxsl:using namespace="XsltHelpers"/>
<![CDATA[public double circumference(int radius){ XsltHelper helper = new XsltHelper(); return helper.circumference(radius); }]]>
</msxsl:script>
<xsl:template match="data">
<circles>
<xsl:for-each select="circle">
<circle>
<xsl:copy-of select="node()"/>
<circumference>
<xsl:value-of select="user:circumference(radius)"/>
</circumference>
</circle>
</xsl:for-each>
</circles>
</xsl:template>
</xsl:stylesheet>
Добавление сборок, на которые делаются ссылки
Ресурс приложения логики потребления поддерживает ссылки на внешние сборки из карт, которые позволяют напрямую вызывать пользовательский код .NET из карт XSLT.
В поле поиска портал Azure введите учетные записи интеграции и выберите учетные записи интеграции.
Выберите учетную запись интеграции, в которую вы хотите добавить свою сборку.
В меню учетной записи интеграции выберите Обзор. В разделе Параметры выберите Сборки.
На панели инструментов на панели Сборки выберите Добавить.
В зависимости от размера файла сборки выполните шаги по отправке сборки размером до 2 МБ или более 2 МБ, но до 8 МБ. Дополнительные сведения об ограничениях на количество сборок в учетных записях интеграции см. в статье Ограничения и сведения о конфигурации для Azure Logic Apps.
Примечание.
При изменении сборки необходимо всегда обновлять карту независимо от того, вносились ли в нее изменения.
Добавление сборок размером до 2 МБ
В разделе Добавить сборку введите имя сборки. Оставьте выбранным параметр Мелкий файл. Выберите значок папки рядом с полем Сборка. Найдите и выберите сборку, которую вы отправляете.
Имя файла выбранной сборки автоматически отображается в свойстве Имя сборки.
По завершении нажмите кнопку OK.
Когда файл сборки будет отправлен, сборка появится в списке Сборки. Отправленная сборка также появится на странице Обзор учетной записи интеграции в разделе Артефакты.
Добавление сборок размером более 2 МБ
Чтобы добавить объемные сборки, отправьте свою сборку в контейнер больших двоичных объектов Azure в учетной записи хранения Azure. Ваши действия по добавлению сборок будут отличаться в зависимости от наличия общего доступа на чтение к контейнеру BLOB-объектов. Сначала проверьте, есть ли у вашего контейнера BLOB-объектов открытый доступ на чтение, выполнив следующие действия: Настройка уровня общего доступа для контейнера больших двоичных объектов
Проверка уровня доступа к контейнеру
Откройте обозреватель службы хранилища Azure. В окне Обозревателя службы хранилища разверните свою подписку Azure, если она еще не развернута.
Разверните узлы Учетные записи хранения> {ваша учетная запись хранения} >Контейнеры больших двоичных объектов. Выберите свой контейнер больших двоичных объектов.
В контекстном меню контейнера больших двоичных объектов выберите Set Public Access Level (Настроить уровень общего доступа).
Если у контейнера больших двоичных объектов есть хотя бы общий доступ, щелкните Отменить и выполните действия, приведенные ниже на этой странице в разделе Отправка в контейнеры с общим доступом.
Если у контейнера больших двоичных объектов отсутствует общий доступ, щелкните Отменить и выполните действия, приведенные ниже на этой странице: Отправка в контейнеры без общего доступа.
Отправка в контейнеры с общим доступом
Отправьте сборку в учетную запись хранения. В окне справа выберите Отправить.
После завершения операции выберите отправленную сборку. На панели инструментов выберите Копировать URL-адрес, чтобы скопировать URL-адрес сборки.
Вернитесь на портал Azure, где открыта панель Добавление сборки. Введите имя сборки. Выберите Большой файл (более 2 МБ).
Теперь отображается поле URI содержимого, а не Сборка.
В поле URI содержимого вставьте URL-адрес своей сборки. Завершите добавление своей сборки.
Когда сборка будет отправлена, она появится в списке Сборки. Отправленная сборка также появится на странице Обзор учетной записи интеграции в разделе Артефакты.
Отправка в контейнеры без общего доступа
Отправьте сборку в учетную запись хранения. В окне справа выберите Отправить.
После отправки создайте подписанный URL-адрес сборки. В контекстном меню сборки щелкните Get Shared Access Signature (Получить подписанный URL-адрес).
В области Подписанный URL-адрес выберите Generate container-level shared access signature URI (Создание URI подписанного URL-адреса уровня контейнера)>Создать. После создания подписанного URL-адреса возле поля URL-адрес щелкните Копировать.
Вернитесь на портал Azure, где открыта панель Добавление сборки. Введите имя сборки. Выберите Большой файл (более 2 МБ).
Теперь отображается поле URI содержимого, а не Сборка.
В поле URI содержимого вставьте созданный ранее URI подписанного URL-адреса. Завершите добавление своей сборки.
Когда сборка будет отправлена, она появится в списке Сборки. Отправленная сборка также появится на странице Обзор учетной записи интеграции в разделе Артефакты.
Добавление карт
Если вы работаете с рабочим процессом уровня "Потребление", необходимо добавить сопоставление в связанную учетную запись интеграции.
Если вы работаете с рабочим процессом уровня "Стандартный", у вас есть следующие варианты:
Добавить сопоставление в связанную учетную запись интеграции. Вы можете предоставить общий доступ к сопоставлению и учетной записи интеграции в нескольких ресурсах приложения логики уровня "Стандартный" и их дочерних рабочих процессах.
Добавить сопоставление непосредственно в ресурс приложения логики. Но это сопоставление можно использовать только в дочерних рабочих процессах в одном ресурсе приложения логики.
Добавление сопоставления в учетную запись интеграции
Войдите на портал Azure с помощью учетных данных учетной записи Azure.
В поле поиска на портале Azure введите текст учетные записи интеграции и выберите элемент Учетные записи интеграции.
Найдите и выберите учетную запись интеграции.
В меню навигации учетной записи интеграции в разделе Параметры выберите пункт Maps.
На панели инструментов на панели Карты выберите Добавить.
Для рабочих процессов уровня "Потребление" выполните действия по отправке сопоставления с учетом его размера (не превышает 2 МБ или составляет от 2 до 8 МБ).
Добавление карт размером до 2 МБ
В области Добавление карты введите уникальное имя карты.
В разделе Тип карты выберите нужный тип, например Liquid, XSLT, XSLT 2.0 или XSLT 3.0.
Выберите значок папки рядом с полем Карта. Выберите карту для отправки.
Если оставить свойство Имя пустым, имя файла карты автоматически появится в этом свойстве после выбора файла карты.
По завершении нажмите кнопку OK.
Когда файл карты будет отправлен, карта появится в списке Карты. Отправленная карта также появится на странице Обзор учетной записи интеграции в разделе Артефакты.
Добавление карт размером более 2 МБ
Чтобы добавить более крупные сопоставления для рабочих процессов уровня "Потребление", используйте REST API Azure Logic Apps для сопоставлений.
Добавление сопоставления в ресурс приложения логики уровня "Стандартный"
Следующие шаги применимы только в том случае, если вы хотите добавить сопоставление непосредственно в ресурс приложения логики уровня "Стандартный". В противном случае добавьте сопоставление в свою учетную запись интеграции.
Портал Azure
В меню ресурса приложения логики в разделе "Артефакты" выберите Карты.
На панели инструментов на панели Карты выберите Добавить.
В области "Добавление карты" введите уникальное имя карты и добавьте имя расширения XSLT.
Выберите значок папки рядом с полем Карта. Выберите карту для отправки.
По завершении нажмите кнопку OK.
Когда файл карты будет отправлен, карта появится в списке Карты. Отправленная карта также появится на странице Обзор учетной записи интеграции в разделе Артефакты.
Visual Studio Code
В структуре проекта приложения логики откройте папку Артефакты, а затем папку Карты.
В папке Карты добавьте свою карту.
Изменение карты
Чтобы обновить имеющуюся карту, нужно отправить новый файл карты с необходимыми изменениями. Однако сначала вы можете скачать имеющуюся карту для редактирования.
На портале Azure откройте свою учетную запись интеграции, если она еще не открыта.
В меню учетной записи интеграции в разделе Параметры выберите пункт Карты.
Когда откроется панель Карты, выберите свою карту. Чтобы скачать и изменить карту, выберите Скачать на панели инструментов на панели Карты и сохраните ее.
Когда все будет готово для отправки обновленной карты, на панели Карты выберите карту, которую необходимо обновить. На панели инструментов на панели Карты выберите Обновить.
Найдите и выберите обновленную карту, которую требуется отправить.
После отправки файла карты обновленная карта появится в списке Карты.
Удаление карты
На портале Azure откройте свою учетную запись интеграции, если она еще не открыта.
В меню учетной записи интеграции в разделе Параметры выберите пункт Карты.
После открытия панели Карты выберите свою карту, а затем выберите Удалить.
Чтобы подтвердить удаление карты, выберите Да.