재사용 가능한 공유 흐름

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

여러 API 프록시 및 다른 공유 흐름에서 사용할 수 있는 공유 흐름으로 정책과 리소스를 결합할 수 있습니다. 프록시와 비슷하지만 공유 흐름에는 엔드포인트가 없습니다. 공유 흐름과 같은 조직에 속한 API 프록시 또는 공유 흐름에서만 사용할 수 있습니다.

공유 흐름은 여러 위치에서 유용한 한 장소 기능에서 캡처함으로써 일관성을 보장하고 개발 시간을 단축하며 코드를 더 쉽게 관리할 수 있도록 합니다.

다음 동영상은 Edge UI에서 공유 흐름을 만들고 추적하는 방법을 보여줍니다.

다음 5분 동영상은 기본 Edge UI (Private Cloud용 Edge만 해당)에서 공유 흐름을 만들고 추적하는 방법을 보여줍니다.

Flow콜아웃 정책을 사용하여 공유 흐름을 호출할 수 있습니다. 또한 공유 흐름을 흐름 후크에 연결하여 프록시 또는 대상 요청 전이나 프록시 또는 대상 응답 후에 공유 흐름을 실행할 수 있습니다.

Flow콜아웃 정책에 관한 자세한 내용은 Flow콜아웃 정책을 참고하세요. 흐름 후크에 대한 자세한 내용은 흐름 후크를 사용하여 공유 흐름 연결을 참조하세요.

예를 들어 여러 위치에서 사용되거나 조직의 API 전반에서 표준화되어야 하는 기능 영역이 있다고 가정해 봅시다. 다음을 포함하여 각 카테고리에 대한 공유 흐름을 만들 수 있습니다.

  • 보안은 OAuth를 사용하는 승인 코드 및 API 키 인증뿐만 아니라 위협 보호 조치 코드로 적용됩니다.
  • 로깅은 표준 오류 메시지를 생성하기 위한 것입니다.
  • 미디에이션은 XML 및 JSON 메시지 형식 간의 변환을 위한 것입니다.

다음 그림에서 두 API 프록시는 Flow콜아웃 정책을 사용해 공유 흐름을 호출하여 수신 사용자 요청을 인증합니다. AuthSharedFlow는 프록시보다 먼저 조직에 개별적으로 배포되므로 프록시의 요청을 지원할 수 있습니다. 공유 흐름은 광범위한 회사 정책을 담당하는 팀에서 개발하고 관리할 수 있으며, 더 전문화된 앱을 빌드하는 비즈니스 계열 팀 프록시에서 사용할 수 있습니다.

공유 흐름 개발

공유 흐름을 개발할 때는 항상 API 프록시로 전송된 호출을 사용하여 테스트해야 합니다. 즉, API 프록시와 마찬가지로 공유 흐름으로 직접 요청을 보낼 수 없습니다. 대신 API 프록시로 요청을 보내면 이는 공유 흐름을 호출합니다.

