將資料代理程式與應用程式整合

本教學課程說明如何使用 Google Cloud 控制台,在 Spanner 中設定及使用資料代理程式,並將其與應用程式整合。您將瞭解如何建構代理程式環境檔案、建立使用環境的資料代理程式、使用 MCP Toolbox 呼叫 QueryData API,為自然語言問題生成 SQL 查詢,最後將其整合至應用程式。

詳情請參閱「資料代理程式總覽」。

目標

  • 建立並填入資料表。
  • 使用 Gemini CLI 和 MCP 工具箱建構代理程式環境。
  • 建立資料代理並上傳背景資訊。
  • 在 Studio 中檢查代理程式並產生 SQL 查詢。
  • 使用 MCP Toolbox 中的 Gemini Data Analytics QueryData 工具,將代理程式與應用程式整合。

費用

在本文件中,您會使用下列 Google Cloud的計費元件:

您可以使用 Pricing Calculator 根據預測用量估算費用。

初次使用 Google Cloud 的使用者可能符合免費試用期資格。

完成本文所述工作後,您可以刪除建立的資源,避免繼續計費。詳情請參閱「清除所用資源」一節。

事前準備

建立代理程式前,請先完成下列先決條件。

啟用必要服務

為專案啟用下列服務:

準備 Spanner 執行個體

必要角色和權限

建立 flightsairports 結構定義和資料表

在本節中,您將為本教學課程建立 flightsairports 資料庫。

  1. 前往 Google Cloud 控制台的「Spanner」頁面。

    前往 Spanner

  2. 從清單中選取執行個體,然後選取資料庫。

  3. 在導覽選單中,按一下「Spanner Studio」

  4. 按一下「開啟新的 SQL 編輯器分頁」或「開啟新分頁」,開啟新分頁。

  5. 建立 airports 資料表和結構定義:

    CREATE TABLE IF NOT EXISTS airports (
      id INT64 PRIMARY KEY,
      iata STRING(MAX),
      name STRING(MAX),
      city STRING(MAX),
      country STRING(MAX)
    );
    
  6. 建立 flights 資料表和結構定義:

    CREATE TABLE flights (
      id INT64 NOT NULL,
      airline STRING(10),
      flight_number INT64,
      departure_airport STRING(5),
      arrival_airport STRING(5),
      departure_time TIMESTAMP,
      arrival_time TIMESTAMP,
      departure_gate STRING(10),
      arrival_gate STRING(10)
    ) PRIMARY KEY (id);
    
    

填入 flightsairport 資料表

在本節中,您會使用提供的 SQL 指令碼填入 flightsairports 資料表。

  1. 填入 airports 資料表。

  2. 填入 flights 資料表。

  3. 執行下列查詢,確認資料表已填入資料:

    SELECT * FROM flights LIMIT 10;
    SELECT * FROM airports LIMIT 10;
    

建立資料代理程式

在本節中,您將建立名為 flights-assistant 的資料代理程式。這個服務專員不含任何上傳的服務專員情境。

  1. 在「Explorer」窗格中,點選「資料代理程式」旁邊的「查看動作」
  2. 按一下「建立代理程式」
  3. 在「Name your agent」(為虛擬服務專員命名) 中輸入 flights-assistant
  4. 點選「建立」

在 Studio 中檢查代理

在本節中,您會向 flights-assistant 代理程式提出自然語言問題,代理程式會生成 SQL 查詢。由於代理程式沒有任何背景資訊,即使在提問時提供背景資訊 (例如 nighttime traffic),代理程式仍會產生次佳的查詢。

  1. 在「Explorer」窗格中,點選資料代理程式旁邊的「查看動作」
  2. 按一下「檢查代理程式」
  3. 在查詢編輯器中,點選「Generate SQL using agent: flights-assistant」(使用代理程式生成 SQL:flights-assistant)
  4. 輸入下列自然語言問題來生成 SQL 查詢,然後點選「生成」

    Find flights from SFO to JFK.
    

    查看 SQL 查詢。請注意,對於這個明確的問題,代理程式會生成正確的 SQL 查詢。

      SELECT
        *
      FROM
        flights
      WHERE
        departure_airport = 'SFO'
        AND arrival_airport = 'JFK';
    
  5. 在「使用代理『flights-assistant』生成 SQL 查詢」視窗中,按一下「編輯」

  6. 輸入下列自然語言問題來生成 SQL 查詢,然後按一下「更新」

    Tell me flights that can help me beat nighttime traffic if traveling from New York
    

    資料庫無法解讀「流量」nighttime一詞。這可能會導致系統無法生成 SQL 查詢,或生成忽略該字詞的查詢,如下所示。

    -- The database schema does not contain information about traffic.
    -- Returning all flights departing from New York airports.
    SELECT
      f.airline,
      f.flight_number,
      a.name AS departure_airport_name,
      f.departure_time,
      b.name AS arrival_airport_name,
      f.arrival_time
    FROM
      flights AS f
    JOIN
      airports AS a
      ON f.departure_airport = a.iata
    JOIN
      airports AS b
      ON f.arrival_airport = b.iata
    WHERE
      a.city = 'New York'
    ORDER BY
      f.departure_time;
    

