設定及部署環境

本頁內容適用於 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」

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

  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 Proxy 的後端是 Google 服務,可能需要將 Google Cloud 服務帳戶與部署作業建立關聯。請參閱「使用 Google 驗證」。

編輯 deployments.json 檔案時,您可以將 API Proxy 或共用流程與 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 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"
        }
    }
]

設定 Keystore (keystores.json)

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

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

如要設定金鑰儲存區:

  1. 在編輯器中開啟環境的 keystores.json 檔案。檔案有兩個主要元素:
    • stores - 已新增的 KeyStore 名稱和別名對應表。
    • references - 所有 KeyStore 參照名稱和相關聯 KeyStore 名稱的地圖。
  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 Proxy 和共用流程,以便存取並進行測試。

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

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

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

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

    提示匯出測試套件

    您可以稍後匯出測試資源,詳情請參閱「將測試資源匯出至 Apigee Emulator」。

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

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

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