Cách triển khai OpenClaw trên các phiên bản Cloud Run

1. Giới thiệu

Tổng quan

Trong phòng thí nghiệm này, bạn sẽ triển khai một phiên bản hoàn toàn liên tục và bảo mật của OpenClaw (một khung tác nhân AI nguồn mở) vào Các phiên bản Cloud Run. Bạn sẽ tương tác trực tiếp với tác nhân AI bằng Giao diện người dùng web tích hợp của OpenClaw (có thể kết nối các kênh nhắn tin như Telegram hoặc WhatsApp), sao lưu không gian làm việc chính bằng Google Cloud Storage và quản lý thông tin đăng nhập API một cách an toàn bằng Google Cloud Secret Manager.

Trước khi bắt đầu, bạn có thể khám phá Tài liệu về OpenClaw để làm quen với cấu trúc, các công cụ và quy trình làm việc của tác nhân OpenClaw.

Bạn sẽ thực hiện

  • Bật các Cloud APIs bắt buộc của Google Cloud và tạo một tài khoản dịch vụ chuyên dụng có các quyền IAM bắt buộc.
  • Lưu trữ khoá API và mật khẩu cổng một cách an toàn trong Secret Manager.
  • Chuẩn bị một tệp cấu hình openclaw.json có chế độ cài đặt mô hình Gemini và giao diện người dùng cổng được bật.
  • Chuẩn bị một bộ chứa Cloud Storage để duy trì trạng thái vùng chứa.
  • Triển khai OpenClaw bằng gcloud beta run instances deploy.
  • Tương tác trực tiếp với tác nhân AI OpenClaw bằng giao diện người dùng web tích hợp sẵn.
  • (Không bắt buộc) Định cấu hình một kênh nhắn tin (Telegram hoặc WhatsApp).
  • (Không bắt buộc) Mở rộng các chức năng của trợ lý bằng cách thêm Kỹ năng tuỳ chỉnh vào Cloud Storage.

Kiến thức bạn sẽ học được

  • Cách triển khai OpenClaw cho các phiên bản Cloud Run bằng Giao diện người dùng web điều khiển tích hợp.
  • Cách gắn bộ chứa Cloud Storage vào các phiên bản Cloud Run.
  • Cách chèn các bí mật của Secret Manager một cách an toàn dưới dạng biến môi trường vào Cloud Run.
  • Cách chạy các khối lượng công việc tác nhân liên tục, chạy trong thời gian dài trên Cloud Run Instances.
  • Cách định cấu hình và tải các kỹ năng tuỳ chỉnh của trợ lý lên Cloud Storage.

2. Thiết lập và yêu cầu

Thiết lập dự án GCP

  1. Đăng nhập vào Google Cloud Console.
  2. Tạo hoặc chọn một dự án trên Google Cloud.
  3. Đảm bảo bạn đã bật tính năng thanh toán cho dự án trên đám mây của mình trên Google Cloud.

Mở Cloud Shell

Kích hoạt Google Cloud Shell từ thanh công cụ trên cùng của Cloud Console.

Thiết lập dự án và cài đặt gcloud beta

Trước tiên, hãy đặt dự án và khu vực của bạn làm biến môi trường.

export PROJECT_ID=<YOUR_PROJECT_ID>
export REGION=<YOUR_REGION>

Bây giờ, hãy thiết lập dự án và xác nhận.

gcloud config set project $PROJECT_ID
gcloud config get project

Đảm bảo bạn đã cài đặt thành phần beta cho gcloud beta run instances:

gcloud components install beta --quiet

Đồng thời, hãy đảm bảo gcloud của bạn đã được cập nhật.

gcloud components update

Bật các API bắt buộc của Google Cloud

Trong Cloud Shell, hãy bật Cloud Run, Secret Manager, Cloud Storage và Gemini API:

gcloud services enable \
  run.googleapis.com \
  secretmanager.googleapis.com \
  storage.googleapis.com \
  generativelanguage.googleapis.com \
  compute.googleapis.com

3. (Không bắt buộc) Thiết lập tính năng tích hợp nhắn tin (Telegram hoặc WhatsApp)

Bạn có thể kết nối OpenClaw với Telegram hoặc WhatsApp. Chọn Lựa chọn A hoặc Lựa chọn B bên dưới.

