環境を削除する

このトピックでは、Apigee ハイブリッドで環境を削除する方法について説明します。環境と環境グループについてもご覧ください。

環境の削除について

環境の削除は、環境の作成の逆のプロセスであり、次のタスクが含まれます。

  • クラスタから環境のランタイム コンポーネントを削除し、オーバーライド ファイルから環境を削除します。
  • Apigee UI または Delete environments API を使用して、管理プレーンから環境を削除します。

環境を削除する方法

test と prod という 2 つの環境があるとします。オーバーライド ファイル内の定義は次のようになります。

...
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 チャートをインストールしたときに使用した名前です。多くの場合、これは環境名と同じです。Namespace 内のリリース名を一覧表示するには、helm list -n APIGEE_NAMESPACE を実行します。
    • APIGEE_NAMESPACE は、Apigee ハイブリッドをインストールした Namespace です(デフォルトは 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 環境の定義を削除し、test 環境の定義だけを残します。次に例を示します。
    ...
    envs:
      - name: test
        serviceAccountPaths:
          synchronizer: "your_keypath/PROJECT_ID-apigee-synchronizer.json"
          runtime: "your_keypath/PROJECT_ID-apigee-runtime.json"
    ...
  6. ファイルを保存します。
  7. 環境を管理プレーンから削除します。Apigee UI または Delete environments API を使用できます。

    Apigee UI

    1. Google Cloud コンソールで、[Apigee] > [管理] > [環境] ページに移動します。

      [環境] に移動

    2. Apigee 組織のプロジェクトを選択します。
    3. prod 環境の行で、 [アクション] > [削除] をクリックします。

    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"

    この呼び出しは、長時間実行オペレーションを返します。削除が完了するまでに数分かかることがあります。