리소스 관리

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

다음 섹션에 설명된 대로 리소스를 이해하고 관리합니다.

리소스 정보

많은 정책 유형이 리소스에 의존합니다. 리소스는 API 프록시에 연결될 때 정책에서 실행할 코드 또는 구성을 구현하는 파일입니다. 자바스크립트 및 JavaCallout과 마찬가지로 정책은 단순히 일부 코드가 실행되어야 하는 API 프록시의 연결 지점을 정의합니다. 자바스크립트 또는 JavaCallout 정책은 리소스를 가리키는 포인터입니다.

다음 샘플 JavaScript는 HTTP 요청 경로를 proxy.basepath 변수 값으로 설정합니다.

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

리소스 유형

다음 표에는 리소스 유형이 요약되어 있습니다.

리소스 유형 설명
JAR (java) JavaCallout 정책에서 참조하는 JAR 파일의 자바 클래스입니다.
JavaScript (js) 자바스크립트 정책에서 참조하는 자바스크립트입니다.
JavaScript (jsc) 자바스크립트 정책에서 참조하는 컴파일된 자바스크립트입니다.
Hosted target (hosted) 호스팅된 대상에 배포할 Node.js 파일. Node.js를 에지 백엔드 대상 애플리케이션으로 배포할 수 있습니다.
Node (node) 기본 Node.js 파일, 관련 소스 파일, 모듈 종속 항목을 포함한 Node.js 파일
Python (py) PythonScript 정책에서 참조하는 Python 스크립트입니다. 리소스는 '순수 Python'(Python 언어만 해당)으로 구현되어야 합니다.
WSDL (wsdl) SOAPMessageValidation 정책에서 참조하는 WSDL 파일입니다.
XSD (xsd) SOAPMessageValidation 정책에서 참조하는 XML 스키마입니다.
XSL Transformations (xsl) XSLTransform 정책에서 참조하는 XSLT 변환입니다.

리소스 저장 위치

리소스는 다음 세 위치 중 하나에 저장할 수 있습니다.

  • API 프록시 버전: 리소스는 리소스가 포함된 API 프록시 버전에서만 사용할 수 있습니다. 예를 들어 API 프록시의 버전 1에 자바스크립트 리소스를 포함한 다음 프록시의 버전 2에서 Python 스크립트를 사용하도록 구현을 변경할 수 있습니다. 버전 1은 자바스크립트 리소스에만 액세스할 수 있고 버전 2는 Python 리소스에만 액세스할 수 있습니다.
  • 환경: 환경(예: test 또는 prod)에 저장하면 동일 환경에 배포된 모든 API 프록시에서 리소스를 사용할 수 있습니다.
  • 조직: 조직에 저장된 리소스는 모든 환경에 배포된 모든 API 프록시에서 사용할 수 있습니다.

저장소는 Resource files API 및 이후 API를 사용하여 리소스 관리에 설명된 대로 다음 URI에서 사용할 수 있습니다.

  • 조직: /organizations/{org}/resourcefiles
  • 환경: /organizations/{org}/environments/{env}/resourcefiles
  • API 프록시: /organizations/{org}/apis/{api}/revisions/{rev}/resources

다음 표에는 각 저장소의 리소스를 생성, 업데이트, 삭제하는 데 사용할 수 있는 메서드가 정리되어 있습니다.

저장소 만들기 View 업데이트 삭제
API UI API UI API UI API UI
API 프록시 버전
환경
조직

예를 들어 test 환경에서 사용 가능한 모든 자바스크립트 파일은 다음 저장소에 저장되며 test 환경에서 실행되는 모든 API 프록시에서 사용할 수 있습니다.

/organizations/{org}/environments/test/resourcefiles/jsc

리소스 이름 해결 방법

Edge는 리소스 이름을 가장 구체적인 범위에서 가장 일반적인 범위 순으로 확인합니다. 리소스 이름은 API 프록시 버전 수준에서 환경 수준, 조직 수준 (Edge만 해당)까지 '체인 위'로 확인됩니다.