Lựa chọn A: Thiết lập bot Telegram

  1. Mở Telegram rồi tìm @BotFather.
  2. Gửi lệnh /newbot và làm theo lời nhắc để chỉ định tên và tên người dùng của bot.
  3. Sao chép Mã thông báo HTTP API đã tạo (ví dụ: 123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ).
  4. Tìm @userinfobot trên Telegram, gửi /start và sao chép Mã nhận dạng người dùng bằng số (ví dụ: 8035936176).

Cách B: Thiết lập WhatsApp

  1. Lấy số điện thoại WhatsApp cá nhân của bạn ở định dạng quốc tế, không có dấu cách hoặc ký hiệu (ví dụ: +15551234567).
  2. OpenClaw kết nối thông qua chính sách danh sách cho phép kênh WhatsApp.

4. Tạo Tài khoản dịch vụ chuyên dụng

Để tuân thủ nguyên tắc về đặc quyền tối thiểu, hãy tạo một tài khoản dịch vụ IAM chuyên dụng cho OpenClaw:

export SERVICE_ACCOUNT_NAME="openclaw-sa"
gcloud iam service-accounts create ${SERVICE_ACCOUNT_NAME} \
  --display-name="OpenClaw Service Account"

export SERVICE_ACCOUNT="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"

5. Lưu trữ thông tin đăng nhập trong Secret Manager

Chúng tôi sẽ lưu trữ thông tin xác thực API nhạy cảm trong Google Cloud Secret Manager để Cloud Run có thể chèn thông tin đó một cách an toàn vào vùng chứa tại thời điểm khởi động.

1. Lấy và lưu trữ khoá Gemini API

  1. Truy cập vào Google AI Studio rồi đăng nhập bằng Tài khoản Google của bạn.
  2. Nhấp vào Tạo khoá API rồi chọn dự án trên đám mây của bạn (${PROJECT_ID}).
  3. Sao chép khoá API đã tạo.

Lưu khoá API trong Secret Manager và cấp quyền truy cập cho tài khoản dịch vụ:

echo -n "YOUR_GEMINI_API_KEY" | gcloud secrets create gemini-api-key \
  --data-file=- \
  --replication-policy="automatic"

gcloud secrets add-iam-policy-binding gemini-api-key \
  --member="serviceAccount:${SERVICE_ACCOUNT}" \
  --role="roles/secretmanager.secretAccessor"

2. Tạo và lưu trữ mật khẩu cổng

Để bảo vệ phiên bản OpenClaw có thể truy cập công khai, hãy tạo một mật khẩu ngẫu nhiên an toàn và lưu trữ mật khẩu đó trong Secret Manager:

export OPENCLAW_GATEWAY_PASSWORD=$(openssl rand -hex 16)
echo "Generated Gateway Password: ${OPENCLAW_GATEWAY_PASSWORD}"

echo -n "${OPENCLAW_GATEWAY_PASSWORD}" | gcloud secrets create openclaw-gateway-password \
  --data-file=- \
  --replication-policy="automatic"

gcloud secrets add-iam-policy-binding openclaw-gateway-password \
  --member="serviceAccount:${SERVICE_ACCOUNT}" \
  --role="roles/secretmanager.secretAccessor"

3. (Không bắt buộc) Tạo khoá bí mật của kênh (Telegram hoặc WhatsApp)

  • Đối với Telegram:
    echo -n "YOUR_TELEGRAM_BOT_TOKEN" | gcloud secrets create telegram-bot-token \
      --data-file=- \
      --replication-policy="automatic"
    
    gcloud secrets add-iam-policy-binding telegram-bot-token \
      --member="serviceAccount:${SERVICE_ACCOUNT}" \
      --role="roles/secretmanager.secretAccessor"
    
  • Đối với WhatsApp:
    echo -n "YOUR_WHATSAPP_TOKEN_OR_KEY" | gcloud secrets create whatsapp-token \
      --data-file=- \
      --replication-policy="automatic"
    
    gcloud secrets add-iam-policy-binding whatsapp-token \
      --member="serviceAccount:${SERVICE_ACCOUNT}" \
      --role="roles/secretmanager.secretAccessor"
    

6. Chuẩn bị bộ chứa Cloud Storage và cấu hình openclaw.json

