設定及部署環境

本頁內容適用於 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 資料夾上,然後按一下 建立環境圖示

      將游標放在環境資料夾上時,會顯示「+」

    • 選擇 視圖 > 指令面板 開啟指令面板,然後選擇 雲端程式碼:建立 Apigee 環境

    「建立環境」精靈隨即開啟。

  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. 選取「檔案」>「儲存」或按下 ⌘S 鍵,即可儲存編輯內容。

以下範例配置部署以包含 helloworld API Proxy 以及 mysharedflowhw-sharedflow 共用流程:

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

設定具備 Proxy 和共用流程部署作業的服務帳戶

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

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

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

以下範例顯示了一個 Deployment 配置,其中服務帳戶與 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 Proxy 中測試服務帳戶驗證功能。

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

您可以使用流程掛鉤附加共用流程,讓共用流程在部署至特定環境的所有 API Proxy 中,於相同位置執行。這樣一來,您就能取得獨立實作及部署的邏輯序列,不屬於 API Proxy 的實作程式碼。具體來說,您可以在 API Proxy 流程的下列位置附加共用流程:

  • API Proxy 端點執行前 (PreProxyFlowHook)
  • API Proxy 端點執行完畢後,在向用戶端發送回應之前(PostProxyFlowHook
  • 目標端點執行作業前 (PreTargetFlowHook)
  • 目標回應執行完畢後 (PostTargetFlowHook)

有關流程鉤子的更多信息,請參閱使用流程鉤子附加共享流程

若要使用流鉤子附加共用流,請使用設定精靈更新 flowhooks.json 文件,或直接 編輯文件

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

  1. 將游標移到環境的 flowhooks.json 檔案上,然後按一下 設定流程掛鉤的精靈圖示
  2. 在 API Proxy 流程中的特定位置選取要附加的共用流程,並自動填入 flowhooks.json 檔案中的欄位。 編輯器會開啟 flowhooks.json 檔案。
  3. 視需要編輯設定。
  4. 選取「檔案」>「儲存」或按下 ⌘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. 選取「檔案」>「儲存」或按下 ⌘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"
        }
    }
]

設定金鑰儲存區 (keystores.json)

金鑰庫定義了用於目標端點和目標伺服器中 TLS 加密的安全性憑證的儲存庫。

有關 TLS 配置的更多信息,請參閱 TLS 配置選項

配置金鑰庫:

  1. 在編輯器中開啟環境的 keystores.json 檔案。該文件包含兩個主要元素
    • stores - 新增的金鑰庫名稱及其別名的對應。
    • references - 所有金鑰庫引用名稱及其關聯的金鑰庫名稱的對應。
  2. 視需要編輯設定。
  3. 選取「檔案」>「儲存」或按下 ⌘S 鍵,即可儲存編輯內容。

以下範例顯示了一個包含兩個別名 mycert-aliasmykeycert-alias 的金鑰庫 mykeystore

{
    "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 代理程式和共用流的環境,以便可以存取它們進行測試。

部署環境:

  1. 在 Apigee 區段中,將游標移至要部署的環境資料夾上。
  2. 點擊Apigee 環境的部署圖標

    將游標放在開發環境資料夾上時,系統會顯示「部署」圖示

  3. 如果有多個 Apigee Emulator 容器正在執行,請選取要部署環境的容器。
  4. 選取要連同部署作業匯出的測試套件,或選取「Deploy without a test bundle」(不含測試套件進行部署)

    提示匯出測試套件

    您可以稍後匯出測試資源,如將測試資源匯出到 Apigee 模擬器中所述。

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

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

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