API 프록시 버전 및 prod 환경이라는 두 가지 저장소에 동일한 리소스를 입력했다고 가정해 보겠습니다.

다음 정책으로 구성된 API 프록시를 살펴보겠습니다.

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

정책 참조는 저장소로 명시적으로 확인할 수 없습니다. 가장 세부적인 범위에서 정책의 리소스 이름과 일치하는 첫 번째 리소스가 확인됩니다.

따라서 API 프록시가 prod 환경에 배포되면 정책은 환경 범위의 pathSetter.js 리소스로 확인됩니다.

test 환경에 배포되면 정책은 API 프록시 버전 범위 리소스로 결정됩니다. 환경 범위 리소스가 test 환경이 아닌 prod 환경에 있기 때문입니다.

자바 리소스 가이드라인

-T, --data-binary, -F 옵션(-d 옵션 아님)과 같은 curl의 여러 옵션을 사용하여 컴파일된 자바 리소스를 JAR 파일로 추가할 수 있습니다. 예를 들면 다음과 같습니다.

curl "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java" \
  -X POST \
  --data-binary @{jar_file} \
  -H "Content-Type: application/octet-stream" \
  -u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
  -X POST \
  -H "Content-Type: application/octet-stream" \
  -T "{jar_file}" \
  -u email:password
curl -v "http://{mgmt_server}:{port}/v1/organizations/{org}/environments/{env}/resourcefiles?name={jar_file}&type=java"
  -X POST \
  -H "Content-Type: application/multipart/form-data" \
  -F "file=@{jar_file}" \
  -u email:password

참조:

Node.js 리소스 가이드라인

API 프록시에서 Node.js 스크립트를 참조할 때는 기존 API 프록시에 Node.js 추가에 설명된 대로 API 프록시의 TargetEndpoint 구성에 있는 <ResourceURL> 요소를 사용합니다. 예를 들면 다음과 같습니다.

<ScriptTarget>
    <ResourceURL>node://hello-world.js</ResourceURL>
</ScriptTarget>

Node.js 스크립트와 모든 지원 모듈은 API 프록시 버전 범위(프록시 번들의 /resources/node 디렉터리)에 있어야 합니다. API 프록시 편집기에서 스크립트 섹션에 Node.js 리소스를 추가하면 됩니다. API(importupdate)를 사용하여 API 프록시 버전 범위에 리소스를 저장하는 방법도 마찬가지입니다.

UI를 사용하여 리소스 관리

다음 섹션에 설명된 대로 UI를 사용하여 API 프록시 버전으로 범위가 지정된 리소스를 관리합니다.

UI를 사용하여 리소스 보기

API 프록시 버전으로 범위가 지정된 리소스를 보려면 다음 안내를 따르세요.

  1. apigee.com/edge에 로그인합니다.

  2. 왼쪽 탐색 메뉴에서 개발 > API 프록시를 선택합니다.
  3. 리소스를 만들 목록에서 API 프록시를 선택합니다.
    API 프록시 편집기가 열리고 기본적으로 개요 탭이 표시됩니다.
  4. 개발 탭을 클릭합니다.
  5. 필요한 경우 버전 드롭다운에서 버전을 선택합니다.

    탐색기 뷰의 리소스 섹션에 API 프록시 버전으로 범위가 지정된 리소스가 나열됩니다.

UI를 사용하여 리소스 만들기

UI를 사용하여 API 프록시 버전으로 범위가 지정된 리소스를 만들려면 다음 안내를 따르세요.

  1. API 프록시 버전으로 범위가 지정된 리소스를 봅니다.
  2. 탐색기 뷰의 리소스 섹션에서 +를 클릭하여 새 리소스 대화상자를 엽니다.
  3. 다음을 입력합니다.
    필드 설명
    소스 선택하여 새 파일을 만들거나 파일을 가져옵니다.
    파일 형식 드롭다운 목록에서 리소스 유형을 선택합니다.
    파일 이름 파일 이름입니다. 파일 이름 확장자는 선택한 파일 형식에 유효해야 합니다.

UI를 사용하여 리소스 업데이트

