Sử dụng Cấu hình từ xa phía máy chủ bằng Cloud Functions và Vertex AI

Hướng dẫn này mô tả cách bắt đầu sử dụng thế hệ thứ 2 Hàm đám mây thông qua tính năng Cấu hình từ xa phía máy chủ để tạo phía máy chủ lệnh gọi đến API Gemini của Vertex AI.

Trong hướng dẫn này, bạn sẽ thêm Cấu hình từ xa vào một chức năng giống như bot trò chuyện sử dụng mô hình Gemini để trả lời câu hỏi của người dùng. Cấu hình từ xa sẽ quản lý dữ liệu đầu vào của Gemini API (bao gồm cả câu lệnh mà bạn sẽ thêm vào trước truy vấn đến của người dùng) và bạn có thể cập nhật thông tin đầu vào này theo yêu cầu từ bảng điều khiển của Firebase. Bạn cũng sẽ dùng Bộ công cụ mô phỏng cục bộ của Firebase để kiểm thử và gỡ lỗi hàm này, sau đó sau khi xác minh rằng hàm này hoạt động, bạn sẽ triển khai và thử nghiệm nó trên Google Cloud.

Điều kiện tiên quyết

Hướng dẫn này giả định rằng bạn đã quen thuộc với việc sử dụng JavaScript để phát triển .

Thiết lập dự án Firebase

Nếu bạn chưa có dự án Firebase:

  1. Đăng nhập vào bảng điều khiển của Firebase.

  2. Nhấp vào Create project (Tạo dự án) rồi sử dụng một trong các tuỳ chọn sau:

    • Cách 1: Tạo một dự án Firebase mới (và cơ sở dự án đó) dự án trên Google Cloud) bằng cách nhập tên dự án mới vào bước đầu tiên của "Tạo dự án" quy trình làm việc.
    • Cách 2: "Thêm Firebase" đối với một dự án hiện có trên Google Cloud thông qua chọn tên dự án Google Cloud từ trình đơn thả xuống ở bước đầu tiên của "Tạo dự án" quy trình làm việc.
  3. Khi được nhắc, bạn không cần thiết lập Google Analytics để sử dụng giải pháp này.

  4. Tiếp tục làm theo hướng dẫn trên màn hình để tạo dự án.

Nếu bạn đã có một dự án Firebase:

Tiếp tục chuyển đến phần Định cấu hình môi trường phát triển.

Định cấu hình môi trường phát triển

Bạn cần có một môi trường Node.js để viết các hàm, và bạn sẽ cần Giao diện dòng lệnh (CLI) của Firebase để triển khai các hàm cho Cloud Functions thời gian chạy.

  1. Cài đặt Node.jsnpm.

    Để cài đặt Node.js và npm, bạn nên sử dụng Trình quản lý phiên bản nút.

  2. Cài đặt Firebase CLI bằng cách sử dụng ưu tiên. Ví dụ: để cài đặt CLI bằng npm, hãy chạy lệnh này :

    npm install -g firebase-tools@latest
    

    Lệnh này sẽ cài đặt lệnh firebase có sẵn trên toàn cầu. Nếu trường hợp này không thành công, bạn có thể cần thay đổi quyền npm.

    Để cập nhật lên phiên bản firebase-tools mới nhất, hãy chạy lại lệnh đó.

  3. Cài đặt firebase-functionsfirebase-admin rồi dùng --save để tiết kiệm chúng vào package.json của bạn:

    npm install firebase-functions@latest firebase-admin@latest --save
    

Giờ thì bạn đã sẵn sàng để tiến hành triển khai yêu cầu này. Cloud.

Triển khai

Làm theo các bước sau để tạo, thử nghiệm và triển khai thế hệ thứ 2 Chức năng đám mây có Cấu hình từ xa và Vertex AI:

  1. Bật các API được đề xuất của Vertex AI trong bảng điều khiển Google Cloud.
  2. Khởi chạy dự án và cài đặt các phần phụ thuộc của Nút.
  3. Định cấu hình quyền IAM cho tài khoản dịch vụ SDK quản trị và lưu khoá của bạn.
  4. Tạo hàm.
  5. Tạo mẫu Cấu hình từ xa dành riêng cho máy chủ.
  6. Triển khai hàm và kiểm thử trong Bộ mô phỏng cục bộ của Firebase
  7. Triển khai chức năng trên Google Cloud.

