n8n là một công cụ tự động hóa quy trình mã nguồn mở mạnh mẽ, cho phép bạn kết nối và tự động hóa các dịch vụ và ứng dụng khác nhau. Hướng dẫn này sẽ dẫn dắt bạn cách triển khai n8n trên Google Cloud Run với cơ sở dữ liệu PostgreSQL để lưu trữ dữ liệu bền vững, đồng thời tạo một AI Agent đơn giản sử dụng Google Gemini 2.5.
Trước khi bắt đầu, bạn cần có tài khoản Google Cloud Platform (GCP) và đã cấu hình tài khoản thanh toán (billing).
Bước 1: Cài đặt và Cấu hình gcloud CLI
Để tương tác với Google Cloud từ terminal, bạn cần Google Cloud CLI.
- Cài đặt gcloud CLI: Bạn có thể cài đặt bằng lệnh sau hoặc làm theo hướng dẫn cài đặt chính thức cho hệ điều hành của bạn.
curl https://sdk.cloud.google.com | bash exec -l $SHELL gcloud init
Chạy lệnh
gcloud version để kiểm tra cài đặt.- Đăng nhập vào Google Cloud: Sau khi cài đặt, hãy xác thực tài khoản Google Cloud của bạn:
gcloud auth login
Một cửa sổ trình duyệt sẽ mở ra yêu cầu bạn đăng nhập và cấp quyền cho Google Cloud SDK truy cập tài khoản. Hãy sao chép mã xác thực và dán vào terminal.
Bước 2: Thiết lập Dự án Google Cloud
Chúng ta cần tạo một dự án Google Cloud mới và kích hoạt các dịch vụ cần thiết.
- Tạo dự án mới:
export PROJECT_ID="n8n-gemini-$(head /dev/urandom | tr -dc a-z0-9 | head -c 10)" gcloud projects create "$PROJECT_ID" --name="n8n Gemini Quickstart" gcloud config set project "$PROJECT_ID"
- Liên kết Tài khoản Thanh toán: Bạn cần kích hoạt thanh toán cho dự án mới. Chạy lệnh dưới đây và mở URL trong trình duyệt để liên kết tài khoản thanh toán của bạn.
echo "https://console.cloud.google.com/billing/linkedaccount?project=$PROJECT_ID"
- Thiết lập biến môi trường:
export REGION="us-central1" # Thay đổi thành vùng bạn ưu tiên, ví dụ: us-east1, us-west1...
- Kích hoạt các API cần thiết:
gcloud services enable run.googleapis.com \
sqladmin.googleapis.com \
secretmanager.googleapis.com \
iam.googleapis.com
Bước 3: Thiết lập Cơ sở dữ liệu và Secrets
n8n yêu cầu một cơ sở dữ liệu để lưu trữ dữ liệu. Chúng ta sẽ sử dụng Cloud SQL cho PostgreSQL và Secret Manager để lưu trữ thông tin xác thực một cách an toàn. Ở đây, chúng ta sử dụng gói db-f1-micro để tối ưu chi phí, nhưng bạn có thể điều chỉnh các tham số như cấu hình (tier), dung lượng lưu trữ và khu vực tùy theo nhu cầu. Để biết thêm các tùy chọn cấu hình, hãy tham khảo tài liệu chính thức.
Lưu ý: Quá trình này có thể mất khoảng 10-15 phút.
export N8N_DB_PASSWORD=$(openssl rand -base64 16)
export N8N_ENCRYPTION_KEY=$(openssl rand -base64 42)
# Tạo instance Cloud SQL
gcloud sql instances create n8n-db \
--database-version=POSTGRES_13 \
--tier=db-f1-micro \
--region=$REGION \
--root-password=$N8N_DB_PASSWORD \
--storage-size=10GB \
--no-backup \
--storage-type=HDD
# Tạo cơ sở dữ liệu và người dùng
gcloud sql databases create n8n --instance=n8n-db
gcloud sql users create n8n-user \
--instance=n8n-db \
--password=$N8N_DB_PASSWORD
# Lưu trữ các mã bí mật vào Secret Manager
echo $N8N_DB_PASSWORD | gcloud secrets create n8n-db-password --data-file=- --replication-policy="automatic"
echo $N8N_ENCRYPTION_KEY | gcloud secrets create n8n-encryption-key --data-file=- --replication-policy="automatic"
Bước 4: Triển khai n8n lên Cloud Run
Bây giờ chúng ta sẽ triển khai n8n lên Cloud Run, kết nối nó với cơ sở dữ liệu và các bí mật đã tạo. Chúng ta cần tạo một Service Account cho n8n, cấp quyền truy cập vào các bí mật, sau đó triển khai container n8n với các biến môi trường cần thiết.
- Tạo Service Account cho n8n:
gcloud iam service-accounts create n8n-service-account \
--display-name="n8n Service Account"
export SERVICE_ACCOUNT_EMAIL="n8n-service-account@$PROJECT_ID.iam.gserviceaccount.com"
- Cấp các quyền cần thiết:
gcloud secrets add-iam-policy-binding n8n-db-password \
--member="serviceAccount:$SERVICE_ACCOUNT_EMAIL" \
--role="roles/secretmanager.secretAccessor"
gcloud secrets add-iam-policy-binding n8n-encryption-key \
--member="serviceAccount:$SERVICE_ACCOUNT_EMAIL" \
--role="roles/secretmanager.secretAccessor"
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT_EMAIL" \
--role="roles/cloudsql.client"
- Triển khai lên Cloud Run:
DB_CONNECTION_NAME="$PROJECT_ID:$REGION:n8n-db" gcloud run deploy n8n \ --image=n8nio/n8n:latest \ --region=$REGION \ --allow-unauthenticated \ --port=5678 \ --memory=2Gi \ --cpu=1 \ --no-cpu-throttling \ --set-env-vars="N8N_PORT=5678,N8N_PROTOCOL=https,DB_TYPE=postgresdb,DB_POSTGRESDB_DATABASE=n8n,DB_POSTGRESDB_USER=n8n-user,DB_POSTGRESDB_HOST=/cloudsql/$DB_CONNECTION_NAME,DB_POSTGRESDB_PORT=5432,DB_POSTGRESDB_SCHEMA=public,GENERIC_TIMEZONE=UTC,QUEUE_HEALTH_CHECK_ACTIVE=true" \ --set-secrets="DB_POSTGRESDB_PASSWORD=n8n-db-password:latest,N8N_ENCRYPTION_KEY=n8n-encryption-key:latest" \ --add-cloudsql-instances=$DB_CONNECTION_NAME \ --service-account=$SERVICE_ACCOUNT_EMAIL
Lưu ý: Chúng ta sử dụng tùy chọn --no-cpu-throttling để đảm bảo các tiến trình chạy nền của n8n (như các nút lập lịch và chờ) tiếp tục hoạt động ngay cả khi không xử lý yêu cầu HTTP một cách trực tiếp.
Sau khi triển khai thành công, Cloud Run sẽ hiển thị URL cho bản n8n của bạn. Nó sẽ trông như thế này:
Done. Service [n8n] revision [n8n-00001-qqn] has been deployed and is serving 100 percent of traffic. Service URL: https://n8n-780597096402.us-central1.run.app
Bước 5: Tạo Gemini Agent đầu tiên của bạn
Sau khi truy cập vào n8n lần đầu tiên, bạn sẽ được yêu cầu thiết lập tài khoản quản trị (owner account). Hãy làm theo hướng dẫn để tạo tài khoản. Tại đây, bạn cũng có thể thêm giấy phép doanh nghiệp (enterprise license) nếu có. Tuyệt vời, sau khi hoàn tất, bạn sẽ thấy một màn hình như thế này:

