管理資源

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

請參閱下列各節,瞭解及管理資源。

關於資源

許多政策類型都依賴資源。資源是實作程式碼或設定的檔案,附加至 API Proxy 時,政策會執行這些檔案。在某些情況下,如 JavaScript 和 JavaCallout,政策只會定義 API Proxy 中的附加點,讓某些程式碼得以執行。JavaScript 或 JavaCallout 政策是指向資源的指標。

下列 JavaScript 範例會將 HTTP 要求路徑設為 proxy.basepath 變數的值。

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

資源類型

下表摘要列出資源類型:

資源類型 說明
JAR (java) JavaCallout 政策參照的 JAR 檔案中的 Java 類別。
JavaScript (js) JavaScript 政策參照的 JavaScript。
JavaScript (jsc) JavaScript 政策參照的已編譯 JavaScript。
Hosted target (hosted) 要部署至代管目標的 Node.js 檔案。您可以將 Node.js 部署為 Edge 後端目標應用程式。
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 Proxy 修訂版本:資源僅適用於包含這些資源的 API Proxy 修訂版本。舉例來說,您可能會在 API Proxy 的修訂版本 1 中加入 JavaScript 資源,然後在 Proxy 的修訂版本 2 中,將實作項目變更為使用 Python 指令碼。修訂版本 1 只能存取 JavaScript 資源,修訂版本 2 只能存取 Python 資源。
  • 環境:儲存在環境 (例如 testprod) 時,資源可供部署在相同環境中的任何 API Proxy 使用。
  • 機構:儲存在機構中的資源可供部署在任何環境中的 API Proxy 使用。

資源檔案 API 和「使用 API 管理資源」一文所述,這些存放區位於下列 URI:

  • 機構:/organizations/{org}/resourcefiles
  • 環境:/organizations/{org}/environments/{env}/resourcefiles
  • API Proxy:/organizations/{org}/apis/{api}/revisions/{rev}/resources

下表列出可用於建立、更新及刪除每個存放區資源的方法:

存放區 建立 查看 更新 刪除
API UI API UI API UI API UI
API Proxy 修訂版本
環境
組織

舉例來說,test 環境可用的所有 JavaScript 檔案都儲存在下列存放區,且在 test 環境中執行的任何 API Proxy 都能使用:

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

資源名稱解析

Edge 會從最明確的範圍到最一般的範圍解析資源名稱。資源名稱會「向上鏈結」解析,從 API Proxy 修訂版本層級、環境層級到機構層級 (僅限 Edge)。

假設您在兩個不同的存放區 (API Proxy 修訂版本和 prod 環境) 中填入相同的資源。

假設 API Proxy 設定了下列政策:

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

政策參照無法明確解析為存放區。系統會解析名稱與政策中資源名稱相符的第一個資源,該資源位於最細微的範圍。

因此,當 API Proxy 部署在環境 prod 中時,政策會解析為環境範圍的 pathSetter.js 資源。

部署至 test 環境時,政策會解析為 API Proxy 修訂版本範圍的資源,因為環境範圍的資源位於 prod 環境,而非 test 環境。

Java 資源指南

您可以使用 curl 中的多個選項 (例如 -T--data-binary-F 選項,而非 -d 選項),以 JAR 檔案形式新增已編譯的 Java 資源。例如:

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 Proxy 中參照 Node.js 指令碼時,請使用 API Proxy TargetEndpoint 設定中的 <ResourceURL> 元素,如「將 Node.js 新增至現有 API Proxy」一文所述。例如:

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

該 Node.js 指令碼和所有支援模組都必須位於 API Proxy 修訂版本範圍內 (在代理程式套件的 /resources/node 目錄中)。在 API Proxy 編輯器中,將 Node.js 資源新增至「Scripts」部分即可完成這項操作。使用 API (importupdate) 在 API Proxy 修訂版本範圍內儲存資源時,也會發生這種情況。

使用 UI 管理資源

如要使用 UI 管理限定於 API Proxy 修訂版本的資源,請參閱下列各節。

透過 UI 查看資源

如要查看 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:

  1. 登入 apigee.com/edge

  2. 在左側導覽列中,依序選取「開發」>「API Proxy」
  3. 在清單中選取要建立資源的 API Proxy。
    系統會開啟 API Proxy 編輯器,並預設顯示「總覽」分頁。
  4. 點選「Develop」分頁標籤。
  5. 視需要選取「修訂版本」下拉式選單中的修訂版本。

    在「Navigator」檢視畫面中,API Proxy 修訂版本範圍內的資源會列在「Resources」專區。

使用 UI 建立資源

如要使用 UI 建立 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:

  1. 查看 API Proxy 修訂版本範圍內的資源
  2. 在「導覽器」檢視畫面的「資源」部分中,按一下「+」,開啟「新增資源」對話方塊。
  3. 輸入下列內容:
    欄位 說明
    來源 選取要建立新檔案或匯入檔案。
    檔案類型 從下拉式清單中選取資源類型
    檔案名稱 檔案名稱。檔案名稱的副檔名必須適用於所選檔案類型。

使用 UI 更新資源

如要使用 UI 更新 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:

  1. 查看 API Proxy 修訂版本範圍內的資源
  2. 在「資源」下方的「導覽器」檢視畫面中,按一下要更新的資源。
    注意:如為 JAR 檔案,請將游標懸停在要編輯的資源上,然後點選
  3. 視需要更新資源。
    注意:上傳新的 JAR 檔案後,請按一下「更新」