UI를 사용하여 API 프록시 버전으로 범위가 지정된 리소스를 업데이트하려면 다음 안내를 따르세요.

  1. API 프록시 버전으로 범위가 지정된 리소스를 봅니다.
  2. 리소스 아래의 탐색기 뷰에서 업데이트할 리소스를 클릭합니다.
    참고: JAR 파일의 경우 수정하려는 리소스 위에 커서를 이동하고 아이콘을 클릭합니다.
  3. 필요에 따라 리소스를 업데이트합니다.
    참고: 새 JAR 파일을 업로드한 후 업데이트를 클릭합니다.

UI를 사용하여 리소스 삭제

UI를 사용하여 API 프록시 버전으로 범위가 지정된 리소스를 삭제하려면 다음 단계를 따르세요.

  1. API 프록시 버전으로 범위가 지정된 리소스를 봅니다.
  2. 리소스 아래의 탐색기 뷰에서 삭제할 리소스 위에 커서를 이동하여 작업 메뉴를 표시합니다.
  3. 를 클릭합니다.
  4. 삭제를 클릭하여 작업을 확인합니다.

API를 사용하여 리소스 관리

다음 섹션에 설명된 대로 API를 사용하여 리소스를 관리합니다.

API를 사용하여 리소스 만들기

다음 섹션에 설명된 대로 API 프록시 버전, 환경 또는 조직 (Edge만 해당)으로 범위가 지정된 리소스를 만듭니다.

API를 사용하여 API 프록시 버전으로 범위가 지정된 리소스 만들기

https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles 리소스에 대해 POST 요청을 실행하여 API를 사용하여 API 프록시 버전으로 범위가 지정된 리소스를 만듭니다.

요청에 다음 정보를 전달합니다.

  • name 쿼리 매개변수를 리소스 이름으로 설정합니다.
  • type 쿼리 매개변수를 필요한 리소스 유형으로 설정합니다.
  • 리소스 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

다음 예시에서는 helloworld API 프록시의 버전 1을 위해 pathSetter.js라는 JavaScript 파일을 만듭니다.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

다음 예시에서는 리소스를 로컬 머신에서 파일로 업로드하는 방법을 보여줍니다. 자바스크립트 정책에서 환경 또는 조직 범위의 자바스크립트 파일에 액세스할 수 있도록 curl의 바이너리 업로드에 -F를 사용하는 것이 중요합니다.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

다음은 각 API 호출의 응답의 예입니다.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

자세한 내용은 API 프록시 버전의 리소스 파일 가져오기를 참고하세요.

또는 다음과 같이 Update API 프록시 버전 API를 사용할 수 있습니다.

  1. 리소스 파일을 만듭니다.
  2. API 프록시 구성 번들에 리소스 파일을 추가합니다.
  3. 다음 API 중 하나를 사용하여 번들을 업로드합니다.

API를 사용하여 환경으로 범위가 지정된 리소스 만들기

API를 사용하여 다음 리소스에 대한 POST 요청을 실행해 환경으로 범위가 지정된 자바스크립트 리소스를 만듭니다. /organizations/{org}/environments/{env}/resourcefiles

요청에 다음 정보를 전달합니다.

  • name 쿼리 매개변수를 리소스 이름으로 설정합니다.
  • type 쿼리 매개변수를 필요한 리소스 유형으로 설정합니다.
  • 리소스 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

다음 예에서는 요청 본문에 콘텐츠를 전달하여 JavaScript 리소스를 만드는 방법을 보여줍니다.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

다음 예시에서는 리소스를 로컬 머신에서 파일로 업로드하는 방법을 보여줍니다. 자바스크립트 정책에서 환경 또는 조직 범위의 자바스크립트 파일에 액세스할 수 있도록 curl의 바이너리 업로드에 -F를 사용하는 것이 중요합니다.

curl -X POST https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

다음은 응답의 예시입니다.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

API를 사용하여 조직으로 범위가 지정된 리소스 만들기

API를 사용하여 조직으로 범위가 지정되는 리소스를 만들려면 다음 리소스에 POST 요청을 실행합니다. https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles

요청에 다음 정보를 전달합니다.

  • name 쿼리 매개변수를 리소스 이름으로 설정합니다.
  • type 쿼리 매개변수를 리소스 파일 유형으로 설정합니다 (리소스 유형 참고).
  • 리소스 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

자세한 내용은 조직의 리소스 파일 가져오기를 참조하세요.

API를 사용하여 리소스 보기

다음 섹션에서는 API를 사용하여 리소스를 보는 방법을 설명합니다.

API를 사용한 모든 리소스 보기

API를 사용하여 API 프록시 버전, 환경 또는 조직으로 범위가 지정된 리소스를 볼 수 있습니다.

예를 들어 API를 사용하여 환경으로 범위가 지정된 리소스의 리소스를 보려면 https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles 리소스에 GET 요청을 실행합니다.

다음 예시에서는 test 환경의 모든 리소스를 나열합니다.

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/{type}" \
  -u email:password

다음은 응답의 예시입니다.

{
  "resourceFile": [
{
  "name" : "pathSetter.js",
  "type" : "jsc"
}
  ]
}

API를 사용하여 리소스의 콘텐츠를 봅니다.

다음 섹션에 설명된 대로 API를 사용하여 리소스의 콘텐츠를 봅니다.

API를 사용하여 API 프록시 버전, 환경 또는 조직으로 범위가 지정된 리소스를 볼 수 있습니다.

예를 들어 API를 사용하는 환경의 리소스 콘텐츠를 보려면 다음 리소스에 GET 요청을 실행합니다. https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/name

다음 예시에서는 test 환경의 pathSetter.js 자바스크립트 리소스 파일 콘텐츠를 나열합니다.

curl -X GET https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js" \
  -H "Accept: application/json" \
  -u email:password

다음은 응답의 예시입니다.

request.headers["RequestPath"] = context.getVariable("proxy.basepath");

API를 사용하여 리소스 업데이트

다음 섹션에 설명된 대로 API 프록시 버전, 환경 또는 조직 (Edge만 해당)으로 범위가 지정된 리소스를 업데이트합니다.

API를 사용하여 API 프록시 버전으로 범위가 지정된 리소스 업데이트

https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name} 리소스에 대해 PUT 요청을 실행하여 API를 사용하여 범위가 API 프록시 버전으로 지정된 리소스를 업데이트합니다.

리소스 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

다음 예시에서는 helloworld API 프록시의 버전 1에 맞게 pathSetter라는 JavaScript 리소스를 업데이트합니다.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

다음 예에서는 로컬 머신에서 리소스를 파일로 업데이트하는 방법을 보여줍니다. 자바스크립트 정책에서 환경 또는 조직 범위의 자바스크립트 파일에 액세스할 수 있도록 curl의 바이너리 업로드에 -F를 사용하는 것이 중요합니다.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

다음은 각 API 호출의 응답의 예입니다.

{
  "name": "pathSetter.js",
  "type": "jsc"
}

자세한 내용은 API 프록시 버전의 리소스 파일 가져오기를 참고하세요.

또는 다음과 같이 Update API 프록시 버전 API를 사용할 수 있습니다.

  1. 다음 옵션과 함께 Export API 프록시 API를 사용하여 API 프록시 구성 번들을 다운로드합니다.
    • format 쿼리 매개변수를 bundle로 설정합니다.
    • Accept 헤더를 application/zip로 설정합니다.
  2. API 프록시 구성 번들에서 리소스 파일을 업데이트합니다.
  3. Update API 프록시 버전 API를 사용하여 번들을 업로드합니다.

API를 사용하여 환경으로 범위가 지정된 리소스 업데이트

API를 사용하여 다음 리소스에 대한 PUT 요청을 실행해 환경으로 범위가 지정된 리소스를 업데이트합니다. /organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

리소스 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

다음 예에서는 요청 본문에 콘텐츠를 전달하여 JavaScript 리소스를 업데이트하는 방법을 보여줍니다.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Content-type:application/octet-stream" \
  -d 'request.headers["RequestPath"] = context.getVariable("proxy.basepath");' \
  -u email:password