Bước 1: Bật các API được đề xuất của Vertex AI trong bảng điều khiển của Google Cloud

  1. Mở bảng điều khiển Google Cloud và khi được nhắc, hãy chọn dự án của bạn.
  2. Trong trường Tìm kiếm ở đầu bảng điều khiển, hãy nhập Vertex AI và chờ Vertex AI xuất hiện.
  3. Chọn Vertex AI. Trang tổng quan của Vertex AI sẽ xuất hiện.
  4. Nhấp vào Bật tất cả API được đề xuất.

    Quá trình bật API có thể mất vài phút để hoàn tất. Giữ lại trang này đang hoạt động và mở cho đến khi quá trình bật kết thúc.

  5. Nếu tính năng thanh toán chưa được bật, bạn sẽ được nhắc thêm hoặc liên kết Tài khoản thanh toán Cloud. Sau khi bật tài khoản thanh toán, hãy quay lại Trang tổng quan Vertex AI và xác minh rằng bạn đã bật tất cả API được đề xuất.

Bước 2: Khởi chạy dự án và cài đặt các phần phụ thuộc Nút

  1. Mở cửa sổ dòng lệnh trên máy tính và chuyển đến thư mục mà bạn sử dụng để tạo hàm của bạn.
  2. Đăng nhập vào Firebase:

    firebase login
    
  3. Chạy lệnh sau để khởi chạy Cloud Functions cho Firebase:

    firebase init functions
    
  4. Chọn Use an existing project (Sử dụng dự án hiện có) rồi chỉ định mã dự án của bạn.

  5. Khi được nhắc chọn ngôn ngữ để sử dụng, hãy chọn JavaScript rồi nhấn Nhập.

  6. Đối với tất cả các lựa chọn khác, hãy chọn chế độ mặc định.

    Một thư mục functions được tạo trong thư mục hiện tại. Bên trong, bạn sẽ tìm một tệp index.js mà bạn sẽ dùng để tạo hàm, một thư mục node_modules chứa các phần phụ thuộc của hàm, và một tệp package.json chứa các phần phụ thuộc của gói.

  7. Thêm SDK dành cho quản trị viên và các gói Vertex AI bằng cách chạy bằng cách sử dụng --save để đảm bảo rằng nội dung này được lưu vào Tệp package.json:

    cd functions
    npm install firebase-admin@latest @google-cloud/vertexai --save
    

Bây giờ, tệp functions/package.json của bạn sẽ có dạng như sau, với phần tử phiên bản mới nhất được chỉ định:

  {
    "name": "functions",
    "description": "Cloud Functions for Firebase",
    "scripts": {
      "serve": "firebase emulators:start --only functions",
      "shell": "firebase functions:shell",
      "start": "npm run shell",
      "deploy": "firebase deploy --only functions",
      "logs": "firebase functions:log"
    },
    "engines": {
      "node": "20"
    },
    "main": "index.js",
    "dependencies": {
      "@google-cloud/vertexai": "^1.1.0",
      "firebase-admin": "^12.1.0",
      "firebase-functions": "^5.0.0"
    },
    "devDependencies": {
      "firebase-functions-test": "^3.1.0"
    },
    "private": true
  }

Lưu ý rằng nếu bạn đang sử dụng ESLint, bạn sẽ thấy một thông báo có chứa ngôn ngữ này. Ngang bằng hãy đảm bảo rằng phiên bản công cụ nút khớp với phiên bản đã cài đặt của Node.js và phiên bản mà bạn chạy trên Google Cloud. Ví dụ: nếu khổ engines trong package.json của bạn được định cấu hình là Nút phiên bản 18 và bạn đang dùng Node.js 20, hãy cập nhật tệp này để sử dụng 20:

  "engines": {
    "node": "20"
  },

Bước 3: Thiết lập quyền quản lý danh tính và quyền truy cập (IAM) cho tài khoản dịch vụ SDK dành cho quản trị viên và lưu khoá của bạn

