管理資源

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

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

關於資源

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

資源類型

下表列出資源類型:

資源類型 說明
GraphQL (graphql) GraphQL 政策參照的 GraphQL 結構定義檔案。
JAR (java) JavaCallout 政策參照的 JAR 檔案中的 Java 類別。
JavaScript (js) JavaScript 政策參照的 JavaScript。
JavaScript (jsc) JavaScript 政策參照的已編譯 JavaScript。
OpenAPI Specification (oas) OpenAPI 規格,用於驗證 JSON 或 YAML 類型的要求和回應訊息。
Property Set (properties) 可參照 API Proxy 屬性集的鍵/值組合集合。
Python (py) PythonScript 政策參照的 Python 指令碼。資源必須以「純 Python」實作 (僅限 Python 語言)。
Security policy (securityPolicy) JavaCallout 政策參照的自訂安全性政策。
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」和「使用 API 管理資源」一節所述,環境存放區位於下列 URI: /organizations/$ORG/environments/$ENV/resourcefiles

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

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

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

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

資源名稱解析

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

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

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

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

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

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

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

Java 資源指南

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

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 Proxy 修訂版本的資源,請參閱下列各節。

透過使用者介面查看資源

Cloud 控制台中的 Apigee

  1. 在 Google Cloud 控制台中,前往「Proxy development」(Proxy 開發) >「API proxies」(API Proxy) 頁面。

    前往 API Proxy

  2. 選取要查看資源的 API Proxy。系統會顯示 Proxy 編輯器的「總覽」檢視畫面。

  3. 按一下「開發」分頁標籤。
  4. 在導覽窗格中,向下捲動至「Resources」(資源)。下方會顯示目前的資源。

傳統版 UI

如要使用傳統 Proxy 編輯器,查看 API Proxy 修訂版本範圍內的資源,請按照下列步驟操作:

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

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

使用 UI 建立資源

Cloud 控制台中的 Apigee

如要使用 Apigee in Cloud 控制台建立資源,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Proxy development」(Proxy 開發) >「API proxies」(API Proxy) 頁面。

    前往 API Proxy

  2. 選取要查看資源的 API Proxy。系統會顯示 Proxy 編輯器的「總覽」檢視畫面。

  3. 按一下「開發」分頁標籤。
  4. 在導覽窗格中向下捲動至「資源」,然後點選右側的「+」按鈕。
  5. 在「新增資源」對話方塊中,輸入下列資訊:
    • 「Resource type」:選取資源的檔案類型。
    • 在「來源」下方,選取「建立新檔案」或「匯入檔案」。如果選擇「匯入檔案」,請在「檔案」欄位中選取要匯入的檔案。
    • 資源名稱:輸入資源名稱。
  6. 按一下「新增」

傳統版 Apigee

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

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

使用 UI 更新資源

只有在 API Proxy 修訂版本尚未部署時,才能更新該版本範圍內的資源。API Proxy 修訂版本部署後就無法變更。

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

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

使用 UI 刪除資源

只有在修訂版本尚未部署的情況下,才能刪除 API Proxy 修訂版本範圍內的資源。API Proxy 修訂版本部署後就無法變更。

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

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

使用 API 管理資源

如以下各節所述,使用 API 管理資源。

使用 API 建立資源

請按照下列各節所述,建立以 API Proxy 修訂版本環境為範圍的資源。

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

如要使用 API 建立以 API Proxy 修訂版本為範圍的資源,請參閱下列各節。

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

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

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

如要使用 API 建立環境範圍內的資源,請對下列資源發出 POST 要求: /organizations/$ORG/environments/$ENV/resourcefiles

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

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

以下範例說明如何透過要求主體傳遞 JavaScript 資源的內容,藉此建立該資源。

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");'

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

以下範例說明如何從本機電腦上傳資源檔案。請務必在 curl 中使用 -F 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。

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"

其中 $TOKEN 會設為您的 OAuth 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 JavaScript (jsc) 檔案的內容:

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

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

以下是回應範例:

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

使用 API 更新資源

更新範圍限定為 API Proxy 修訂版本環境的資源,詳情請參閱下列各節。

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

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

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

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

如要使用 API 更新環境範圍內的資源,請對下列資源發出 PUT 要求: /organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME

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

以下範例說明如何透過在要求主體中傳遞 JavaScript 資源的內容,更新該資源。

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");'

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

以下範例說明如何使用本機電腦的檔案更新資源檔案。請務必在 curl 中使用 -F 上傳二進位檔,這樣 JavaScript 政策才能存取環境或機構範圍的 JavaScript 檔案。

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 Proxy 修訂版本或環境範圍內的資源,請參閱下列各節。

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

在混合式環境中,如要使用 API 刪除 API Proxy 範圍內的資源,請按照下列步驟操作:

  1. 使用 Get API proxy revision API 下載 API Proxy 設定套件,並使用下列選項:
    • format 查詢參數設為 bundle
    • Accept 標頭設為 application/zip
  2. API Proxy 設定套件中刪除資源檔案。
  3. 使用「更新 API Proxy 修訂版本」API 上傳 API Proxy 設定套件。

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

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

如要使用 API 刪除環境範圍內的資源,請對下列資源發出 DELETE 要求: https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles/$TYPE/$NAME

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

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

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

詳情請參閱「刪除資源檔案 API」。

以下是回應範例。

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

存取資源

存取資源的方式取決於資源類型。詳情請參閱政策參考資料總覽

本節的範例說明如何建立及管理名為 pathSetter.js 的 JavaScript 資源,以便 JavaScript 類型的政策參照該資源。

如要將 JavaScript 附加至要求 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 政策」。