OpenClaw yêu cầu một tệp cấu hình có tên là openclaw.json tại /home/node/.openclaw/openclaw.json.

  1. Tạo bộ chứa Cloud Storage và cấp quyền truy cập:
    export BUCKET_NAME="openclaw-state-${PROJECT_ID}"
    gcloud storage buckets create gs://${BUCKET_NAME} --location=${REGION}
    
    gcloud storage buckets add-iam-policy-binding gs://${BUCKET_NAME} \
      --member="serviceAccount:${SERVICE_ACCOUNT}" \
      --role="roles/storage.objectUser"
    
  2. Tạo openclaw.json: Tạo một tệp có tên là openclaw.json trong Cloud Shell. Cập nhật phần channels cho phù hợp với kênh bạn chọn (Telegram hoặc WhatsApp):
    {
      "gateway": {
        "mode": "local",
        "port": 18789,
        "trustedProxies": ["0.0.0.0/0"],
        "bind": "lan",
        "auth": {
          "password": "${OPENCLAW_GATEWAY_PASSWORD}"
        },
        "controlUi": {
          "dangerouslyDisableDeviceAuth": true,
          "allowedOrigins": ["*"],
          "enabled": true
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "google/gemini-3.1-pro-preview"
          },
          "sandbox": {
            "mode": "off"
          }
        }
      },
      "channels": {
        "telegram": {
          "enabled": true,
          "defaultAccount": "default",
          "accounts": {
            "default": {
              "enabled": true,
              "dmPolicy": "allowlist",
              "allowFrom": [
                "YOUR_TELEGRAM_USER_ID"
              ]
            }
          }
        },
        "whatsapp": {
          "enabled": false,
          "defaultAccount": "default",
          "accounts": {
            "default": {
              "enabled": false,
              "dmPolicy": "allowlist",
              "allowFrom": [
                "+15551234567"
              ]
            }
          }
        }
      },
      "plugins": {
        "entries": {
          "google": { "enabled": true },
          "telegram": { "enabled": true },
          "whatsapp": { "enabled": false }
        }
      }
    }
    
  3. Tải openclaw.json lên Thư mục gốc của bộ chứa Cloud Storage:
    gcloud storage cp openclaw.json gs://${BUCKET_NAME}/openclaw.json
    
    Xác minh bố cục bộ chứa Cloud Storage:Xác nhận rằng cấu trúc bộ chứa của bạn có chứa openclaw.json ở thư mục gốc:
    gs://${BUCKET_NAME}/
    └── openclaw.json
    

7. Triển khai OpenClaw trên các phiên bản Cloud Run

Triển khai OpenClaw bằng gcloud beta run instances deploy:

gcloud beta run instances deploy openclaw-instance \
  --image ghcr.io/openclaw/openclaw:2026.7.1 \
  --service-account ${SERVICE_ACCOUNT} \
  --port 18789 \
  --cpu 4 \
  --memory 4Gi \
  --public \
  --add-volume mount-path=/home/node/.openclaw,type=cloud-storage,mount-options="uid=1000;gid=1000;file-mode=0700;dir-mode=0700",bucket=${BUCKET_NAME} \
  --set-secrets GEMINI_API_KEY=gemini-api-key:latest,OPENCLAW_GATEWAY_PASSWORD=openclaw-gateway-password:latest \
  --region ${REGION}

Phân tích tham số chính:

  • --image ghcr.io/openclaw/openclaw:2026.7.1: Hình ảnh vùng chứa OpenClaw (được ghim vào 2026.7.1, bản phát hành ổn định 1.x mới nhất).
  • --service-account ...: Đính kèm tài khoản dịch vụ openclaw-sa chuyên dụng.
  • --add-volume ...: Gắn trực tiếp bộ chứa Cloud Storage vào /home/node/.openclaw. Việc sử dụng file-mode=0700;dir-mode=0700 đảm bảo OpenClaw có các quyền thích hợp.
  • --set-secrets ...: Chèn thông tin đăng nhập trực tiếp từ Secret Manager vào các biến môi trường. (Không bắt buộc: Nếu bạn đã định cấu hình Telegram trong các bước không bắt buộc, hãy thêm ,TELEGRAM_BOT_TOKEN=telegram-bot-token:latest vào --set-secrets.)
  • --public: Cho phép truy cập công khai vào URL.