為代理程式生成背景資訊

在本節中,您將建立內容檔案,協助提升代理程式的查詢能力。為解決上一節的問題 (服務專員無法辨識「nighttime traffic」一詞),請在服務專員環境中將該詞定義為 5:00 PM7:00 PM 之間的流量。

如要產生代理程式環境,請按照下列步驟操作:

  1. 在您的本機目錄中安裝 Gemini CLI。詳情請參閱 Gemini CLI 快速入門指南
  2. 安裝 Google Cloud CLI,並設定應用程式預設憑證 (ADC)
  3. 安裝 MCP Toolbox Gemini CLI 擴充功能,連線至資料庫。

    gemini extensions install https://github.com/gemini-cli-extensions/mcp-toolbox
  4. 在安裝 MCP Toolbox 的相同目錄中建立 tools.yaml 設定檔,以設定資料庫連線:

    sources:
      flight-sql-source:
        kind: spanner
        project: PROJECT_ID
        instance: INSTANCE_ID
        database: DATABASE_ID
    
    tools:
      # (Optional) Fetches database schemas for context generation in the bulk generation (/generate_bulk_templates) phase.
      list_flight_schemas_tool:
        kind: spanner-list-tables
        source: flight-spanner-source
        description: Use this tool to list all tables and their schemas in the flight database.
      # (Optional) Executes generated SQL for validation in the bulk generation (/generate_bulk_templates) phase.
      execute_sql_tool:
        kind: spanner-execute-sql
        source: flight-spanner-source
        description: Use this tool to execute SQL against the flight database.
    

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案 ID。
    • INSTANCE_ID:Spanner 執行個體的 ID。
    • DATABASE_ID:要連線的資料庫名稱。
  5. 按照官方安裝指南安裝 uv Python 套件安裝程式,然後執行下列指令,確認安裝成功:

    uv --version
  6. 安裝 DB Context Enrichment MCP 伺服器,其中包含產生內容的工作流程。

    gemini extensions install https://github.com/GoogleCloudPlatform/db-context-enrichment
  7. 將 Gemini API 金鑰匯出為環境變數。如要進一步瞭解如何尋找 API 金鑰,請參閱「使用 Gemini API 金鑰」。

    export GEMINI_API_KEY="YOUR_API_KEY"

    YOUR_API_KEY 替換成您的 Gemini API 金鑰。

  8. 在您建立 tools.yaml 檔案的目錄中啟動 Gemini:

    gemini
  9. 完成 Gemini CLI 驗證設定

  10. 確認 MCP 工具箱和資料庫擴充功能已連線,且可供使用。

    /mcp list
  11. 執行 /generate_targeted_templates 指令並按照工作流程操作:

    /generate_targeted_templates
  12. 在終端機中提供要新增至查詢範本的自然語言查詢。

    Tell me flights that can help me beat nighttime traffic if traveling from New York
  13. 提供要新增至查詢範本的對應 SQL 查詢。這項查詢範本會將 nighttime 這個字詞定義為出現在 5:00 PM7:00 PM 之間。

    SELECT
      f.airline,
      f.flight_number,
      a.name AS airport_name,
      f.departure_time
    FROM
      flights f
    JOIN
      airports a
      ON f.departure_airport = a.iata
    WHERE
      a.city = 'New York'
      AND (
        EXTRACT(HOUR FROM f.departure_time) < 17
        OR EXTRACT(HOUR FROM f.departure_time) >= 19
      )
    ORDER BY
      f.departure_time;
    
  14. 按下 Enter 鍵,Gemini 會將輸入內容轉換為特定格式,提升代理程式在各種使用者查詢中的效能。詳情請參閱「代理程式環境」。

    (選用) 執行 /generate_bulk_templates 工作流程,讓 Gemini CLI 掃描資料庫結構定義並建議相關脈絡,藉此產生更多脈絡。請務必將 list_flight_schemas_toolexecute_sql_tool 都新增至您在步驟 4 中建立的 tools.yaml 設定。

  15. 查看生成的查詢範本。您可以將查詢範本儲存為新的代理程式結構定義檔案,或附加至現有的代理程式結構定義檔案。

  16. 選取建立新代理脈絡檔案的選項。Gemini 會在同一個目錄中建立名為 INSTANCE_ID_DATABASE_ID_context_set_TIMESTAMP.json 的檔案,並加入下列內容:

    {
      "templates": [
        {
          "nl_query": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "sql": "SELECT f.airline, f.flight_number, a.name AS airport_name, f.departure_time FROM flights f JOIN airports a ON f.departure_airport = a.iata WHERE a.city = 'New York' AND (EXTRACT(HOUR FROM f.departure_time) < 17 OR EXTRACT(HOUR FROM f.departure_time) >= 19) ORDER BY f.departure_time;",
          "intent": "Tell me flights that can help me beat nighttime traffic if traveling from New York",
          "manifest": "Tell me flights that can help me beat nighttime traffic if traveling from a given city",
          "parameterized": {
            "parameterized_sql": "SELECT f.airline, f.flight_number, a.name AS airport_name, f.departure_time FROM flights f JOIN airports a ON f.departure_airport = a.iata WHERE a.city = ? AND (EXTRACT(HOUR FROM f.departure_time) < 17 OR EXTRACT(HOUR FROM f.departure_time) >= 19) ORDER BY f.departure_time;",
            "parameterized_intent": "Tell me flights that can help me beat nighttime traffic if traveling from ?"
          }
        }
      ]
    }
    

