管理資源

本頁適用於 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 代理程式屬性集的鍵/值組合集合。
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 修訂版本。舉例來說,您可以將 JavaScript 資源納入 API 代理程式第 1 版,然後在代理程式第 2 版中變更實作方式,以便使用 Python 指令碼。第 1 版僅能存取 JavaScript 資源,第 2 版則只能存取 Python 資源。
  • 環境:儲存在環境 (例如 testprod) 中時,資源可供在相同環境中部署的任何 API 代理使用。

如「列出資源檔案 API」和「使用 API 管理資源」一文所述,環境存放區可透過下列 URI 存取: /organizations/$ORG/environments/$ENV/resourcefiles

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

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

舉例來說,所有可供 test 環境使用的 JavaScript 檔案都會儲存在下列存放區,並可供在 test 環境中執行的任何 API 代理程式使用:

/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 中的多個選項 (例如 -T--data-binary-F 選項,但不是 -d 選項),將編譯的 Java 資源新增為 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 查看資源

全新 Proxy 編輯器

如要使用新的 Proxy 編輯器查看資源,請按照下列步驟操作:

  1. 如果您使用的是 Cloud 控制台中的 Apigee UI:請依序選取「Proxy development」>「API Proxies」

    如果您使用的是傳統 Apigee UI:請依序選取「Develop」>「API Proxies」,然後在「Proxies」窗格中,選取您要查看資源的 Proxy 所屬環境。

  2. 選取要查看資源的 API 代理程式。這會顯示 Proxy 編輯器的「總覽」檢視畫面。

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

傳統 Proxy 編輯器

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

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

    屬於 API 代理程式修訂版本範圍的資源,會列在導覽器檢視畫面的「資源」區段中。

使用 UI 建立資源

全新 Proxy 編輯器

如要使用新的 Proxy 編輯器建立資源,請按照下列步驟操作:

  1. 如果您使用的是 Cloud 控制台中的 Apigee UI:請依序選取「Proxy development」>「API Proxies」

    如果您使用的是傳統 Apigee UI:請依序選取「Develop」>「API Proxies」,然後在「Proxies」窗格中,選取您要查看資源的 Proxy 所屬環境。

  2. 選取要查看資源的 API 代理程式。這會顯示 Proxy 編輯器的「總覽」檢視畫面。

  3. 按一下「開發」分頁標籤。
  4. 在左側窗格中,向下捲動至「資源」,然後按一下右側的「+」按鈕。
  5. 在「Add resource」對話方塊中輸入以下內容:
    • 資源類型:選取資源的檔案類型。
    • 在「來源」下方,選取「建立新檔案」或「匯入檔案」。如果您選擇「Import file」(匯入檔案),請一併在「File」(檔案) 欄位中選取要匯入的檔案。
    • 資源名稱:輸入資源名稱。
  6. 按一下「新增」。

傳統版 Apigee

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

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

使用 UI 更新資源

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

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

  1. 查看 API Proxy 修訂版本的資源範圍
  2. 在導覽器檢視畫面的「Resources」下方,按一下要更新的資源。
    注意:如果是 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 代理程式修訂版本的資源,詳情請參閱下列各節。

如要使用 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 資源內容,藉此建立 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 要求設定環境變數」。

以下範例說明如何從本機電腦上傳資源檔案。請務必使用 -F 為 curl 中的二進位檔上傳,以便 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. 使用 Update API proxy revision 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 要求設定環境變數」。

以下範例說明如何使用本機電腦的檔案更新資源檔案。請務必使用 -F 為 curl 中的二進位檔上傳,以便 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. 使用 Update API proxy revision 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 要求設定環境變數」。

詳情請參閱「Delete resource file 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>

接著,請在 Endpoints 設定中參照這項政策:

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

詳情請參閱「JavaScript 政策」。