Trong giải pháp này, bạn sẽ sử dụng tài khoản dịch vụ SDK Quản trị của Firebase để chạy chức năng của bạn.

  1. Trong bảng điều khiển Google Cloud, hãy mở IAM và quản trị, rồi tìm tài khoản dịch vụ SDK dành cho quản trị viên (có tên là firebase-adminsdk).
  2. Chọn tài khoản và nhấp vào Chỉnh sửa tài khoản chính. Trang Chỉnh sửa quyền truy cập sẽ xuất hiện.
  3. Nhấp vào Thêm vai trò khác, chọn Người xem cấu hình từ xa.
  4. Nhấp vào Thêm vai trò khác, chọn Nhà phát triển nền tảng AI.
  5. Nhấp vào Thêm vai trò khác, chọn Người dùng Vertex AI.
  6. Nhấp vào Add another role (Thêm vai trò khác), chọn Cloud Run Invoker (Trình thu thập thông tin trên Cloud Run).
  7. Nhấp vào Lưu.

Tiếp theo, hãy xuất thông tin đăng nhập cho tài khoản dịch vụ SDK dành cho quản trị viên và lưu các thông tin đó trong biến môi trường GOOGLE_APPLICATION_CREDENTIALS.

  1. Trong bảng điều khiển Google Cloud, hãy mở Trang Thông tin đăng nhập.
  2. Nhấp vào tài khoản dịch vụ SDK dành cho quản trị viên để mở trang Chi tiết.
  3. Nhấp vào Khoá.
  4. Nhấp vào Thêm khoá > Tạo khoá mới.
  5. Đảm bảo rằng bạn đã chọn JSON làm Loại khoá, sau đó nhấp vào Tạo.
  6. Tải khoá này xuống một nơi an toàn trên máy tính của bạn.
  7. Trên cửa sổ dòng lệnh, hãy xuất khoá dưới dạng một biến môi trường:

    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/your/service-account-key.json"
    

Bước 4: Tạo hàm