將脈絡上傳至代理程式

在本節中,您會將代理程式環境定義檔案上傳至資料代理程式,藉此提升代理程式在資料庫中生成 SQL 的能力。

如要上傳內容,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Spanner」頁面。

    前往 Spanner

  2. 從清單中選取執行個體,然後選取資料庫。

  3. 在導覽選單中,按一下「Spanner Studio」

  4. 在「Explorer」窗格中,點選「資料代理程式」旁邊的「查看動作」

  5. 按一下「編輯代理程式」

  6. 選用:編輯代理程式說明

  7. 按一下「Upload agent context file」(上傳代理程式環境檔案) 專區中的「Browse」(瀏覽),然後選取先前產生的代理程式環境檔案。

  8. 按一下 [儲存]

使用代理程式環境生成 SQL 查詢

在本節中,您將使用上傳的代理程式環境檔案,以自然語言提問。這樣一來,您就能確認代理程式是否正確理解並套用「nighttime traffic」等字詞和其他相關詞組的定義。

如要生成 SQL 查詢,請執行下列步驟:

  1. 在「Explorer」窗格中,點選資料代理程式旁邊的「查看動作」
  2. 按一下「檢查代理程式」
  3. 在查詢編輯器中,點選「Generate SQL using agent: flights-assistant」(使用代理程式生成 SQL:flights-assistant)
  4. 輸入下列自然語言問題來生成 SQL 查詢,然後點選「生成」

    Tell me flights that can help me beat nighttime traffic if traveling from New York

    生成的 SQL 查詢大致如下:

    SELECT
      f.airline,
      f.flight_number,
      a.name AS airport_name,
      f.departure_time
    FROM
      flights f
    JOIN
      airports a ON f.departure_airport = a.iata
    WHERE
      a.city = 'New York'
      AND (
        EXTRACT(HOUR FROM f.departure_time) < 17
        OR EXTRACT(HOUR FROM f.departure_time) >= 19
      )
    ORDER BY
      f.departure_time;
    

    這與您新增至資料代理程式脈絡的問題相同。請注意,代理程式現在可以準確解讀「nighttime traffic」一詞。

    雖然背景資訊來自特定問題,但代理程式會使用這些資訊,針對各種類似問題生成更完善的 SQL 查詢。

  5. 在「使用代理『flights-assistant』生成 SQL 查詢」視窗中,按一下「編輯」

  6. 輸入下列類似問題來生成 SQL 查詢,然後按一下「更新」

    What are the flights that can help me avoid evening traffic if departing from Boston

    由於問題將「nighttime traffic」一詞替換為類似的「evening traffic」一詞,因此代理程式會套用相同的解讀方式,針對這個問題提供一致的答案。

    生成的 SQL 查詢大致如下:

    -- What are the flights that can help me avoid evening traffic if departing from Boston
    SELECT
      f.airline,
      f.flight_number,
      a.name AS airport_name,
      f.departure_time
    FROM
      flights f
    JOIN
      airports a
    ON
      f.departure_airport = a.iata
    WHERE
      a.city = 'Boston'
      AND (
        EXTRACT(HOUR FROM f.departure_time) < 17
        OR EXTRACT(HOUR FROM f.departure_time) >= 19
      )
    ORDER BY
      f.departure_time;
    

