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

Различия между постоянными и временными узлами

В следующей таблице приведено сравнение узлов REST обоих типов.
Постоянные узлы Временные узлы
Хранятся в базе данных vRealize Orchestrator. Не хранятся в базе данных vRealize Orchestrator.

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

Хранятся в иерархии vRealize Orchestrator.

Постоянные узлы также можно просматривать в раскрывающихся меню формы для типа RESTHost.

Не хранятся в иерархии vRealize Orchestrator.
Доступны после перезапуска, аварийного переключения и обновления.

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

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

Недоступны после перезапуска и аварийного переключения.

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

Используйте временные узлы в скриптах при отправке изолированных запросов на сервер, который в других ситуациях не используется.

Могут быть экспортированы и импортированы в виде элементов ресурсов. Могут передаваться между разными экземплярами vRealize Orchestrator, так как их создание и управление ими полностью выполняется с помощью сценариев.

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

У каждого постоянного узла есть выделенный клиент HTTP, который используется для управления запросами к конечной точке. Узлы повторно используют один и тот же экземпляр клиента HTTP.
Для постоянных и временных узлов поддерживаются параллельные запросы.
  • Если активированы параллельные запросы, каждый запрос выполняется с отдельным контекстом, а состояние, в том числе файлы cookie, между запросами не сохраняется.
  • Если поддержка параллельных запросов деактивирована, последовательные запросы совместно используют один и тот же контекст HTTP.

Рекомендации для временных узлов

При создании временных узлов следует учитывать следующее.
  • Временные узлы, передаваемые между элементами рабочего процесса в виде входных или выходных данных, могут работать не всегда. Для временных узлов используется кэш рабочего процесса, который не работает, например, при запуске асинхронных рабочих процессов. Вложенные рабочие процессы также могут завершаться сбоем.
  • Автоматически перенаправляются только запросы GET и HEAD. При перенаправлении URL-адресов применяется стратегия default.
  • Проверка имени узла не поддерживается.
  • Проверка подлинности с помощью сертификата клиента не поддерживается.

Устранение неполадок

Если временные узлы используются без поддержки параллельных запросов, возможны регрессии сценариев после обновления среды vRealize Orchestrator или обновления подключаемого модуля HTTP-REST до версии 2.4.1.19272162 или более поздней. Использование разных экземпляров временных узлов для выполнения запросов, которые зависят друг от друга с точки зрения файлов cookie, не поддерживается, начиная с версии vRealize Orchestrator 8.7.

Избежать этой проблемы можно одним из следующих способов.
  1. Вместо временных узлов используйте постоянные узлы и операции. Постоянные узлы REST можно создать одним из двух способов.
    1. а.Создать узел REST, указывающий на сервер, используя рабочий процесс Добавление узла REST.
      Вместо временных узлов используйте узел REST в качестве входных данных везде, где нужно создать запрос к нему.
      • Не создавайте временные операции, указывающие на этот узел. Вместо них создайте обычные операции.
      • Поддержка параллельных запросов должна быть деактивирована, в противном случае файлы cookie не сохраняются.

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

    2. б.Создать один узел REST на рабочий процесс с помощью сценариев и затем удалить его.
      Используйте этот метод при выполнении параллельных запросов на сервер. Например, если параллельных запросов два, создайте два разных узла.
      1. Клонируйте рабочий процесс.
      2. Добавьте элемент сценария для создания узла, который будет использоваться для будущих запросов.
      3. Используйте этот узел в качестве выходных данных рабочего процесса и в качестве входных данных для всех остальных сценариев, отправляющих запросы к узлу.
      4. Чтобы очистить состояние, добавьте в конец сценария элемент, удаляющий созданный узел.
  2. Используйте один временный узел для всех зависимых запросов в определенном рабочем процессе и передавайте его между элементами рабочего процесса как входные или выходные данные по мере необходимости.

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

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

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

    Может потребоваться разбор файлов cookie из предыдущего ответа и их использование в последующих запросах.