Ở bước này, bạn sẽ xây dựng một hàm xử lý hoạt động đầu vào của người dùng và tạo Phản hồi dựa trên AI. Bạn sẽ kết hợp nhiều đoạn mã để tạo chức năng toàn diện khởi chạy SDK dành cho quản trị viên và Vertex AI Gemini API định cấu hình các tham số mặc định bằng cách sử dụng Cấu hình từ xa, tìm nạp các quy trình, thông số Cấu hình từ xa mới nhất hoạt động đầu vào của người dùng và truyền trực tuyến phản hồi cho người dùng.

  1. Trong cơ sở mã của bạn, hãy mở functions/index.js trong trình chỉnh sửa văn bản hoặc IDE.
  2. Xoá nội dung hiện có, sau đó thêm SDK dành cho quản trị viên, Cấu hình từ xa và Vertex AI SDK, đồng thời khởi động ứng dụng bằng dán mã sau vào tệp:

    const { onRequest } = require("firebase-functions/v2/https");
    const logger = require("firebase-functions/logger");
    
    const { initializeApp } = require("firebase-admin/app");
    const { VertexAI } = require('@google-cloud/vertexai');
    const { getRemoteConfig } = require("firebase-admin/remote-config");
    
    // Set and check environment variables.
    const project = process.env.GCLOUD_PROJECT;
    
    // Initialize Firebase.
    const app = initializeApp();
    
  3. Định cấu hình các giá trị mặc định mà hàm của bạn sẽ sử dụng nếu hàm không kết nối được máy chủ Cấu hình từ xa. Giải pháp này định cấu hình textModel, generationConfig, safetySettings, textPromptlocation dưới dạng Thông số Cấu hình từ xa tương ứng với Cấu hình từ xa mà bạn sẽ định cấu hình thêm trong hướng dẫn này. Để biết thêm thông tin về các thông số này, hãy xem Ứng dụng Node.js của Vertex AI.

    Nếu muốn, bạn cũng có thể định cấu hình một thông số để kiểm soát việc bạn truy cập vào Vertex AI Gemini API (trong ví dụ này, một tham số có tên là vertex_enabled). Chế độ thiết lập này có thể hữu ích khi kiểm thử chức năng của bạn. Ngang bằng các đoạn mã sau, giá trị này được đặt thành false, nên giá trị này sẽ bỏ qua bằng Vertex AI trong khi kiểm thử hoạt động triển khai hàm cơ bản. Đang đặt thành true sẽ gọi Vertex AI Gemini API.

    // Define default (fallback) parameter values for Remote Config.
    const defaultConfig = {
    
      // Default values for Vertex AI.
      model_name: "gemini-1.5-flash-preview-0514",
      generation_config: [{
        "stopSequences": [], "temperature": 0.7,
        "maxOutputTokens": 64, "topP": 0.1, "topK": 20
      }],
      prompt: "I'm a developer who wants to learn about Firebase and you are a \
        helpful assistant who knows everything there is to know about Firebase!",
      safety_settings: [{
        "category":
          "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT",
        "threshold": "HarmBlockThreshold.BLOCK_MEDIUM_AND_ABOVE"
      }],
      location: 'us-central1',
    
      // Disable Vertex AI Gemini API access for testing.
      vertex_enabled: false
    };
    
  4. Tạo hàm và thiết lập Cấu hình từ xa phía máy chủ:

    // Export the function.
    exports.generateWithVertex = onRequest(async (request, response) => {
    
      try {
    
        // Set up Remote Config.
        const rc = getRemoteConfig(app);
    
        // Get the Remote Config template and assign default values.
        const template = await rc.getServerTemplate({
          defaultConfig: defaultConfig
        });
    
        // Add the template evaluation to a constant.
        const config = template.evaluate();
    
        // Obtain values from Remote Config.
        const textModel = config.getString("model_name") ||
            defaultConfig.model_name;
        const textPrompt = config.getString("prompt") || defaultConfig.prompt;
        const generationConfig = config.getString("generation_config") ||
            defaultConfig.generation_config;
        const safetySettings = config.getString("safety_settings") ||
            defaultConfig.safety_settings;
        const location = config.getString("location") ||
            defaultConfig.location;
        const vertexEnabled = config.getBoolean("is_vertex_enabled") ||
            defaultConfig.vertex_enabled;
    
  5. Thiết lập Vertex AI rồi thêm logic trò chuyện và phản hồi:

      // Allow user input.
      const userInput = request.query.prompt || '';
    
      // Instantiate Vertex AI.
        const vertex_ai = new VertexAI({ project: project, location: location });
        const generativeModel = vertex_ai.getGenerativeModel({
          model: textModel,
          safety_settings: safetySettings,
          generation_config: generationConfig,
        });
    
        // Combine prompt from Remote Config with optional user input.
        const chatInput = textPrompt + " " + userInput;
    
        if (!chatInput) {
          return res.status(400).send('Missing text prompt');
        }
        // If vertexEnabled isn't true, do not send queries to Vertex AI.
        if (vertexEnabled !== true) {
          response.status(200).send({
            message: "Vertex AI call skipped. Vertex is not enabled."
          });
          return;
        }
    
        logger.log("\nRunning with model ", textModel, ", prompt: ", textPrompt,
          ", generationConfig: ", generationConfig, ", safetySettings: ",
          safetySettings, " in ", location, "\n");
    
        const result = await generativeModel.generateContentStream(chatInput); 
        response.writeHead(200, { 'Content-Type': 'text/plain' });
    
        for await (const item of result.stream) {
          const chunk = item.candidates[0].content.parts[0].text;
          logger.log("Received chunk:", chunk);
          response.write(chunk);
        }
    
        response.end();
    
      } catch (error) {
        logger.error(error);
        response.status(500).send('Internal server error');
      }
    });
    
  6. Lưu và đóng tệp.

Bước 5: Tạo mẫu Cấu hình từ xa dành riêng cho máy chủ

