환경 삭제

이 주제에서는 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는 환경 이름이 아닌 생성된 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=server와 같은 --dry-run 값을 허용하지 않습니다. 예를 들면 다음과 같습니다.

    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 또는 환경 삭제 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"

    호출은 장기 실행 작업을 반환합니다. 삭제를 완료하는 데 몇 분 정도 걸릴 수 있습니다.