將代理程式整合至應用程式

在本節中,您將為航班搜尋應用程式建立資料代理程式。這個資料代理程式提供對話式介面,可存取您先前建立的 flightsairports 資料表。本文也說明如何使用 Agent Development Kit (ADK)、Gemini Data Analytics QueryData MCP 工具和代理內容,建立這個代理並整合至應用程式,進而提升回應品質。

  1. 下載 MCP Toolbox 0.24.0 以上版本。MCP Toolbox 會將資料代理公開為工具,供應用程式連線。MCP 工具箱與先前安裝的 MCP Toolbox Gemini CLI 擴充功能不同,後者會產生內容。

  2. 在終端機中,設定您使用的專案。

    gcloud config set project [PROJECT_ID]
  3. 設定應用程式預設憑證 (ADC)

    gcloud auth application-default login
  4. 找出代理程式內容 ID。如要進一步瞭解如何找出內容集 ID,請參閱「找出代理程式內容 ID」。

  5. 使用 MCP 工具箱建立 tools.yaml 設定,連線至資料代理程式。詳情請參閱「Gemini Data Analytics 來源」和 Gemini Data Analytics QueryData 工具。

    sources:
      gda-api-source:
        kind: cloud-gemini-data-analytics
        projectId: "PROJECT_ID"
    
    tools:
      cloud_gda_query_tool:
        kind: cloud-gemini-data-analytics-query
        source: gda-api-source
        description: Use this tool to send natural language queries to the Gemini Data Analytics API and receive SQL, natural language answers, and explanations.
        location: "REGION_ID"
        context:
          datasourceReferences:
            spannerReference:
              databaseReference:
                engine: "GOOGLE_SQL"
                projectId: "PROJECT_ID"
                region: "REGION_ID"
                instanceId: "INSTANCE_ID"
                databaseId: "DATABASE_ID"
              agentContextReference:
                contextSetId: "DATA_AGENT_CONTEXT_SET_ID"
        generationOptions:
          generateQueryResult: true
          generateNaturalLanguageAnswer: true
          generateExplanation: true
          generateDisambiguationQuestion: true
    

    更改下列內容:

    • PROJECT_ID: Google Cloud 專案 ID。
    • REGION_ID:Spanner 執行個體的區域 (例如 us-central1)。
    • INSTANCE_ID:Spanner 執行個體的 ID。
    • DATABASE_ID:要連線的資料庫名稱。
    • DATA_AGENT_CONTEXT_SET_ID:資料代理程式環境設定 ID。
  6. 使用 tools.yaml 檔案執行 MCP Toolbox 伺服器。

    ./toolbox --tools-file "tools.yaml"
  7. 使用 MCP Toolbox 的 Python SDK,建立會叫用 Gemini Data Analytics QueryData 工具的 ADK 應用程式。如要進一步瞭解如何使用 MCP Toolbox 的 Python SDK,請參閱 Toolbox 快速入門導覽課程。如要瞭解 Python ADK,請參閱 ADK 快速入門導覽課程

    1. 建立目錄來儲存應用程式,例如 flight-assistant-app
    2. 將目錄變更為 flight-assistant-app 目錄。

      mkdir flight-assistant-app
      cd flight-assistant-app
    3. flight-assistant-app 目錄下執行下列指令,建立虛擬環境並安裝必要元件。

      python3 -m venv .venv
      source .venv/bin/activate
      pip install toolbox-core
      pip install google-genai
      pip install google-adk
    4. 設定 ADK 代理程式。

      1. 建立 ADK 代理。

        adk create my_agent
      2. 選取「gemini-2.5-flash」模型。

      3. 選取「Google AI」,然後輸入 Gemini API 金鑰。如要進一步瞭解如何找出 API 金鑰,請參閱「使用 Gemini API 金鑰」。

    5. agent.py 檔案的內容,替換成下列 Flight Data Assistant 範例應用程式程式碼。

      from typing import cast
      
      from google.adk.agents.llm_agent import Agent
      from google.adk.agents.llm_agent import ToolUnion
      
      from toolbox_core import ToolboxSyncClient
      
      TOOLBOX_URL = "http://127.0.0.1:5000"
      
      INSTRUCTION = """
      # ROLE
      You are a friendly and factual flight data assistant. Your goal is to help users find the best flights for their needs by providing accurate information with a helpful, professional tone.
      - use the Query Data Tool to answer the user's question, if the tool fails to generate a valid query, ask the user to clarify their question.
      
      # OPERATIONAL CONSTRAINTS
      - TOOL LIMITATION: You only have access to the Query Data Tool. Do not claim to have capabilities beyond what this tool provides.
      - TRANSPARENCY POLICY: Maintain a seamless user experience. Never mention that you are using a tool, querying a database, or generating SQL. Frame all responses as your own direct assistance.
      - SCOPE MANAGEMENT: If a user asks for something beyond your capabilities, politely state that you cannot perform that specific task. Guide the user towards what you can help with.
      
      # COMMUNICATION STYLE
      - Be concise and scannable when listing answers.
      - Maintain a helpful, professional persona.
      
      =====
      
      # QUERY DATA TOOL
      
      Inputs:
      1. query: A natural language formulation of a database query.
      
      Outputs: (all optional)
      1. disambiguation_question: Clarification questions or comments where the tool needs the users' input.
      2. generated_query: The generated query for the user query.
      3. intent_explanation: An explanation for why the tool produced `generated_query`.
      4. query_result: The result of executing `generated_query`.
      5. natural_language_answer: The natural language answer that summarizes the `query` and `query_result`.
      
      Usage guidance:
      1. If `disambiguation_question` is produced, then solicit the needed inputs from the user and try the tool with a new `query` that has the needed clarification.
      2. If `natural_language_answer` is produced, use `intent_explanation` and `generated_query` to see if you need to clarify any assumptions for the user.
      3. If the tool output indicates failure or empty results, explain that clearly using the provided reasoning.
      """
      
      client = ToolboxSyncClient(TOOLBOX_URL)
      
      mcp_tool = client.load_tool("cloud_gda_query_tool")
      
      root_agent = Agent(
          model="gemini-2.5-flash",
          name="root_agent",
          instruction=INSTRUCTION,
          tools=cast(list[ToolUnion], [mcp_tool]),
      )
      
  8. flight-assistant-app 目錄下執行下列指令,啟動應用程式並在 http://127.0.0.1:8000 存取 ADK 網路伺服器。

    adk web --port 8000
  9. 輸入任何文字 (例如 hello),即可開始與服務專員互動。

    ADK 代理程式會回答一般問題,並呼叫所需的 MCP 工具。

  10. 輸入下列與航班相關的問題。

    How many flights depart from the west side?
    

    系統會呼叫 MCP 工具來回答這個問題。不過,由於「the west」一詞模稜兩可,且未指定任何機場,MCP 工具會傳回消歧問題,代理程式會使用該問題建構回應。

    I cannot determine how many flights depart from the 'west side' as the database does not contain information about which airports are considered to be on the 'west side'. However, I can help you with questions like:
    
    1. How many flights depart from a specific airport?
    
    2. What are the departure airports for all flights?
    
    3. How many flights depart from each airport? Would you like to rephrase your question based on these options?
    
  11. 輸入與代理程式產生的查詢範本類似的問題。

    Help me find flights from San Francisco that avoid the evening rush hour.
    

    根據先前新增的代理程式環境,MCP 工具瞭解 evening traffic 發生在下午 5 點到 7 點之間。MCP 工具會傳回相關聯的資料,供代理程式用於建構回覆。

    Here are the flights departing from San Francisco that avoid the evening rush hour (defined as 5 PM to 7 PM):
    
    * UA 1532 departing at 05:50:00
    * UA 1158 departing at 05:57:00
    * CY 922 departing at 06:38:00
    * OO 5441 departing at 07:08:00
    * UA 616 departing at 07:14:00
    * AA 24 departing at 07:14:00
    * B6 434 departing at 08:00:00
    * AA 242 departing at 08:18:00
    * UA 1739 departing at 08:22:00
    * OO 6336 departing at 08:32:00
    * US 1784 departing at 08:47:00
    * DL 1631 departing at 09:00:00
    * DL 1106 departing at 09:06:00
    * OO 5427 departing at 09:06:00
    * CY 352 departing at 09:25:00
    