使用 UI 刪除資源

如要使用 UI 刪除 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:

  1. 查看 API Proxy 修訂版本範圍內的資源
  2. 在「資源」下方的「導覽器」檢視畫面中,將游標移至要刪除的資源上,顯示動作選單。
  3. 按一下「」。
  4. 按一下「刪除」確認操作。

使用 API 管理資源

請按照下列各節所述,使用 API 管理資源。

使用 API 建立資源

如要建立資源,請將範圍限定為 API Proxy 修訂版本環境機構 (僅限 Edge),詳情請參閱下列各節。

使用 API 建立 API Proxy 修訂版本範圍內的資源

使用 API,對下列資源發出 POST 要求,建立以 API Proxy 修訂版本為範圍的資源: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles

請在要求中傳遞下列資訊:

  • name 查詢參數設為資源名稱
  • type 查詢參數設為必要的資源類型
  • 將資源檔案的內容做為 application/octet-streammultipart/form-data 傳遞

以下範例會為 helloworld API Proxy 的修訂版本 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 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 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:multipart/form-data" \
  -F file=@pathSetter.js \
  -u email:password

以下是任一 API 呼叫的回應範例。

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

詳情請參閱「匯入 API Proxy 修訂版本的資源檔案」。

或者,您也可以使用 Update API Proxy 修訂版本 API,如下所示:

  1. 建立資源檔案。
  2. 將資源檔案新增至 API Proxy 設定套件
  3. 使用下列其中一個 API 上傳套件:

使用 API 建立環境範圍內的資源

使用 API 向下列資源發出 POST 要求,建立範圍限定於環境的 JavaScript 資源: /organizations/{org}/environments/{env}/resourcefiles

請在要求中傳遞下列資訊:

  • name 查詢參數設為資源名稱
  • type 查詢參數設為必要的資源類型
  • 將資源檔案的內容做為 application/octet-streammultipart/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 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。

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-streammultipart/form-data 傳遞

詳情請參閱「為機構匯入資源檔案」。

使用 API 查看資源

以下各節說明如何使用 API 查看資源。

使用 API 查看所有資源

使用 API 時,您可以查看範圍限定於 API Proxy 修訂版本環境機構的資源。

舉例來說,如要使用 API 查看環境範圍內的資源,請對下列資源發出 GET 要求: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles

以下範例會列出 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 Proxy 修訂版本環境機構的資源。

舉例來說,如要使用 API 查看環境中的資源內容,請對下列資源發出 GET 要求: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/name

以下範例列出 test 環境中 pathSetter.js JavaScript 資源檔案的內容:

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 Proxy 修訂版本環境機構 (僅限 Edge) 的資源,詳情請參閱下列各節。

使用 API 更新 API Proxy 修訂版本範圍內的資源

如要使用 API 更新 API Proxy 修訂版本範圍內的資源,請對下列資源發出 PUT 要求: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

將資源檔案的內容做為 application/octet-streammultipart/form-data 傳遞

以下範例會更新 helloworld API Proxy 修訂版本 1 的 JavaScript 資源 (名為 pathSetter):

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 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。

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 Proxy 修訂版本的資源檔案」。

或者,您也可以使用 Update API Proxy 修訂版本 API,如下所示:

  1. 使用 Export API proxy API 下載 API Proxy 設定套件,並搭配下列選項:
    • format 查詢參數設為 bundle
    • Accept 標頭設為 application/zip
  2. 更新 API Proxy 設定套件中的資源檔案。
  3. 使用 Update API proxy revision API 上傳套件

使用 API 更新環境範圍內的資源

如要使用 API 更新環境範圍內的資源,請對下列資源發出 PUT 要求: /organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

將資源檔案的內容做為 application/octet-streammultipart/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 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。

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-streammultipart/form-data 傳遞

詳情請參閱「為機構匯入資源檔案」。

使用 API 刪除資源

如要刪除資源,請將範圍限定為 API Proxy 修訂版本環境機構 (僅限 Edge),詳情請參閱下列各節。

使用 API 刪除 API Proxy 修訂版本範圍內的資源

如要使用 API 刪除 API Proxy 修訂版本範圍內的資源,請對下列資源發出 DELETE 要求: https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

下列範例會從 helloworld API Proxy 的修訂版本 1 刪除 pathSetter.js JavaScript 資源檔案:

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 Proxy 修訂版本 API,如下所示:

  1. 使用 Export API proxy API 下載 API Proxy 設定套件,並搭配下列選項:
    • format 查詢參數設為 bundle
    • Accept 標頭設為 application/zip
  2. API Proxy 設定套件中刪除資源檔案。
  3. 使用 Update API proxy revision API 上傳套件

使用 API 刪除環境範圍內的資源

使用 API 刪除環境範圍內的資源,詳情請參閱下列各節。

如要使用 API 刪除環境範圍內的資源,請對下列資源發出 DELETE 要求: https://api.enterprise.apigee.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

以下範例會從 test 環境刪除 pathSetter.js JavaScript 資源檔案:

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 的 JavaScript 資源,以便 JavaScript 類型的政策參照該資源。

如要將 JavaScript 附加至 Request PostFlow,請建立名為 PathSetterPolicy.xml 的政策,並參照 pathSetter.js 檔案:

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

然後,在端點設定中參照該原則:

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

詳情請參閱「JavaScript 政策」。