Chúng ta sẽ bắt đầu tạo một Agent từ con số 0. Nhưng trước khi tạo Agent, chúng ta cần thêm Gemini API Key vào hệ thống. Hãy nhấp vào mục "Credentials" (Thông tin xác thực), sau đó chọn "Add first credential" (Thêm thông tin xác thực đầu tiên) và tìm kiếm từ khóa "Google Gemini (PaLM) API". Nhấp vào "Create" (Tạo) và làm theo hướng dẫn để tạo thông tin xác thực mới. Nếu bạn chưa có Gemini API Key, bạn có thể lấy một mã tại AI Studio.

Sau khi đã xác thực thành công, hãy quay lại mục "Workflows" và nhấp vào "Start from scratch" (Bắt đầu từ con số 0). Lúc này, bạn sẽ truy cập vào giao diện "editor" (trình chỉnh sửa). Hãy nhấp vào "Add first step" (Thêm bước đầu tiên) và tìm kiếm từ khóa "AI Agent". Bây giờ, bạn đang ở trong phần cấu hình của AI Agent. Ở phía dưới chính giữa màn hình, bạn sẽ thấy các mục "Chat Model", "Memory" (Bộ nhớ) và "Tool" (Công cụ). Hãy nhấp vào mục "Chat Model".

Tiếp theo, hãy tìm kiếm từ khóa "Google Gemini Chat Model". Tại đây, bạn có thể chọn thông tin xác thực (credentials) đã tạo và mô hình (model) mà bạn muốn sử dụng. Sau khi thiết lập xong, hãy nhấp vào nút "Back to canvas" (Quay lại bản thiết kế) ở góc trên cùng bên trái. Giờ đây, bạn sẽ thấy một "Basic AI Agent" đã được kết nối với Gemini trên màn hình.

