設定及部署環境

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

環境是指要部署的 API Proxy 和共用流程的執行階段執行情境。您必須先將 API Proxy 和共用流程部署至一或多個環境,才能進行測試。如要進一步瞭解環境,請參閱「關於環境和環境群組」。

按照以下各節的說明設定及部署環境。另請參閱「在 Apigee 工作區中管理資料夾和檔案」。

設定環境

部署環境前,請先設定環境,以便識別要部署的 API Proxy 和共用流程,並視需要設定共用流程掛鉤或目標伺服器。

如要設定環境,請建立環境,然後編輯下表中定義的設定。

設定 說明
偵錯遮罩 (debugmasks.json) 定義遮罩設定,以便在追蹤和偵錯工作階段中遮罩特定資料。
部署 (deployments.json) 在部署中定義 API Proxy 和共用流程。
流程掛鉤 (flowhooks.json) 將共用流程附加至流程掛鉤,讓這些流程在部署至環境的所有 API Proxy 中執行於相同位置。
目標伺服器 (targetservers.json) 將具體端點與目標端點分離,以便在多個後端伺服器執行個體之間支援負載平衡和備援機制。
鍵值儲存庫 (keystores.json) 目標端點目標伺服器新增 TLS 支援。

此外,如果您使用需要資源的任何政策,則可視需要在環境層級管理資源

建立環境

如要在 Cloud Code 中的 Apigee 中建立環境,請按照下列步驟操作:

  1. 執行下列任一操作:

    • 將游標移至 Apigee 工作區中的「environments」資料夾,然後按一下 建立環境圖示

      將游標懸停在環境資料夾上時,畫面會顯示 +

    • 依序選取「View」>「Command Palette」開啟指令面板,然後選取「Cloud Code: Create Apigee environment」

    「Create environment」精靈會隨即開啟。

  2. 輸入環境名稱,然後按下 Enter 鍵。

環境會新增至 Apigee 專區中的「environments」資料夾:

包含 deployments.json、flowhooks.json 和 targetservers.json 檔案的環境資料夾

按照後續各節的說明設定環境。

設定偵錯遮罩 (debugmask.json)

Apigee 可讓您定義遮罩設定,在追蹤和偵錯工作階段中遮蓋特定資料。資料經過遮罩後,會在追蹤記錄輸出中以星號取代。例如:

<description>**********</description>

詳情請參閱「遮蓋敏感資料」。

如要設定偵錯遮罩,請直接編輯檔案來更新 debugmask.json 檔案。

以下提供 JSON 格式的遮罩設定基本結構範例。如要進一步瞭解範例中顯示的遮罩設定欄位,請參閱 DebugMask

{
  "namespaces": {
    "myco": "https://example.com"
  },
  "requestXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "responseXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "faultXPaths": [
    "/myco:Greeting/myco:User"
  ],
  "requestJSONPaths": [
    "$.store.book[].author"
  ],
  "responseJSONPaths": [
    "$.store.book[].author"
  ],
  "faultJSONPaths": [
    "$.store.book[*].author"
  ],
  "variables": [
    "request.header.user-agent",
    "request.formparam.password"
  ]
}

設定部署作業 (deployments.json)

設定要納入部署作業的 API Proxy 和共用流程。

如要設定部署作業,請使用設定精靈或直接編輯檔案來更新 deployments.json 檔案。

如要使用設定精靈設定部署作業,請按照下列步驟操作:

  1. 將滑鼠游標移至環境的 deployments.json 檔案,然後按一下 用於設定部署作業的設定精靈圖示

    將游標移到 deployments.json 資料夾上時,系統會顯示設定圖示

  2. 逐步完成設定精靈,選取部署作業並在 deployments.json 檔案中自動填入欄位。deployments.json 檔案會在編輯器中開啟。
  3. 視需要編輯設定。
  4. 選取「File」>「Save」或按下 ⌘S 鍵即可儲存編輯內容。

以下範例會將 helloworld API Proxy 和 mysharedflowhw-sharedflow 共用流程納入部署作業:

{
  "proxies" : [
     "helloworld"
  ],
  "sharedflows" : [
     "mysharedflow",
     "hw-sharedflow"
  ]
}

使用 Proxy 和共用流程部署設定服務帳戶

使用 Google 服務做為後端的 API 代理程式,可能需要 Google Cloud 服務帳戶才能與部署作業建立關聯。請參閱「使用 Google 驗證」。

編輯 deployments.json 檔案時,您可以將 API 代理程式或共用流程與 Google Cloud 服務帳戶建立關聯。例如:

{
  "name": "proxy-name",
  "serviceAccount": "associated-service-account"
}

以下範例顯示部署設定,其中服務帳戶與 API Proxy helloworld 和共用流程 mysharedflow 相關聯,但 Proxy healthcheck 和共用流程 hw-sharedflow 並未與服務帳戶相關聯:

