HTTP-REST 플러그인은 REST 끝점에 대한 요청을 수행하는 데 사용할 수 있는 두 가지 유형의 REST 호스트(영구 호스트와 임시 호스트)를 지원합니다.

영구 및 임시 호스트 간 차이점

다음 표에서는 두 가지 유형의 REST 호스트를 비교합니다.
영구 호스트 임시 호스트
vRealize Orchestrator 데이터베이스에 저장됩니다. vRealize Orchestrator 데이터베이스에 저장되지 않습니다.

임시 호스트는 스크립트가 실행되는 동안 메모리에 상주하는 가상 개체입니다.

vRealize Orchestrator 인벤토리에 저장됩니다.

영구 호스트는 RESTHost 유형의 양식 드롭다운 메뉴에서도 볼 수 있습니다.

vRealize Orchestrator 인벤토리에 저장되지 않습니다.
다시 시작, 페일오버 및 업그레이드 후에 사용할 수 있습니다.

워크플로 토큰이 중단된 경우 워크플로 항목이 영구 REST 호스트를 입력으로 사용하면 중단된 지점부터 계속될 수 있습니다.

영구 호스트를 워크플로 항목의 입력/출력으로 사용합니다. 스크립팅 시작 부분에서 생성하고 더 이상 필요하지 않은 경우 삭제할 수 있습니다.

다시 시작 및 페일오버 후에는 사용할 수 없습니다.

워크플로가 중단되면 임시 REST 호스트를 전달하는 워크플로 항목 입력을 복원할 수 없습니다.

사용하지 않는 서버에 대해 격리된 요청을 수행하는 경우 스크립팅에서 임시 호스트를 사용합니다.

리소스 요소로 내보내고 가져올 수 있습니다. 서로 다른 vRealize Orchestrator 인스턴스는 스크립팅부터 전체적으로 생성 및 관리되므로 전송 가능합니다.

영구 호스트를 마이그레이션할 필요가 없는 다중 환경에서 작업하는 경우 임시 호스트를 사용합니다.

각 영구 호스트에는 끝점에 대한 요청을 관리하는 데 사용되는 전용 HTTP 클라이언트가 있습니다. 호스트는 동일한 HTTP 클라이언트 인스턴스를 재사용합니다.
병렬 요청은 영구 및 임시 호스트에 대해 지원됩니다.
  • 병렬 요청을 활성화하면 각 요청이 별도의 컨텍스트로 실행되고, 쿠키를 포함한 상태가 요청 간에 보존되지 않습니다.
  • 병렬 요청에 대한 지원이 비활성화되는 경우 연속 요청은 동일한 HTTP 컨텍스트를 공유합니다.

임시 호스트에 대한 고려 사항

임시 호스트를 생성할 때는 다음 사항을 고려하십시오.
  • 워크플로 항목 간에 입력/출력으로 전달되는 임시 호스트가 모든 경우에서 작동하지 않을 수 있습니다. 예를 들어 임시 호스트는 비동기 워크플로가 시작될 때 작동하지 않는 워크플로 캐시에 의존합니다. 중첩된 워크플로도 실패할 수 있습니다.
  • GETHEAD 요청만 자동으로 리디렉션됩니다. URL 리디렉션은 default 전략을 사용합니다.
  • 호스트 이름 확인은 지원되지 않습니다.
  • 클라이언트 인증서 인증은 지원되지 않습니다.

문제 해결

병렬 요청을 지원하지 않는 임시 호스트를 사용하는 경우 vRealize Orchestrator 환경 또는 HTTP-REST 플러그인을 버전 2.4.1.19272162 이상으로 업그레이드한 후 스크립팅 회귀가 발생할 수 있습니다. 서로 다른 임시 호스트 인스턴스를 사용하여 쿠키에 대해 서로 의존하는 요청을 실행하는 것은 vRealize Orchestrator 8.7에서 지원되지 않습니다.

이 문제를 방지하려면 다음 방법 중 하나를 사용합니다.
  1. 임시 호스트 대신 영구 호스트 및 작업을 사용합니다. 두 가지 방법 중 하나로 영구 REST 호스트를 생성할 수 있습니다.
    1. REST 호스트 추가 워크플로를 사용하여 서버를 가리키는 REST 호스트를 생성합니다.
      임시 호스트를 사용하는 대신 REST 호스트에 대한 요청을 생성해야 하는 모든 상황에서 REST 호스트를 입력으로 사용합니다.
      • 이 호스트를 가리키는 임시 작업은 생성하지 마십시오. 대신 일반 작업을 생성하십시오.
      • 병렬 요청에 대한 지원을 비활성화해야 합니다. 그렇지 않으면 쿠키가 보존되지 않습니다.

      워크플로에서 이 호스트에 대한 여러 요청을 병렬로 수행하는 경우에는 이 접근 방법이 권장되지 않습니다.

    2. 스크립팅에서 워크플로 실행별로 REST 호스트를 생성한 다음, 삭제합니다.
      서버에 대해 병렬 요청을 수행할 경우 이 방법을 사용합니다. 예를 들어 두 개의 병렬 요청이 있는 경우 두 개의 서로 다른 호스트를 생성합니다.
      1. 워크플로를 복제합니다.
      2. 향후 요청에 사용할 호스트를 생성하는 스크립팅 요소를 추가합니다.
      3. 호스트를 워크플로의 출력으로, 해당 호스트에 대해 요청을 수행하는 다른 모든 스크립팅에 대한 입력으로 사용합니다.
      4. 상태를 정리하려면 생성한 호스트를 삭제하는 요소를 스크립팅 끝에 추가합니다.
  2. 지정된 워크플로의 모든 종속 요청에 대해 하나의 임시 호스트를 사용하고 필요에 따라 워크플로 항목 간에 입력/출력으로 전달합니다.

    여러 워크플로 요소 간에 임시 호스트를 전달하는 것은 공식적으로 지원되지 않지만 가능합니다. 다시 시작하는 동안 워크플로 상태가 손실되고 워크플로가 성공적으로 재개되지 않을 수 있습니다.

    임시 호스트를 사용하며 쿠키에 대해 서로 의존하는 요청을 만들려면 모든 요청에 대해 동일한 임시 호스트 인스턴스를 사용해야 합니다. 요청이 여러 워크플로 항목에 걸쳐 있는 경우 첫 번째 워크플로 항목에서 호스트를 생성한 다음, 나머지 항목에 입력으로 전달합니다.

  3. 현재 임시 호스트를 사용하지만, 해당 헤더를 추가하여 실패한 요청을 수정함으로써 필요한 쿠키를 포함합니다.

    이전 응답의 쿠키를 구문 분석하고 후속 요청에서 사용해야 할 수 있습니다.