리소스 관리

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

리소스 정보

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

다음 샘플 자바스크립트는 HTTP 요청 경로를 proxy.basepath 변수 값으로 설정합니다.

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

리소스 유형

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

리소스 유형 설명
JAR (java) JavaCallout 정책에서 참조하는 JAR 파일의 자바 클래스입니다.
JavaScript (js) 자바스크립트 정책에서 참조하는 자바스크립트입니다.
JavaScript (jsc) 자바스크립트 정책에서 참조하는 컴파일된 자바스크립트입니다.
OpenAPI Specification (oas) JSON 또는 YAML 유형의 요청 및 응답 메시지 유효성을 검사하는 데 사용되는 OpenAPI 사양입니다.
Property Set (properties) API 프록시 속성 세트를 참조할 수 있는 키-값 쌍의 컬렉션입니다.
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 및 이후의 API를 사용하여 리소스 관리에 설명된 대로 다음 URI에서 사용할 수 있습니다. /organizations/$ORG/environments/$ENV/resourcefiles

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

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

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

/organizations/$ORG/environments/test/resourcefiles/jsc

리소스 이름 해결 방법

가장 구체적인 범위부터 가장 일반적인 범위의 순서대로 리소스 이름을 확인합니다. 리소스 이름은 API 프록시 버전 수준에서 환경 수준으로의 '상위 방향'으로 확인됩니다.

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

다음 정책으로 구성된 API 프록시를 생각해 봅시다.

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

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

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

test 배포되면 환경 범위 리소스가 test 환경이 아닌 prod 환경에 있으므로 정책은 API 프록시 버전 범위 리소스로 확인됩니다.

자바 리소스 가이드라인

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

curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @{jar_file}
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/octet-stream" \
  -T "{jar_file}"
curl "http://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name={jar_file}&type=java" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/octet-stream" \
  -F "file=@{jar_file}"

참조:

UI를 사용하여 리소스 관리

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

UI를 사용하여 리소스 보기

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

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

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

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

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

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

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

버전이 배포되지 않은 경우에만 API 프록시 버전으로 범위가 지정된 리소스를 업데이트합니다. API 프록시 버전을 배포한 후에는 변경할 수 없습니다.

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

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

UI를 사용하여 리소스 삭제

버전이 배포되지 않은 경우에만 API 프록시 버전으로 범위가 지정된 리소스를 삭제합니다. API 프록시 버전을 배포한 후에는 변경할 수 없습니다.

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

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

API를 사용하여 리소스 관리

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

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

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

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

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

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

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

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

API를 사용하여 환경으로 범위가 지정된 리소스를 만들려면 다음 리소스에 대한 POST 요청을 실행합니다. /organizations/$ORG/environments/$ENV/resourcefiles

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

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

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

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

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요. 사용된 환경 변수에 대한 설명은 Apigee API 요청에 대한 환경 변수 설정을 참조하세요.

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

curl -X POST https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles?name=pathSetter.js&type=jsc
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js

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

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

API를 사용하여 리소스 보기

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

API를 사용하여 모든 리소스 보기

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

API를 사용하면 환경으로 범위가 지정된 리소스만 볼 수 있습니다.

API를 사용하여 환경의 모든 리소스를 보려면 다음 리소스에 대한 GET 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles

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

curl -X GET https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles
  -H "Authorization: Bearer $TOKEN"

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요. 사용된 환경 변수에 대한 설명은 Apigee API 요청에 대한 환경 변수 설정을 참조하세요.

자세한 내용은 환경 리소스 파일 API 나열을 참조하세요.

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

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

API를 사용하여 리소스의 콘텐츠 보기

API를 사용하여 환경에서 콘텐츠를 보려면 다음 리소스에 대한 GET 요청을 실행합니다. /organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME

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

curl -X GET https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Authorization: Bearer $TOKEN"

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요. 사용된 환경 변수에 대한 설명은 Apigee API 요청에 대한 환경 변수 설정을 참조하세요.

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

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

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

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

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

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

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

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

API를 사용하여 다음 리소스에 대한 PUT 요청을 실행해 환경으로 범위가 지정된 리소스를 업데이트합니다. /organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME

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

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

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

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요. 사용된 환경 변수에 대한 설명은 Apigee API 요청에 대한 환경 변수 설정을 참조하세요.

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

curl -X PUT https://apigee.googleapis.com/v1/organizations/myorg/environments/test/resourcefiles/jsc/pathSetter.js
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type:multipart/form-data" \
  -F file=@pathSetter.js

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

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

API를 사용하여 리소스 삭제

다음 섹션에 설명된 대로 API 프록시 버전 또는 환경으로 범위가 지정된 리소스를 삭제합니다.

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

하이브리드에서 API를 사용하여 API 프록시로 범위가 지정된 리소스를 삭제하려면 다음 단계를 따르세요.

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

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

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

API를 사용하여 환경으로 범위가 지정된 리소스를 삭제하려면 다음 리소스에 대한 DELETE 요청을 실행합니다. https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME

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

curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/jsc/pathSetter.js \
  -H "Authorization: Bearer $TOKEN"
  

$TOKENOAuth 2.0 액세스 토큰 가져오기에 설명된 대로 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에서 사용된 curl 옵션에 대한 자세한 내용은 curl 사용을 참조하세요. 사용된 환경 변수에 대한 설명은 Apigee API 요청에 대한 환경 변수 설정을 참조하세요.

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

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

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

리소스에 액세스

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

이 섹션의 예시에서는 자바스크립트 유형의 정책에서 참조할 수 있도록 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>

자세한 내용은 자바스크립트 정책을 참조하세요.