{
  "proxies": [
    {
      "name": "helloworld",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "healthcheck"
  ],
  "sharedflows": [
    {
      "name": "mysharedflow",
      "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com"
    },
    "hw-sharedflow"
  ]
}

進一步瞭解如何設定 Apigee Emulator,以便測試 API 代理程式中的服務帳戶驗證功能。

使用流程掛鉤 (flowhooks.json) 附加共用流程

您可以使用流程掛鉤附加共用流程,讓系統在部署至特定環境的所有 API Proxy 上執行相同的流程。這樣一來,您就能實作並部署邏輯序列,而這並非 API Proxy 實作程式碼的一部分。具體來說,您可以在 API Proxy 流程中的以下位置附加共用流程:

  • API Proxy 端點執行前 (PreProxyFlowHook)
  • API Proxy 端點執行完畢後,並在回應傳送至用戶端之前 (PostProxyFlowHook)
  • 目標端點執行前 (PreTargetFlowHook)
  • 目標回應執行完畢後 (PostTargetFlowHook)

如要進一步瞭解流程掛鉤,請參閱「使用流程掛鉤附加共用的流程」。

如要使用流程掛鉤附加共用流程,請使用設定精靈或直接編輯檔案來更新 flowhooks.json 檔案。

如要使用設定精靈設定流程掛鉤,請按照下列步驟操作:

  1. 將滑鼠游標移至環境的 flowhooks.json 檔案,然後按一下 用於設定流程掛鉤的設定精靈圖示
  2. 選取要附加至 API 代理程式流程中特定位置的共用流程,並在 flowhooks.json 檔案中自動填入欄位。flowhooks.json 檔案會在編輯器中開啟。
  3. 視需要編輯設定。
  4. 選取「File」>「Save」或按下 ⌘S 鍵即可儲存編輯內容。

以下範例會將 mysharedflow 附加至 PreProxyFlowHook,以便在 API Proxy 端點執行前執行:

{
  "PreProxyFlowHook": {
    "continueOnError": true,
    "sharedFlow": "mysharedflow",
    "description": "Shared enforced before a proxy endpoint executes."
  }
}

設定目標伺服器 (targetservers.json)

目標伺服器 (TargetServers) 會將具體端點網址與目標端點 (TargetEndpoint) 設定分開。您可以設定一或多個命名的 TargetServer,而非在設定中定義具體網址。接著,在 TargetEndpoint HTTPConnection 中依名稱參照每個 TargetServer。

如要進一步瞭解目標伺服器,請參閱下列主題:

如要設定目標伺服器,請使用設定精靈或直接編輯檔案來更新 targetservers.json 檔案。如需 targetservers.json 檔案中欄位的說明,請參閱「資源:TargetServer」。

如要使用設定精靈設定目標伺服器,請按照下列步驟操作:

  1. 將游標移至環境的 targetservers.json 檔案,然後按一下 用於設定目標伺服器的「精靈」圖示
  2. 逐步完成設定精靈,設定目標伺服器,並在 targetservers.json 檔案中自動填入欄位。targetservers.json 檔案會在編輯器中開啟。
  3. 視需要編輯設定。
  4. 選取「File」>「Save」或按下 ⌘S 鍵即可儲存編輯內容。

以下範例會在環境中新增目標伺服器:

[
  {
    "enabled": true,
    "name": "mytargetserver",
    "description": "My first target server",
    "host": "localhost",
    "port": 80
  }
]

以下範例說明如何使用金鑰庫設定目標伺服器,以便使用雙向 TLS:

[
    {
        "name": "mtlsserver",
        "host": "mytargetserver.mydomain",
        "port": 443,
        "enabled": true,
        "protocol": "HTTP",
        "tlsInfo": {
            "enabled": true,
            "clientAuthEnabled": true,
            "keyStore": "mykeystore",
            "keyAlias": "mykeyandcert",
            "trustStore": "mytruststore"
        }
    }
]

設定 Keystore (keystores.json)

金鑰存放區會定義安全性憑證存放區,用於在目標端點和目標伺服器中進行 TLS 加密。

如要進一步瞭解 TLS 設定,請參閱「傳輸層安全標準 (TLS) 設定選項」。

設定金鑰庫的方法如下:

  1. 在編輯器中開啟環境的 keystores.json 檔案。這個檔案有兩個主要元素
    • stores:已新增的 KeyStore 名稱和別名的對應項目。
    • references - 所有 KeyStore 參照名稱和相關 KeyStore 名稱的對應表。
  2. 視需要編輯設定。
  3. 選取「File」>「Save」或按下 ⌘S 鍵即可儲存編輯內容。

以下範例顯示金鑰庫 mykeystore 有兩個別名 mycert-aliasmykeycert-alias

{
    "stores": {
      "mykeystore": {
        "my-cert-alias": {
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        },
        "my-keycert-alias": {
          "key": "/Users/jdoe/testkeys/key1.pem",
          "cert": "/Users/jdoe/testkeys/cert1.pem"
        }
      }
    }
  }

部署環境

為環境部署已設定的 API Proxy 和共用流程,以便進行測試。

如要部署環境,請按照下列步驟操作:

  1. 在 Apigee 專區中,將游標移至要部署的環境資料夾。
  2. 按一下 Apigee 環境的部署圖示

    將游標置於開發環境資料夾上時,系統會顯示部署圖示

  3. 如果有多個 Apigee Emulator 容器正在執行,請選取要部署環境的容器。
  4. 選取要透過部署作業匯出的測試套件,或選取「不含測試套件」

    提示匯出測試套件

    您可以稍後匯出測試資源,如「將測試資源匯出至 Apigee Emulator」一節所述。

環境部署完成後,系統會在「Output」分頁中顯示成功訊息。

Apigee Emulator 會顯示已部署的應用程式:

Apigee Emulator 顯示已部署的 helloworld 應用程式和有效測試資源