다음은 공유 흐름을 개발하기 위한 대략적인 단계입니다.

  1. 공유 기능 집합에 대해 알아보세요.

    예를 들어 트래픽 급증 억제를 포함한 트래픽 관리 기능을 결합할 수 있습니다. 이렇게 하면 비즈니스 계열 로직을 구현하는 워크플로 이외의 구성을 관리할 수 있습니다.

  2. API 프록시를 개발할 때와 마찬가지로 정책 및 지원 리소스를 구현하여 공유 흐름을 개발합니다.

    공유 흐름은 일련의 조건부 단계입니다. 따라서 하나를 개발하는 것이 API 프록시를 개발하는 것과 같습니다. 프록시에 포함할 수 있는 정책 및 리소스를 포함할 수 있습니다.

    예를 들어 트래픽 관리 지원 일환으로 다음 예시와 같이 Spike Arrest 정책을 구현하여 초당 30개의 요청만 허용할 수 있습니다.

    <SpikeArrest async="false" continueOnError="false" enabled="true" name="Spike-Arrest">
        <DisplayName>Spike Arrest</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
    

    그런 다음 트래픽 관리를 위한 공유 흐름에 급증 저지 정책을 단계로 연결할 수 있습니다. 이 정책은 공유 흐름을 호출하는 모든 API 프록시에 대해 실행됩니다.

    <SharedFlow name="default">
        <Step>
            <Name>Spike-Arrest</Name>
        </Step>
    </SharedFlow>
    

    관리 콘솔에서 공유 흐름을 시작하는 방법에 대한 자세한 내용은 Edge UI에서 공유 흐름 만들기를 참조하세요.

    API 프록시와 마찬가지로 공유 흐름 소스 아티팩트가 포함된 ZIP 파일을 가져올 수 있습니다 (프록시 가져오기에 대한 자세한 내용은 새 API 프록시 가져오기를 참조하세요). 다음은 관리 API를 사용하여 공유 흐름을 가져오는 방법을 보여줍니다.

    curl -X POST -F "file=@/path/to/zip/file.zip" \ 'https://api.enterprise.apigee.com/v1/o/{org_name}/sharedflows?action=import&name=shared-flow-name' \
    -u email:password
    
  3. 이를 사용할 프록시 또는 공유 흐름을 배포하기 전에 환경에 공유 흐름을 배포합니다. API 프록시를 배포하는 것과 동일한 방식으로 공유 흐름을 배포합니다. 자세한 내용은 배포 개요를 참조하세요.

    공유 흐름은 API 프록시 및 이를 사용하는 다른 공유 흐름과 같이 동일한 조직에 있어야 하며 동일한 환경에 배포되어야 합니다. 프록시 전에 공유 흐름을 배포하면 배포 시간에 공유 흐름에서 프록시의 종속 항목을 결정할 수 있습니다.

    다음과 같은 관리 API 호출을 사용하여 공유 흐름을 배포할 수 있습니다.

    curl -X POST --header "Content-Type: application/octet-stream" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments \
    -u email:password
    

    또한 다운타임 없이 현재 배포된 공유 흐름을 교체할 수 있습니다. 이는 API 프록시와 매우 유사합니다. 자세한 내용은 관리 API를 사용하여 API 프록시 배포를 참조하세요. 관리 API를 사용하는 요청 양식은 다음과 같습니다.

    curl -X POST --header "Content-Type:application/x-www-form-urlencoded" \
    https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/sharedflows/{shared_flow_name}/revisions/{revision_number}/deployments?"override=true" \
    -u email:password
    
  4. 자체 흐름의 일부로 공유 흐름을 호출할 수 있도록 사용하는 API 프록시를 개발합니다.

    API 프록시에서 FlowCall 정책을 사용하여 공유 흐름을 호출합니다. (흐름 후크를 사용하여 공유 흐름 연결에 설명된 대로 흐름 후크를 사용하여 공유 흐름을 프록시에 연결할 수도 있습니다.) API 프록시를 만드는 방법에 대한 입문 가이드는 첫 번째 API 프록시 빌드를 참조하세요.

    공유 흐름을 사용하려면 이를 사용할 프록시 또는 공유 흐름에 FlowCall 정책을 추가합니다. 다른 서비스에 호출하는 서비스 콜아웃 정책과 마찬가지로 Flow콜아웃은 공유 흐름을 호출합니다. 사용 API 프록시는 공유 흐름 이후에 공유 흐름과 동일한 환경에 배포해야 합니다. Flow콜아웃 정책을 사용하여 통화를 테스트하려면 공유 흐름이 마련되어 있어야 합니다.

    다음 코드에서 Flow콜아웃 정책은 traffic-management-shared라는 공유 흐름을 호출합니다.

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Traffic-Management-Flow-Callout">
        <DisplayName>Traffic Management FlowCallout</DisplayName>
        <Properties/>
        <SharedFlowBundle>traffic-management-shared</SharedFlowBundle>
    </FlowCallout>
    

    자세한 내용은 API 프록시 또는 공유 흐름에서 공유 흐름 호출을 참조하세요.

  5. 사용 중인 API 프록시를 배포하여 공유 흐름을 사용해 보세요. (일반적인 배포에 대한 자세한 내용은 배포 이해를 참조하세요.)
  6. API 프록시와 마찬가지로 추적을 통해 반복적으로 개발합니다.

    API 프록시와 마찬가지로 원하는 로직을 얻을 때까지 반복적으로 호출 및 추적하여 공유 흐름을 개발합니다. 이 경우 공유 흐름은 자체적으로 실행되지 않으므로 프록시 엔드포인트를 호출하고 프록시를 추적합니다.

    다음 단계를 따르세요.

    1. 공유 흐름과 Flow콜아웃 정책으로 이 흐름을 호출하는 API 프록시가 모두 동일한 조직에 있고 동일한 환경에 배포되었는지 확인합니다.
    2. API 프록시의 Trace 탭에서 API 프록시 trace를 시작합니다.
    3. API 프록시에서 프록시 엔드포인트로 요청을 보냅니다. 엔드포인트의 흐름에는 공유 흐름을 호출하는 Flow콜아웃 정책이 포함되어야 합니다.
    4. Trace 탭에서 API 프록시에서 공유 흐름으로의 흐름을 확인합니다.

      추적 시 공유 흐름은 회색 상자로 둘러싸인 단계 또는 정책의 집합으로 표현됩니다. Flow콜아웃 정책을 나타내는 아이콘이 공유된 흐름 앞에 표시됩니다. 추적에 대한 자세한 내용은 Trace 도구 사용을 참조하세요.

Edge UI에서 공유 흐름 만들기

