管理資源

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

如下各節所述,瞭解及管理資源。

關於資源

許多政策類型仰賴資源。資源是附加至 API Proxy 時實作程式碼或設定的檔案。在某些情況下,如同 JavaScript 和 Java 呼叫,政策只會在 API Proxy 中定義要執行部分程式碼的附件點。JavaScript 或 Java 呼叫政策是資源的指標。

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

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

資源類型

下表概述資源類型:

資源類型 說明
JAR (java) Java callout 政策參照的 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 修訂版本。例如,您可以加入 JavaScript 資源,其修訂版本為 API Proxy 的 1,然後變更實作,在 Proxy 的修訂版本 2 中使用 Python 指令碼。修訂版本 1 只能存取 JavaScript 資源,而修訂版本 2 只能存取 Python 資源。
  • 環境:如果儲存在環境中 (例如 testprod),則部署於相同環境中的任何 API Proxy 都能使用資源。
  • 機構:如果將資源儲存在機構中,則任何環境中部署的 API Proxy 都能使用資源。

存放區可在下列 URI 中找到,如 Resource files API 及後續的使用 API 管理資源中所述:

  • 機構:/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

資源名稱解析

邊緣會從最具體到最廣泛的範圍解析資源名稱。資源名稱從 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 選項),將已編譯的 Java 資源新增為 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 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 (import更新) 將資源儲存在 API Proxy 修訂版本範圍。

透過 UI 管理資源

透過 UI 管理範圍限定為 API Proxy 修訂版本的資源,如以下各節所述。

透過 UI 查看資源

如要查看限定於 API Proxy 修訂版本的資源:

  1. 登入 apigee.com/edge

  2. 在左側導覽列中,依序選取「Develop」(開發) >「API Proxy」
  3. 在清單中選取要建立資源的 API Proxy。
    API Proxy 編輯器會隨即開啟,並顯示「總覽」分頁。
  4. 按一下「開發」分頁標籤。
  5. 如有需要,請在「修訂版本」下拉式選單中選取修訂版本。

    限定為 API Proxy 修訂版本的資源會列在導覽器檢視畫面中的「資源」部分。

使用 UI 建立資源

如要透過 UI 建立範圍限定為 API Proxy 修訂版本的資源:

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

透過 UI 更新資源

如要透過 UI 更新範圍限定為 API Proxy 修訂版本的資源:

  1. 查看範圍限定為 API Proxy 修訂版本的資源
  2. 在「資源」下方的「導覽器」檢視畫面中,按一下您要更新的資源。
    注意:針對 JAR 檔案,請將遊標移到要編輯的資源上,然後按一下
  3. 視需要更新資源。
    注意:上傳新的 JAR 檔案後,請按一下「Update」

使用 UI 刪除資源

如要透過 UI 卸離範圍限定為 API Proxy 修訂版本的資源:

  1. 查看範圍限定為 API Proxy 修訂版本的資源
  2. 在「資源」下的「導覽器」檢視中,將遊標停在要刪除的資源上,以顯示動作選單。
  3. 按一下「」。
  4. 按一下「刪除」來確認動作。

使用 API 管理資源

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

使用 API 建立資源

按照以下各節所述,建立範圍限定為 API Proxy 修訂版本環境機構 (僅限邊緣) 的資源。

使用 API 建立範圍限定為 API Proxy 修訂版本的資源

透過向下列資源發出 POST 要求,使用 API 建立範圍限定為 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

以下範例說明如何從本機電腦上傳資源為檔案。請務必使用 -F 進行 curl 二進位檔上傳作業,以便 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

以下範例說明如何從本機電腦上傳資源為檔案。請務必使用 -F 進行 curl 二進位檔上傳作業,以便 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 修訂版本環境機構 (僅限邊緣) 的資源。

使用 API 更新範圍限定為 API Proxy 修訂版本的資源

透過向下列資源發出 PUT 要求,使用 API 更新限定於 API Proxy 修訂版本的資源:https://api.enterprise.apigee.com/v1/organizations/{org}/apis/{api}/revisions/{rev}/resourcefiles/{type}/{name}

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

以下範例會針對 helloworld API Proxy 的修訂版本 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

以下範例說明如何從本機電腦將資源更新為檔案。請務必使用 -F 進行 curl 二進位檔上傳作業,以便 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 修訂版本 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

以下範例顯示如何使用本機電腦中的檔案更新資源檔案。請務必使用 -F 進行 curl 二進位檔上傳作業,以便 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 修訂版本 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 政策」。