API 관리 삭제

Google Cloud의 애플리케이션에 API 관리를 추가한 후 API 관리 기능이 필요하지 않다고 판단되면 Cloud Endpoints 프레임워크를 구성하여 API 관리를 중지할 수 있습니다.

API 관리를 삭제해도 API 제공은 중지되지 않습니다. API 제공을 멈추려면 Google Cloud Console의 App Engine 설정 페이지에서 애플리케이션 사용 중지하거나 Google Cloud 프로젝트를 삭제하면 됩니다. 자세한 내용은 애플리케이션 사용 중지 및 프로젝트 종료를 참조하세요.

API 관리를 삭제하려면 다음 안내를 따르세요.

  1. API 프로젝트의 web.xmlappengine-web.xml 파일을 백업합니다.

  2. API 프로젝트의 web.xml 파일에서 다음 항목을 삭제합니다.

    • endpoints-api-configuration 필터
    • endpoints-api-controller 필터
    • endpoints-api-configuration 필터 매핑
    • endpoints-api-controller 필터 매핑

    필터와 필터-매핑을 삭제한 후의 web.xml은 다음과 유사합니다.

    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
        <!-- Wrap the backend with Endpoints Frameworks v2. -->
        <servlet>
            <servlet-name>EndpointsServlet</servlet-name>
            <servlet-class>com.google.api.server.spi.EndpointsServlet</servlet-class>
            <init-param>
                <param-name>services</param-name>
                <param-value>com.example.skeleton.MyApi</param-value>
            </init-param>
        </servlet>
        <!-- Route API method requests to the backend. -->
        <servlet-mapping>
            <servlet-name>EndpointsServlet</servlet-name>
            <url-pattern>/_ah/api/*</url-pattern>
        </servlet-mapping>
    </web-app>
  3. appengine-web.xml 파일에서 ENDPOINTS_SERVICE_NAME 환경 변수를 정의하는 줄을 삭제합니다. ENDPOINTS_SERVICE_NAME 환경 변수만 정의한 경우에는 env-variables 섹션 전체를 삭제합니다.

  4. 프로젝트를 삭제한 후 API를 빌드합니다.

    Maven

        mvn clean
        mvn package

    Gradle

        gradle clean
        gradle build
  5. 애플리케이션을 다시 배포합니다.

    Maven

    mvn appengine:deploy

    Gradle

    gradle appengineDeploy

애플리케이션을 다시 배포하면 Cloud Endpoints Frameworks에서 API 관리가 중지됩니다.

API 관리 삭제 확인

Endpoints Frameworks에서 더 이상 API가 관리되지 않는다는 것을 확인하는 단계는 다음과 같습니다.

  1. Google Cloud Console에서 Endpoints > 서비스 페이지로 이동합니다.

    Endpoints 서비스 페이지로 이동

  2. API의 메서드 중 하나에 대한 요청 수를 기록해 둡니다.

  3. 해당 메서드의 View logs 링크를 클릭합니다.

  4. Produced API 로그에서 최근 로그 항목의 날짜와 시간을 기록해 둡니다.

  5. API의 메소드에 요청을 보냅니다.

  6. Google Cloud Console에서 Endpoints > 서비스 페이지로 이동합니다.

    Endpoints 서비스 페이지로 이동

    메서드의 요청 카운터가 업데이트되지 않았습니다.

  7. 해당 메서드의 View logs 링크를 클릭합니다.

    앞에서 전송한 요청에 대한 로그 항목이 Produced API 로그에 포함되어 있지 않습니다.

빌드 구성에서 종속 항목 삭제

필요하지 않은 경우에도 빌드 구성에서 종속 항목을 삭제하려고 할 수 있습니다.

빌드 구성에서 종속 항목을 삭제하려면 다음 안내를 따르세요.

  1. pom.xml 파일이나 build.gradle 파일을 백업합니다.

  2. 다음 종속 항목을 삭제합니다.

    • endpoints-management-control-appengine
    • endpoints-management-control-appengine-all
    • endpoints-framework-auth
  3. 프로젝트를 삭제한 후 API를 빌드합니다.

    Maven

        mvn clean
        mvn package

    Gradle

        gradle clean
        gradle build
  4. 애플리케이션을 다시 배포합니다.

    Maven

    mvn appengine:deploy

    Gradle

    gradle appengineDeploy

  5. API를 테스트하여 예상대로 작동하는지 확인합니다.

관리형 서비스 삭제

Endpoints 프레임워크는 Google의 Service Management를 사용하여 API를 관리합니다. gcloud endpoints services deploy 명령어를 사용하여 OpenAPI 문서를 배포하면 이 명령어는 Service Management를 사용하여 API에 대한 관리형 서비스를 만듭니다. Endpoints > 서비스 페이지와 로그 뷰어 페이지의 생성된 API 로그에 있는 데이터가 필요하지 않으면 API의 관리형 서비스를 삭제할 수 있습니다. 이렇게 하면 Google Cloud Console에서 데이터가 삭제됩니다.

관리형 서비스를 삭제하려면 다음 단계를 따르세요.

  1. gcloud CLI(gcloud)에 Google Cloud의 데이터 및 서비스에 액세스할 수 있는 권한이 있는지 확인합니다.

    gcloud auth login
    
  2. 다음을 입력하여 Google Cloud 프로젝트의 프로젝트 ID를 표시합니다.

    gcloud projects list
    
  3. 이전 단계의 해당 프로젝트 ID를 사용하여 기본 Google Cloud 프로젝트를 애플리케이션이 있는 프로젝트로 설정합니다.

    gcloud config set project [YOUR_PROJECT_ID]
    
  4. Google Cloud 프로젝트에서 모든 관리형 서비스의 이름을 가져옵니다.

    gcloud endpoints services list
    
  5. Service Management에서 서비스를 삭제합니다. SERVICE_NAME은 삭제할 서비스 이름으로 바꿉니다.

    gcloud endpoints services delete SERVICE_NAME
    

    gcloud endpoints services delete를 실행해도 관리형 서비스가 즉시 삭제되지는 않습니다. Service Management에서 30일 동안 관리형 서비스가 사용 중지되므로 필요한 경우 복원할 수 있습니다. 30일 이후에는 Service Management에서 관리형 서비스가 영구적으로 삭제됩니다.

다음 단계