8. Tương tác trực tiếp thông qua giao diện người dùng web OpenClaw

OpenClaw có một Giao diện người dùng web điều khiển tích hợp sẵn, cho phép bạn quản lý và trò chuyện với tác nhân AI ngay từ trình duyệt:

  1. Lấy URL của phiên bản Cloud Run: Trong Cloud Shell, hãy chạy lệnh:
    gcloud beta run instances describe openclaw-instance \
      --region ${REGION} \
      --format="value(status.urls[0])"
    
  2. Truy cập vào giao diện người dùng OpenClaw Control:
    • Mở URL đầu ra trong trình duyệt web.
    • Khi được nhắc xác thực trong Giao diện người dùng của OpenClaw Control, hãy làm như sau:
      • Nhập mật khẩu cổng (${OPENCLAW_GATEWAY_PASSWORD}) được tạo từ Secret Manager.
      • Nếu phương thức đăng nhập hiển thị các trường Tên người dùngMật khẩu riêng biệt, hãy để trống trường tên người dùng (hoặc nhập admin) và cung cấp ${OPENCLAW_GATEWAY_PASSWORD} trong trường mật khẩu.
  3. Đưa ra câu lệnh cho Trợ lý ảo (Các trường hợp đang hoạt động):
    • Sau khi xác thực, bạn sẽ thấy Trang tổng quan điều khiển OpenClaw.
    • Kiểm thử tác nhân OpenClaw bằng cách gửi một câu lệnh trong giao diện người dùng trò chuyện, chẳng hạn như "Xin chào".
    • Để kiểm thử vòng đời kéo dài của phiên bản Cloud Run, bạn có thể nhắc tác nhân OpenClaw thực hiện một tác vụ phức tạp hơn và kéo dài hơn. Ví dụ: bạn có thể yêu cầu Gemini theo dõi một nguồn cấp tin tức hoặc thị trường chứng khoán và tạo báo cáo:
      Track the USD-to-EUR exchange rate every 15 minutes for the next 24 hours, while also checking for any recent news updates in the US or the EU that may have an impact on the exchange rate. Generate an end-of-day report for me in this chat that tells me what you expect tomorrow's exchange rate will be.
      
    • Sau đó, nhân viên hỗ trợ sẽ thực hiện nhiệm vụ này trong vòng 24 giờ tới.

9. (Không bắt buộc) Xác minh các dịch vụ tích hợp Kênh nhắn tin

Nếu đã thiết lập Telegram hoặc WhatsApp trong các bước thiết lập không bắt buộc ở trên, bạn có thể xác minh việc gửi tin nhắn:

  1. Kiểm tra nhật ký phiên bản trong Cloud Shell:
    gcloud run instances logs read openclaw-instance --region ${REGION} --limit 20
    
  2. Mở Telegram (hoặc WhatsApp) rồi gửi tin nhắn (ví dụ: /start hoặc Hello OpenClaw!).
  3. Bot sẽ xác thực mã nhận dạng người dùng của bạn dựa trên danh sách cho phép trong openclaw.json và trả lời bằng Gemini!

10. Giám sát và kiểm tra nhật ký phiên bản

Các phiên bản Cloud Run ghi lại stdout và stderr từ vùng chứa của bạn rồi truyền trực tiếp đến Google Cloud Logging. Bạn có thể sử dụng Cloud Shell hoặc Cloud Console để theo dõi lưu lượng truy cập của cổng và kiểm tra các lần chạy công cụ của tác nhân theo thời gian thực.

1. Đọc nhật ký đối tượng gần đây

Cách tìm nạp các mục nhật ký gần đây từ phiên bản trong Cloud Shell:

gcloud beta run instances logs read openclaw-instance \
  --region ${REGION} \
  --limit 50

2. Các chữ ký nhật ký chính cần quan sát

Khi quan sát tác nhân đang chạy, hãy tìm các sự kiện nhật ký thời gian chạy chính sau đây:

  • [gateway] ready: Xác nhận rằng cổng HTTP và WebSocket của OpenClaw đã được khởi động và đang ở chế độ nghe trên cổng 18789.
  • [gateway] agent model: ...: Cho biết mô hình Gemini đang hoạt động (ví dụ: google/gemini-3.1-pro-preview hoặc google/gemini-3.5-flash).
  • [agents/tool-policy]: Cho biết những công cụ được phép hoặc bị hạn chế theo chính sách của bạn.
  • [agent/embedded]: Theo dõi quá trình thực thi và lệnh gọi công cụ của tác nhân.