Hãy cùng dùng thử nào! Nhấp vào "Open Chat" và đặt cho nó một câu hỏi.

Tuyệt vời, nó đã hoạt động! Bây giờ, hãy thêm một số công cụ để biến nó thành một Agent thực thụ. Để thực hiện, hãy nhấp vào dấu "+" tại mục "tool" nằm bên dưới AI Agent. Lúc này, bạn sẽ thấy một danh sách các công cụ có thể thêm vào Agent của mình, bao gồm các máy chủ MCP, cơ sở dữ liệu vector hoặc hàng trăm công cụ khác.
Hãy thử thêm "MCP (Model Context Protocol) Client". MCP là một tiêu chuẩn cho phép các LLM kết nối với các nguồn dữ liệu bên ngoài mà không cần viết mã tích hợp tùy chỉnh. Chúng ta sẽ sử dụng nó để kết nối Gemini với một dịch vụ thời tiết giả lập. Tại mục endpoint, hãy nhập: https://gemini-api-demos.uc.r.appspot.com/mcp(Lưu ý: Không có gì đảm bảo rằng endpoint này sẽ luôn hoạt động). Sau khi bạn đã thêm máy chủ MCP, hãy nhấp vào "back to canvas".
Giờ đây, Agent của bạn đã có một kết nối công cụ tới "MCP Client".

Được rồi, hãy cùng kiểm tra thử. Nhấp vào "Open Chat" và hỏi về thời tiết ở New York. Lưu ý bạn phải bao gồm cả "ngày" trong câu hỏi của mình, ví dụ: Thời tiết ở New York ngày 2025-10-29 như thế nào?

Tuyệt vời, nó đã hoạt động! Trong quá trình thực thi, bạn chắc hẳn đã thấy Agent đầu tiên gọi Gemini (nơi đưa ra một lệnh gọi có cấu trúc), sau đó gọi đến Máy chủ MCP. Phản hồi từ Máy chủ MCP được gửi ngược lại cho Gemini để tạo ra câu trả lời cuối cùng.
Đừng quên xóa các tài nguyên Google Cloud của bạn sau khi hoàn tất để tránh phát sinh chi phí. Bạn có thể xóa các tài nguyên bằng các lệnh sau:
gcloud run services delete n8n --region=$REGION gcloud sql instances delete n8n-db gcloud secrets delete n8n-db-password gcloud secrets delete n8n-encryption-key gcloud iam service-accounts delete $SERVICE_ACCOUNT_EMAIL gcloud projects delete $PROJECT_ID
Các bước tiếp theo
Chúc mừng! Bạn đã triển khai thành công n8n lên Google Cloud Run và tạo ra AI Agent đầu tiên của mình bằng Gemini 2.5. Bây giờ là lúc khám phá các tính năng nâng cao hơn, thêm nhiều công cụ hơn và xây dựng các quy trình phức tạp để tự động hóa công việc của bạn. Khi chuyển từ giai đoạn thử nghiệm (PoC) sang vận hành thực tế (production), hãy tham khảo các nguồn sau:
- Workflows cộng đồng: Hơn 600 quy trình n8n sử dụng Gemini do cộng đồng xây dựng.
- Mở rộng n8n (Scaling): Đối với các thiết lập tải cao, hãy tìm hiểu về [n8n's Queue Mode](https://docs.n8n.io/hosting/scaling/overview/), chế độ này tách biệt tiến trình chính khỏi các trình thực thi (workers).
- Tối ưu hóa hạ tầng: Tối ưu hóa concurrency (xử lý đồng thời), startup CPU boost (tăng tốc CPU khi khởi động) và database.
- Các nút AI nâng cao: Khám phá tài liệu AI nâng cao của n8n để tìm hiểu về các loại bộ nhớ, bộ phân tích đầu ra (output parsers) và công cụ tùy chỉnh khác nhau.
- Sự tham gia của con người (Human-in-the-loop): Các nút cụ thể có thể được sử dụng để yêu cầu sự phê duyệt của con người trước khi thực hiện các hành động nhạy cảm.
- Diễn đàn cộng đồng n8n: Nơi tốt nhất để đặt câu hỏi, chia sẻ quy trình và học hỏi từ những người khác.
- Kênh YouTube của n8n: Tuyệt vời cho các bài hướng dẫn trực quan và đi sâu vào các trường hợp sử dụng phức tạp.
Nguồn bài viết từ Tác giả Phil Schmid