刪除環境

本主題說明如何在 Apigee hybrid 中刪除環境。另請參閱「關於環境和環境群組」。

關於環境刪除作業

刪除環境是建立環境的反向操作,包括下列工作:

  • 從叢集移除環境的執行階段元件,並從覆寫檔案中移除環境。
  • 使用 Apigee UI 或刪除環境 API,從管理層刪除環境。

如何刪除環境

假設您有兩個環境:test 和 prod。在覆寫檔案中,定義可能如下所示:

...
envs:
  - name: test
    serviceAccountPaths:
      synchronizer: "your_keypath/PROJECT_ID-apigee-synchronizer.json"
      runtime: "your_keypath/PROJECT_ID-apigee-runtime.json"
  - name: prod
    serviceAccountPaths:
      synchronizer: "your_keypath/PROJECT_ID-apigee-synchronizer.json"
      runtime: "your_keypath/PROJECT_ID-apigee-runtime.json"
...

如要刪除 prod 環境,請按照下列步驟操作:

  1. 取得 gcloud 驗證憑證:
    TOKEN=$(gcloud auth print-access-token)
  2. 為安全起見,請將環境從其附加的每個環境群組中卸載。這樣一來,在您移除執行階段元件之前,流量就不會轉送至環境。
    1. 列出環境群組的連結,並記下 environment 為 prod 的連結 name (連結 ID):

      無資料落地

      curl -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments"

      資料落地設定

      curl -H "Authorization: Bearer $TOKEN" \
        "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments"

      輸出結果會與下列內容相似:

      {
        "environmentGroupAttachments": [
          {
            "name": "f6f2958f-a0a1-4260-b9e9-80eead82ff1d",
            "environment": "prod",
            "createdAt": "1789700385118",
            "environmentGroupId": "ENV_GROUP"
          }
        ]
      }
    2. 刪除附件:

      無資料落地

      curl -X DELETE -H "Authorization: Bearer $TOKEN" \
        "https://apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments/ATTACHMENT_ID"

      資料落地設定

      curl -X DELETE -H "Authorization: Bearer $TOKEN" \
        "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/envgroups/ENV_GROUP/attachments/ATTACHMENT_ID"

    其中:

    • ORG_NAME 是 Apigee 組織的名稱。
    • ENV_GROUP 是環境群組的名稱。
    • ATTACHMENT_ID 是上一步傳回的附件 name。這是系統產生的 ID,而非環境名稱。
    • 如果您使用資料落地權,CONTROL_PLANE_LOCATION 是貴組織的控制層位置。

    針對環境所屬的每個環境群組,重複執行上述步驟。

  3. 執行模擬測試,測試移除執行階段元件:
    helm delete ENV_RELEASE_NAME -n APIGEE_NAMESPACE --dry-run
    
    • ENV_RELEASE_NAME 是您先前為這個環境安裝 apigee-env 圖表時使用的名稱。通常與環境名稱相同。如要列出命名空間中的版本名稱,請執行 helm list -n APIGEE_NAMESPACE。
    • APIGEE_NAMESPACE 是您安裝 Apigee Hybrid 的命名空間,預設為 apigee。

    --dry-run 選項會模擬解除安裝,但不會移除任何內容,輸出結果與實際解除安裝的輸出結果相同。與 helm upgrade 不同,helm delete 不接受 --dry-run 的值,例如 --dry-run=server。例如:

    helm delete prod -n apigee --dry-run
    release "prod" uninstalled
  4. 如果模擬測試沒有錯誤,請移除執行階段元件:
    helm delete ENV_RELEASE_NAME -n APIGEE_NAMESPACE
    
  5. 開啟覆寫檔案,並從 envs 中移除 prod 環境定義,只保留測試定義。例如:
    ...
    envs:
      - name: test
        serviceAccountPaths:
          synchronizer: "your_keypath/PROJECT_ID-apigee-synchronizer.json"
          runtime: "your_keypath/PROJECT_ID-apigee-runtime.json"
    ...
  6. 儲存檔案。
  7. 從管理層刪除環境。您可以使用 Apigee UI 或刪除環境 API。

    Apigee UI

    1. 在 Google Cloud 控制台,依序前往 「Apigee」 >「Management」(管理) >「Environments」(環境) 頁面。

      前往「Environments」(環境)

    2. 選取 Apigee 組織的專案。
    3. 在 prod 環境的資料列中,依序按一下 「Actions」(動作) >「Delete」(刪除)。

    API

    無資料落地:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" \
      "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/prod"

    資料落地:

    curl -X DELETE -H "Authorization: Bearer $TOKEN" \
      "https://CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/ORG_NAME/environments/prod"

    呼叫會傳回長時間執行的作業。刪除作業應會在幾分鐘內完成。