정책을 사용해 기능 추가

이 페이지는 ApigeeApigee Hybrid에 적용됩니다.

Apigee Edge 문서 보기

Apigee를 사용하면 정책을 사용하여 코드를 작성하지 않고도 API 동작을 프로그래밍할 수 있습니다. 정책은 특정적으로 제한된 관리 기능을 구현하는 모듈과 같습니다. 정책은 일반적인 유형의 관리 기능을 API에 효율적이고 안정적으로 추가할 수 있도록 설계되었습니다.

정책은 보안, 비율 제한, 변환, 중재 기능과 같은 기능을 제공하므로 코드를 직접 빌드하고 유지할 필요가 없습니다. Apigee에서 제공하는 정책 유형 집합 이외에도 다양하게 사용할 수 있습니다. 또한 커스텀 스크립트와 코드(예: JavaScript 애플리케이션)를 작성하여 API 프록시 기능을 확장하고 Apigee 정책에서 지원하는 기본 관리 기능을 기반으로 혁신할 수 있습니다.

다음 섹션에 설명된 대로 Cloud Code에서 Apigee를 사용하여 API 프록시 및 공유 흐름에 정책을 만들고 연결합니다. 정책 유형에 따라 리소스 관리에 설명된 대로 리소스를 만들어야 할 수 있습니다. Apigee 작업공간의 폴더 및 파일 관리도 참조하세요.

정책 만들기

Cloud Code에서 Apigee를 사용하여 정책을 만들려면 다음 안내를 따르세요.

  1. Apigee 작업공간에서 정책을 연결할 위치에 따라 다음 작업 중 하나를 수행합니다.

    연결 대상 작업
    API 프록시 다음 작업 중 하나를 수행합니다.
    • 커서를 다음 폴더 중 하나 위에 놓고 Apigee 정책 아이콘 만들기를 클릭한 후 정책 만들기를 선택합니다.
      • apiproxy-name 프록시 번들
      • apiproxy-name/apiproxy
    • API 프록시의 apiproxy-name/apiproxy/policies 폴더 위에 커서를 놓고 API 프록시 만들기 아이콘를 클릭합니다.
    공유 흐름 다음 작업 중 하나를 수행합니다.
    • 커서를 다음 폴더 중 하나 위에 놓고 공유 흐름 만들기 아이콘를 클릭한 후 정책 만들기를 선택합니다.
      • sharedflow-name 공유 흐름 번들
      • sharedflow-name/sharedflowbundle
    • 공유 흐름의 sharedflow-name/sharedflowbundle/policies 폴더 위에 커서를 놓고 공유 흐름 만들기 아이콘를 클릭합니다.

정책 만들기 마법사가 열립니다.

  1. 만들려는 정책의 카테고리를 목록에서 선택합니다. 정책 카테고리에 대한 설명은 정책 참조 개요를 참조하세요.

  2. 정책의 고유한 이름을 입력하고 Enter 키를 누릅니다. 정책이 Apigee 섹션의 API 프록시 또는 공유 흐름에 대한 /policies 폴더에 추가되어 편집기에서 열립니다.

  3. 필요에 따라 파일을 수정하고 파일 > 저장 또는 ⌘S를 선택해 수정사항을 저장합니다. 정책 구성에 대한 자세한 내용은 정책 참조 개요를 참조하세요.

  4. 정책 유형에 따라 필요한 경우 리소스 관리에 설명된 대로 리소스를 만듭니다.

흐름에 정책 연결

정책은 흐름에 연결될 때까지 실행되지 않습니다. 다음 주제의 설명대로 <Step> 요소를 ProxyEndpoint 또는 TargetEndpoint 구성의 적절한 요청 또는 응답 흐름 요소에 추가하면 정책을 흐름에 연결할 수 있습니다.

예를 들어 다음 구성은 QuotaPolicy를 ProxyEndpoint의 <PreFlow>에 연결하여 일정 기간 동안 API 프록시에서 허용하는 요청 메시지 수를 구성합니다.

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection>
    <BasePath>/weather</BasePath>
  </HTTPProxyConnection>
  <RouteRule name="default">
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>