反覆提升代理程式效能

您可以在 ADK 網頁版 UI 中檢查 Gemini Data Analytics QueryData MCP 工具的要求和回應。您可以透過這項回覆觀察工具回覆,例如生成的 SQL 查詢、結果集、意圖說明、消歧問題和自然語言答案,確認代理的回覆是否正確。

舉例來說,針對您先前輸入的文字 How many flights depart from the west side?,請點選代理程式泡泡。在左側導覽面板的「事件」分頁中,展開 functionResponse 即可查看以下回應。

"{"disambiguationQuestion": ["[NOT_ENOUGH_INFO] The database schema does not
contain information about which airports are on the 'west side'. Therefore, I
cannot determine how many flights depart from the west side.Possible alternative
questions: 1. How many flights depart from a specific airport? 2. What are the
departure airports for all flights? 3. How many flights depart from each
airport?"]}"

提升回覆準確度

您可以新增額外背景資訊,持續提升 Gemini Data Analytics QueryData 工具回覆內容的準確度。使用 Gemini CLI 生成結構定義,然後將更新後的代理程式結構定義上傳至現有的 flights-assistant 代理程式。詳情請參閱「使用 Gemini CLI 建構內容」。上傳新內容後,控制台會立即擷取,讓您提升代理程式的準確度,且應用程式不會停機。

