移除 API 管理

如果您在 Google Cloud Platform (GCP) 上為您的應用程式新增 API 管理,但隨後決定不需要 API 管理功能,則可以設定 Cloud Endpoints Frameworks 停止管理您的 API。

移除 API 管理不會導致系統停止提供您的 API。如要停止提供 API,您可以在 Google Cloud Platform 主控台前往「App Engine」的「Settings」(設定) 頁面停用應用程式,也可以刪除 GCP 專案。詳情請參閱停用應用程式和關閉專案這兩個段落。

如要移除 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. 在 GCP 主控台中,前往「Endpoints」>「Services」(服務) 頁面。

    前往「Endpoints」的「Services」(服務) 頁面

  2. 記下傳送到 API 中某個方法的要求數量。

  3. 按一下該方法的 View logs 連結。

  4. Produced API 記錄中,記下最新記錄項目的日期和時間。

  5. 傳送一些要求至 API 中的方法。

  6. 在 GCP 主控台中,前往「Endpoints」>「Services」(服務) 頁面。

    前往「Endpoints」的「Services」(服務) 頁面

    系統不會更新該方法的要求計數器。

  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,確認 API 能正常運作。

刪除代管服務

Endpoints Frameworks 使用 Google 的 Service Management 來管理您的 API。當您使用 gcloud endpoints services deploy 指令部署 OpenAPI 文件時,該指令會使用 Service Management 來為您的 API 建立代管服務。如果您不需要「Endpoints」>「Services」(服務) 頁面上的資料和「Logs Viewer」(記錄檢視器) 頁面中「Produced API」(產生的 API) 記錄的資料,則可刪除 API 的代管服務,進而從 GCP 主控台移除資料。

如要刪除代管服務:

  1. 確認 Cloud SDK (gcloud) 已獲授權,可在 GCP 上存取您的資料與服務:

    gcloud auth login
    
  2. 輸入以下指令,以顯示 GCP 專案的專案 ID:

    gcloud projects list
    
  3. 使用在上一個步驟中顯示的專案 ID,將預設 GCP 專案設為您的應用程式所屬專案:

    gcloud config set project [YOUR_PROJECT_ID]
    
  4. 取得 GCP 專案中所有代管服務的名稱:

    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 就會永久刪除該代管服務。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
App Engine 適用的 Cloud Endpoints Frameworks
需要協助嗎?請前往我們的支援網頁