다음 예시에서는 로컬 머신의 파일을 사용하여 리소스 파일을 업데이트하는 방법을 보여줍니다. 자바스크립트 정책에서 환경 또는 조직 범위의 자바스크립트 파일에 액세스할 수 있도록 curl의 바이너리 업로드에 -F를 사용하는 것이 중요합니다.

curl -X PUT https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

다음은 응답의 예시입니다.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

API를 사용하여 조직으로 범위가 지정된 리소스 업데이트

API를 사용하여 조직으로 범위가 지정된 리소스를 업데이트하려면 다음 리소스에 POST 요청을 실행합니다. https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

리소스 파일의 콘텐츠를 application/octet-stream 또는 multipart/form-data로 전달합니다.

자세한 내용은 조직의 리소스 파일 가져오기를 참조하세요.

API를 사용하여 리소스 삭제

다음 섹션에 설명된 대로 API 프록시 버전, 환경 또는 조직 (Edge만 해당)으로 범위가 지정된 리소스를 삭제합니다.

API를 사용하여 API 프록시 버전으로 범위가 지정된 리소스 삭제

API를 사용하여 API 프록시 버전으로 범위가 지정된 리소스를 삭제하려면 다음 리소스에 DELETE 요청을 실행하세요. https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

다음 예에서는 helloworld API 프록시의 버전 1에서 pathSetter.js 자바스크립트 리소스 파일을 삭제합니다.

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/apis/helloworld/revisions/1/resourcefiles/jsc/pathSetter.js" \
  -u email:password
  

다음은 응답의 예시입니다.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

또는 다음과 같이 Update API 프록시 버전 API를 사용할 수 있습니다.

  1. 다음 옵션과 함께 Export API 프록시 API를 사용하여 API 프록시 구성 번들을 다운로드합니다.
    • format 쿼리 매개변수를 bundle로 설정합니다.
    • Accept 헤더를 application/zip로 설정합니다.
  2. API 프록시 구성 번들에서 리소스 파일을 삭제합니다.
  3. Update API 프록시 버전 API를 사용하여 번들을 업로드합니다.

API를 사용하여 환경으로 범위가 지정된 리소스 삭제

다음 섹션에 설명된 대로 API를 사용하여 환경으로 범위가 지정된 리소스를 삭제합니다.

API를 사용하여 환경으로 범위가 지정된 리소스를 삭제하려면 다음 리소스에 DELETE 요청을 실행합니다. https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

다음 예시는 test 환경에서 pathSetter.js 자바스크립트 리소스 파일을 삭제합니다.

curl -X GET "https://api.enterprise.apigee.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js" \
  -u email:password

다음은 응답의 예시입니다.

{
  "name" : "pathSetter.js",
  "type" : "jsc"
}

API를 사용하여 조직으로 범위가 지정된 리소스 삭제 (Edge만 해당)

API를 사용하여 조직으로 범위가 지정된 리소스를 삭제하려면 다음 리소스에 DELETE 요청을 실행합니다. https://api.enterprise.apigee.comv1/organizations/{org}/resourcefiles/{type}/{name}

자세한 내용은 조직에서 리소스 파일 삭제를 참조하세요.

리소스 액세스

리소스에 액세스하는 방법은 리소스 유형에 따라 다릅니다. 자세한 내용은 관련 정책 문서를 참조하세요.

이 섹션의 예시에서는 자바스크립트 유형의 정책에서 참조할 수 있도록 pathSetter.js라는 자바스크립트 리소스를 만들고 관리하는 방법을 보여줍니다.

자바스크립트를 요청 PostFlow에 연결하려면 pathSetter.js 파일을 참조하는 PathSetterPolicy.xml 정책을 만듭니다.

<Javascript name='PathSetterPolicy' timeLimit='200'>
    <ResourceURL>jsc://pathSetter.js</ResourceURL>
</Javascript>

그런 다음 엔드포인트 구성의 정책을 참조합니다.

<PostFlow>
  <Request>
    <Step><Name>PathSetterPolicy</Name></Step>
  </Request>
<PostFlow>

자세한 내용은 JavaScript 정책을 참고하세요.