停用 API 管理功能

如果您在 Google Cloud Platform (GCP) 上為您的應用程式啟用了 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 Console 中,前往「Endpoints」>「Services」(服務) 頁面。

    前往 Endpoints 服務頁面

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

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

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

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

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

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

刪除代管服務

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

如要刪除代管服務:

  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
需要協助嗎?請前往我們的支援網頁