3. Kiểm tra nhật ký trong Google Cloud Console

Bạn cũng có thể xem và lọc nhật ký bằng Trình khám phá nhật ký trong Cloud Console:

resource.type="cloud_run_instance"
resource.labels.instance_name="openclaw-instance"

11. (Không bắt buộc) Mở rộng phạm vi hoạt động của Agent bằng Kỹ năng

OpenClaw hỗ trợ Kỹ năng – các gói chức năng theo mô-đun giúp tác nhân của bạn học các quy trình làm việc cụ thể, công cụ CLI chuyên biệt và hướng dẫn dành riêng cho miền.

Cách hoạt động của kỹ năng

Mỗi kỹ năng là một thư mục chứa tệp SKILL.md. Nội dung này bắt đầu bằng phần đầu tệp YAML chỉ định siêu dữ liệu (namedescription), sau đó là các hướng dẫn về Markdown:

---
name: summarize-logs
description: Summarize Cloud Run error logs into actionable bullet points.
---

# Log Summarizer Skill

When asked to analyze or summarize logs:
1. Parse error stack traces and group similar errors by frequency.
2. Identify root causes such as memory limits, timeouts, or permission errors.
3. Propose concrete remediation steps.
  • name: Giá trị nhận dạng kỹ năng (cũng có thể gọi trực tiếp dưới dạng lệnh dấu gạch chéo, ví dụ: /summarize-logs).
  • description: Cho biết mô hình của OpenClaw khi nào tự động gọi kỹ năng này trong cuộc trò chuyện tự nhiên.

Thêm Kỹ năng tuỳ chỉnh vào bộ chứa trên đám mây

Vì bộ chứa Cloud Storage của bạn được gắn trực tiếp vào /home/node/.openclaw, nên các kỹ năng được đặt trong gs://${BUCKET_NAME}/skills/ sẽ tự động tải khi khởi động và duy trì trong các lần khởi động lại phiên bản:

  1. Tạo một thư mục kỹ năng tại địa phương:
    mkdir -p my-skill
    cat << 'EOF' > my-skill/SKILL.md
    ---
    name: summarize-logs
    description: Summarize Cloud Run error logs into actionable bullet points.
    ---
    
    # Log Summarizer Skill
    
    When asked to analyze or summarize logs, group errors by frequency and suggest actionable fixes.
    EOF
    
  2. Tải Kỹ năng lên Cloud Storage:
    gcloud storage cp -r my-skill gs://${BUCKET_NAME}/skills/
    
  3. Sử dụng Skill trong Chat:
    • Quay lại giao diện người dùng web của OpenClaw Control.
    • Giờ đây, bạn có thể nhắc tác nhân bằng /summarize-logs hoặc đặt câu hỏi bằng ngôn ngữ tự nhiên khớp với nội dung mô tả kỹ năng!

12. Dọn dẹp

Để tránh phát sinh phí cho tài khoản Google Cloud của bạn đối với các tài nguyên được dùng trong lớp học lập trình này, hãy làm như sau:

  1. Xoá phiên bản Cloud Run:
    gcloud beta run instances delete openclaw-instance --region ${REGION} --quiet
    
  2. Xoá các giá trị bí mật trong Secret Manager:
    gcloud secrets delete gemini-api-key --quiet
    gcloud secrets delete telegram-bot-token --quiet
    gcloud secrets delete openclaw-gateway-password --quiet
    
  3. Xoá bộ chứa Cloud Storage:
    gcloud storage rm -r gs://${BUCKET_NAME}
    
  4. Xoá tài khoản dịch vụ chuyên dụng:
    gcloud iam service-accounts delete ${SERVICE_ACCOUNT} --quiet
    

13. Kết luận

Xin chúc mừng! Bạn đã triển khai thành công một phiên bản OpenClaw an toàn, hoàn toàn liên tục trên Cloud Run Instances, được hỗ trợ bởi Cloud Storage, Secret Manager và kênh nhắn tin mà bạn muốn!