Apigee Edge UI를 사용하여 공유 흐름을 만들 때 처음부터 새로 만들거나 기존 흐름 소스를 흐름 번들 .zip 파일로 가져올 수 있습니다.

  1. 아래 설명에 따라 공유 흐름 페이지에 액세스합니다. 공유 흐름 페이지에서 조직의 공유 흐름 목록을 확인하고 목록에서 흐름을 수정하거나 삭제할 수 있습니다.

    에지

    Edge UI를 사용하여 공유 흐름 페이지에 액세스하려면 다음 안내를 따르세요.

    1. apigee.com/edge에 로그인합니다.
    2. 공유 흐름을 포함하는 조직을 선택합니다. 조직 간에 전환하기를 참고하세요.

      공유 흐름은 이 조직에서 환경에 배포된 모든 API 프록시 및 공유 흐름에서 사용할 수 있습니다. 이 조직 외부에서는 사용할 수 없습니다.

    3. 왼쪽 탐색 메뉴에서 개발 > 공유 흐름을 선택합니다.

    Classic Edge (Private Cloud)

    기본 Edge UI를 사용하여 공유 흐름 페이지에 액세스하려면 다음 안내를 따르세요.

    1. http://ms-ip:9000에 로그인합니다. 여기서 ms-ip는 관리 서버 노드의 IP 주소 또는 DNS 이름입니다.
    2. 공유 흐름을 포함하는 조직을 선택합니다. 조직 간에 전환하기를 참고하세요.

      공유 흐름은 이 조직에서 환경에 배포된 모든 API 프록시 및 공유 흐름에서 사용할 수 있습니다. 이 조직 외부에서는 사용할 수 없습니다.

    3. 상단 탐색 메뉴에서 API > 공유 흐름을 선택합니다.
  2. + 공유 흐름 버튼을 클릭하여 새 공유 흐름을 추가하기 시작합니다.
  3. Build a Shared Flow(공유 흐름 빌드) 페이지에서 새 흐름을 만들 방법을 선택합니다.
    • 새 흐름을 처음부터 만듭니다. 또한 흐름의 단계로 정책과 리소스를 구성할 수 있습니다.
      1. Empty Shared Flow를 선택합니다.
      2. 이름 값을 입력합니다. API 프록시 및 기타 공유 흐름에서 이 공유 흐름을 참조하는 데 사용하는 이름입니다. 흐름을 사용하는 개발자를 설명하는 이름이어야 합니다.
      3. 흐름이 하는 일에 대한 자세한 정보를 제공하기 위한 설명을 입력합니다.
      4. 다음을 클릭합니다.
      5. 필요한 경우 새 흐름을 배포할 환경을 선택합니다.

        예를 들어 테스트 환경에 배포된 API 프록시에서 공유 흐름을 테스트하려는 경우 공유 흐름을 test에 배포합니다.

      6. 빌드 및 배포를 클릭하여 새 공유 흐름을 만들어 선택한 환경에 배포합니다. 환경을 선택하지 않으면 공유 흐름이 생성되지만 배포되지 않습니다.

    • 흐름 번들을 업로드하여 기존 소스에서 공유 흐름을 만듭니다.
      1. 공유 흐름 번들을 선택하여 새 흐름에 포함하려는 아티팩트가 포함된 .zip 파일을 지정합니다.

        공유 흐름 번들에는 공유 흐름의 소스 아티팩트가 포함됩니다. 예를 들어 Edge UI에서 공유 흐름을 다운로드하면 흐름 번들이 포함된 .zip 파일이 생성됩니다.

      2. 다음을 클릭합니다.
      3. Choose File을 클릭하여 가져오려는 공유 흐름 소스가 포함된 .zip 파일을 찾습니다.
      4. 공유 흐름 이름 상자에 가져온 흐름의 이름을 입력합니다. 이는 API 프록시 및 기타 공유 흐름에서 이 공유 흐름을 참조하는 데 사용하는 이름입니다. 이름은 흐름을 사용하는 개발자에게 설명할 수 있어야 합니다.
      5. 다음을 클릭합니다.
      6. 가져오는 소스에서 새 흐름을 만들려면 빌드를 클릭합니다.

API 프록시 또는 공유 흐름에서 공유 흐름 호출

FlowCallout 정책을 사용하여 프록시 또는 다른 공유 흐름에서 공유 흐름을 호출할 수 있습니다.

  1. Edge UI에서 다른 공유 흐름을 호출하려는 프록시 또는 공유 흐름을 찾습니다.
  2. 탐색기에서 정책 옆에 있는 + 버튼을 클릭합니다.
  3. 정책 목록의 확장 프로그램에서 FlowCallout을 클릭합니다.
  4. 표시 이름과 이름(고유 식별자)을 입력한 다음 이 정책에서 호출할 공유 흐름을 선택합니다.
  5. Add를 클릭합니다.
  6. 호출을 하려는 프록시에 새 Flow콜링 정책을 추가합니다.

참고 항목

API 프록시 체이닝