多個代理程式

在開發環境中,您可以為 tools.yaml 檔案中的工具指派不同名稱,對多個代理程式環境執行 A/B 測試。舉例來說,您可以定義兩個名稱不同的 cloud-gemini-data-analytics-query 工具 (例如 cloud_gda_query_tool_v1cloud_gda_query_tool_v2),藉此建立不重複的 tools.yaml 設定。完成這項設定後,您就能實作應用程式邏輯,透過選擇相應的工具名稱,以程式輔助方式選取所需的代理程式環境版本。

以下範例 tools.yaml 說明如何為資料庫來源設定多個代理程式:

sources:
  gda-api-source:
    kind: cloud-gemini-data-analytics
    projectId: "<var>PROJECT_ID</var>"
tools:
  cloud_gda_query_tool_v1:
    kind: cloud-gemini-data-analytics-query
    source: gda-api-source
    context:
      datasourceReferences:
        <var>DB_SOURCE</var>:
          databaseReference: ...
          agentContextReference:
            contextSetId: "V1_YOUR_DATA_AGENT_CONTEXT_SET_ID"
    generationOptions: ...
  cloud_gda_query_tool_v2:
    kind: cloud-gemini-data-analytics-query
    source: gda-api-source
    context:
      datasourceReferences:
        <var>DB_SOURCE</var>:
          databaseReference: ...
          agentContextReference:
            contextSetId: "V2_YOUR_DATA_AGENT_CONTEXT_SET_ID"
    generationOptions: ...

更改下列內容:

  • PROJECT_ID: Google Cloud 專案 ID。
  • V1_YOUR_DATA_AGENT_CONTEXT_SET_ID:版本 1 的資料代理程式環境設定 ID。
  • V2_YOUR_DATA_AGENT_CONTEXT_SET_ID:版本 2 的資料代理程式環境 ID。

清除所用資源

下列各節將說明如何刪除這些資源和物件。

刪除代理程式

刪除執行個體前,請先刪除您建立的代理程式。

  1. 前往 Google Cloud 控制台的「Spanner」頁面。

    前往 Spanner

  2. 從清單中選取執行個體,然後選取資料庫。

  3. 在導覽選單中,按一下「Spanner Studio」

  4. 在「Explorer」窗格中,點選資料代理程式旁邊的「查看動作」

  5. 在「Delete agent」(刪除代理程式) 視窗中,於確認方塊中輸入 flight-assistant

  6. 按一下「確認」

刪除執行個體

刪除「事前準備」一節中建立的執行個體時,您建立的所有物件也會一併刪除。

  1. 前往 Google Cloud 控制台的「Spanner」頁面。

    前往 Spanner

  2. 按一下要刪除的執行個體名稱,例如「Test Instance」

  3. 按一下 [Delete instance] (刪除執行個體)

  4. 輸入執行個體名稱並按一下「刪除」,確認要刪除執行個體。

後續步驟