Tiếp theo, hãy tạo mẫu Cấu hình từ xa phía máy chủ và định cấu hình các thông số và các giá trị để sử dụng trong hàm. Để tạo một máy chủ cụ thể Mẫu Cấu hình từ xa:

  1. Mở bảng điều khiển của Firebase, rồi mở rộng từ trình đơn điều hướng Run (Chạy) rồi chọn Cấu hình từ xa.
  2. Chọn Máy chủ trong bộ chọn Ứng dụng/Máy chủ ở phía trên cùng Cấu hình từ xa.

    • Nếu đây là lần đầu tiên bạn sử dụng Cấu hình từ xa hoặc mẫu máy chủ, nhấp vào Tạo cấu hình. Mã Tạo phía máy chủ đầu tiên của bạn sẽ xuất hiện.
    • Nếu đây không phải là lần đầu tiên bạn sử dụng mẫu máy chủ Cấu hình từ xa, nhấp vào Thêm thông số.
  3. Xác định các thông số Cấu hình từ xa sau:

    Tên thông số Nội dung mô tả Loại Giá trị mặc định
    model_name Tên mô hình
    Để biết danh sách mới nhất về tên mô hình để sử dụng trong mã của bạn, hãy xem Mẫu phiên bản và vòng đời hoặc Có sẵn tên mô hình.
    Chuỗi gemini-1.5-pro-preview-0514
    prompt Lời nhắc thêm vào trước truy vấn của người dùng. Chuỗi I'm a developer who wants to learn about Firebase and you are a helpful assistant who knows everything there is to know about Firebase!
    generation_config Tham số gửi cho mô hình. JSON [{"stopSequences": ["I hope this helps"],"temperature": 0.7,"maxOutputTokens": 512, "topP": 0.1,"topK": 20}]
    safety_settings An toàn cho Vertex AI. JSON [{"category": "HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "HarmBlockThreshold.BLOCK_LOW_AND_ABOVE"}]
    location Vị trí để chạy dịch vụ và mô hình Vertex AI. Chuỗi us-central1
    is_vertex_enabled Tham số không bắt buộc kiểm soát việc liệu các truy vấn có được gửi đến hay không Vertex AI. Boolean true
  4. Sau khi bạn thêm xong các thông số, hãy kiểm tra kỹ các thông số và để đảm bảo loại dữ liệu chính xác, rồi nhấp vào Xuất bản các thay đổi.

Bước 6: Triển khai và kiểm thử hàm trong Bộ công cụ mô phỏng cục bộ của Firebase

Bây giờ, bạn đã sẵn sàng triển khai và kiểm thử cục bộ chức năng của mình bằng Bộ mô phỏng cục bộ của Firebase.

  1. Hãy đảm bảo rằng bạn đã đặt GOOGLE_APPLICATION_CREDENTIALS làm môi trường biến như mô tả trong Bước 3: Định cấu hình quyền IAM cho tài khoản dịch vụ SDK dành cho quản trị viên và lưu . Sau đó, từ thư mục mẹ của thư mục functions, hãy triển khai hàm của bạn vào Trình mô phỏng Firebase:

    firebase emulators:start --project PROJECT_ID --only functions
    
  2. Mở nhật ký của trình mô phỏng . Điều này sẽ cho thấy rằng hàm của bạn đã được tải.

  3. Truy cập hàm của bạn bằng cách chạy lệnh sau, trong đó PROJECT_ID là mã dự án của bạn và LOCATION là khu vực mà bạn đã triển khai để (ví dụ: us-central1):

    curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex
    
  4. Đợi phản hồi, sau đó quay lại trang nhật ký của Trình mô phỏng Firebase hoặc bảng điều khiển và kiểm tra xem có lỗi hoặc cảnh báo nào không.

  5. Hãy thử gửi một số hoạt động đầu vào của người dùng, lưu ý rằng vì is_vertex_enabled là đã định cấu hình trong mẫu máy chủ Cấu hình từ xa của mình, thì tính năng này sẽ truy cập Gemini thông qua Vertex AI Gemini API và việc này có thể phải chịu phí:

    curl http://localhost:5001/PROJECT_ID/LOCATION/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20cats
    
  6. Thực hiện các thay đổi đối với mẫu máy chủ Cấu hình từ xa trên bảng điều khiển của Firebase, sau đó truy cập lại vào hàm của bạn để quan sát các thay đổi.

Bước 7: Triển khai chức năng trên Google Cloud

Sau khi kiểm thử và xác minh chức năng, bạn đã sẵn sàng triển khai Google Cloud và kiểm thử chức năng trực tiếp.

Triển khai hàm

Triển khai hàm bằng giao diện dòng lệnh (CLI) của Firebase:

firebase deploy --only functions

Chặn quyền truy cập khi chưa xác thực vào hàm này

Khi các hàm được triển khai bằng Firebase, các lệnh gọi chưa được xác thực sẽ được phép theo mặc định nếu chính sách của tổ chức bạn không hạn chế việc này. Trong quá trình thử nghiệm và trước khi bảo mật bằng tính năng Kiểm tra ứng dụng, chúng tôi bạn nên chặn quyền truy cập không được xác thực.

Cách chặn quyền truy cập khi chưa xác thực vào hàm:

  1. Trong bảng điều khiển Google Cloud, hãy mở Cloud Run.

  2. Nhấp vào generateWithVertex, rồi nhấp vào thẻ Security (Bảo mật).

  3. Bật tuỳ chọn Yêu cầu xác thực rồi nhấp vào Lưu.

Định cấu hình tài khoản người dùng để sử dụng thông tin đăng nhập tài khoản dịch vụ SDK dành cho quản trị viên

Bởi vì tài khoản dịch vụ SDK dành cho quản trị viên có tất cả các vai trò cần thiết và quyền chạy hàm và tương tác với Cấu hình từ xa cũng như Vertex AI Gemini API, bạn nên dùng API này để chạy hàm của mình. Việc cần làm di chuyển, bạn phải có thể tạo mã thông báo cho tài khoản từ tài khoản người dùng của mình.

Các bước sau đây mô tả cách định cấu hình tài khoản người dùng và chức năng để chạy bằng đặc quyền đối với tài khoản dịch vụ SDK dành cho quản trị viên.

  1. Trong bảng điều khiển Google Cloud, hãy bật API thông tin xác thực tài khoản dịch vụ IAM.
  2. Chỉ định vai trò Người tạo mã thông báo tài khoản dịch vụ cho tài khoản người dùng của bạn: Từ Bảng điều khiển Google Cloud, mở IAM và Quản trị > IAM, chọn người dùng của bạn tài khoản, rồi nhấp vào Chỉnh sửa tài khoản chính > Thêm vai trò khác.
  3. Chọn Trình tạo mã thông báo cho tài khoản dịch vụ, rồi nhấp vào Lưu.

    Để biết thêm thông tin chi tiết về việc mạo danh tài khoản dịch vụ, hãy tham khảo Tài khoản dịch vụ mạo danh trong tài liệu của Google Cloud.

  4. Mở trang Cloud Functions của bảng điều khiển Google Cloud rồi nhấp vào hàm generateWithVertex trong danh sách Functions.

  5. Chọn Trình kích hoạt > Chỉnh sửa và mở rộng Thời gian chạy, bản dựng, kết nối và cài đặt bảo mật.

  6. Trên thẻ Thời gian chạy, hãy thay đổi Tài khoản dịch vụ thời gian chạy thành Tài khoản SDK dành cho quản trị viên.

  7. Nhấp vào Next (Tiếp theo), rồi nhấp vào Deploy (Triển khai).

Thiết lập giao diện dòng lệnh (CLI) của gcloud

Để chạy và kiểm thử hàm một cách an toàn từ dòng lệnh, bạn cần xác thực bằng dịch vụ Cloud Functions và nhận được gói mã xác thực.

Để bật tính năng tạo mã thông báo, hãy cài đặt và định cấu hình giao diện dòng lệnh (CLI) của gcloud:

  1. Nếu bạn chưa cài đặt trên máy tính, hãy cài đặt gcloud CLI dưới dạng như mô tả trong bài viết Cài đặt gcloud Giao diện dòng lệnh (CLI).

  2. Lấy thông tin đăng nhập cho tài khoản Google Cloud của bạn:

    gcloud auth login
    
  3. Đặt mã dự án trong gcloud:

    gcloud config set project PROJECT_ID
    

Kiểm thử hàm

Giờ đây, bạn đã sẵn sàng kiểm tra chức năng của mình trong Google Cloud. Để kiểm tra hàm này, chạy lệnh sau:

curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex \
  -H "Authorization: bearer $(gcloud auth print-identity-token)" \
  -H "Content-Type: application/json"

Hãy thử lại với dữ liệu do người dùng cung cấp:

curl -X POST https://LOCATION-PROJECT_ID.cloudfunctions.net/generateWithVertex?prompt=Tell%20me%20everything%20you%20know%20about%20dogs \
 -H "Authorization: bearer $(gcloud auth print-identity-token)" \
 -H "Content-Type: application/json"

Bạn hiện có thể thay đổi mẫu máy chủ Cấu hình từ xa, xuất bản những thay đổi đó và thử nghiệm các tuỳ chọn khác nhau.

Các bước tiếp theo