Bạn có thể sử dụng quy trình cấp phép tự động để triển khai máy chủ gắn thẻ cho Cloud Run chỉ bằng vài lượt nhấp. Nếu muốn cung cấp máy chủ gắn thẻ trong các môi trường khác, bạn có thể thực hiện theo cách thủ công. Máy chủ gắn thẻ là một máy chủ Node.js bên trong hình ảnh Docker.
Việc cấp phép máy chủ gắn thẻ theo cách thủ công đòi hỏi bạn phải cấp phép riêng cụm gắn thẻ phía máy chủ (SST) và máy chủ xem trước. Cụm SST là điểm truy cập cho tất cả các yêu cầu đến máy chủ gắn thẻ và sẽ xử lý các yêu cầu như mô tả trong bài viết Giới thiệu về tính năng gắn thẻ phía máy chủ. Bạn cần có máy chủ xem trước để xem trước một vùng chứa.
Hãy xem hình 1 để biết hình minh hoạ về hoạt động tương tác dữ liệu giữa các máy chủ gắn thẻ và máy chủ xem trước.
Hình 1: Sơ đồ về luồng dữ liệu của máy chủ gắn thẻ và máy chủ xem trước.
Hướng dẫn này giải thích cách:
- Xem tất cả các chế độ cài đặt có sẵn cho hình ảnh Docker.
- (Không bắt buộc) Thêm thông tin đăng nhập BigQuery
- Cung cấp máy chủ xem trước theo cách thủ công bằng cách sử dụng hình ảnh SST Docker.
- Cung cấp cụm SST theo cách thủ công bằng cách sử dụng hình ảnh SST Docker.
- Xác minh rằng máy chủ xem trước và cụm SST được định cấu hình chính xác.
- Luôn cập nhật phiên bản máy chủ gắn thẻ sau khi cấp phép máy chủ.
Để chạy các lệnh Docker trong hướng dẫn này, trước tiên, bạn phải cài đặt Docker trên máy tính.
Xem tất cả chế độ cài đặt có sẵn cho hình ảnh Docker
Bạn có thể tìm thấy hình ảnh Docker của máy chủ gắn thẻ tại URL này:
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
Máy chủ gắn thẻ và máy chủ xem trước sử dụng cùng một hình ảnh Docker với các cờ khác nhau. Trong phần này, chúng ta sẽ tìm hiểu cách tra cứu tất cả chế độ cài đặt có sẵn mà bạn có thể dùng với hình ảnh Docker.
Để xem tất cả các chế độ cài đặt hiện có, hãy chạy lệnh sau bằng công cụ dòng lệnh docker:
docker run gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable server_bin.js --help
(Không bắt buộc) Thêm thông tin đăng nhập Google Cloud
Để sử dụng API BigQuery
hoặc Firestore
bên ngoài Google Cloud, bạn phải cung cấp thông tin xác thực tài khoản dịch vụ được uỷ quyền truy cập vào các tài nguyên đó.
- Làm theo hướng dẫn này để tạo một tài khoản dịch vụ có vai trò Người chỉnh sửa dữ liệu BigQuery cho quyền truy cập
BigQuery
hoặc vai trò Người dùng Cloud Datastore cho quyền truy cậpFirestore
và xuất thông tin xác thực JSON của tài khoản đó bằng tên tệplocal_service_account_key.json
. - Gắn thông tin đăng nhập JSON vào một ổ đĩa mà hình ảnh có thể truy cập. Khi sử dụng
docker run
, bạn có thể chỉ định-v local_service_account_key.json:/app/service_account_key.json
để gắn thông tin đăng nhập trong hình ảnh. - Trỏ biến môi trường
GOOGLE_APPLICATION_CREDENTIALS
đến thông tin đăng nhập. - Bạn có thể chỉ định mã dự án Google Cloud trong biến môi trường
GOOGLE_CLOUD_PROJECT
để máy chủ gắn thẻ ngầm chọn dự án. Chạy máy chủ. Lệnh sau đây sẽ chạy máy chủ gắn thẻ cùng với thông tin đăng nhập được đưa vào:
docker run -v local_service_account_key.json:/app/service_account_key.json \ -p 8080:8080 \ -e GOOGLE_APPLICATION_CREDENTIALS='/app/service_account_key.json' \ -e GOOGLE_CLOUD_PROJECT='<your project id>' \ -e CONTAINER_CONFIG='<config string>' \ gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
Tuỳ thuộc vào hệ thống mà máy chủ gắn thẻ được triển khai, có thể có nhiều cách để gắn thông tin đăng nhập. Ví dụ: Kubernetes và Docker Swarm cung cấp hướng dẫn về cách quản lý khoá bí mật. Hãy tham khảo hướng dẫn của hệ thống tương ứng để biết thêm thông tin.
Hãy nhớ làm theo các phương pháp hay nhất để bảo vệ thông tin đăng nhập của bạn.
Cấp phép máy chủ xem trước theo cách thủ công
Máy chủ xem trước cho phép bạn xem trước vùng chứa máy chủ. Để chạy máy chủ xem trước, hãy chạy hình ảnh Docker với các biến môi trường sau đây được truyền đến môi trường Docker.
Chế độ cài đặt bắt buộc
CONTAINER_CONFIG
– Chuỗi cấu hình cho vùng chứa phía máy chủ. Trong Trình quản lý thẻ, hãy chuyển đến không gian làm việc của vùng chứa máy chủ rồi nhấp vào mã vùng chứa ở trên cùng bên phải của trang. Nhấp vào Cung cấp máy chủ gắn thẻ theo cách thủ công để tìm giá trị Cấu hình vùng chứa.RUN_AS_PREVIEW_SERVER
– Đặt giá trị này thànhtrue
để cung cấp máy chủ dưới dạng máy chủ xem trước.
Ví dụ về cách sử dụng công cụ dòng lệnh Docker
Để cung cấp một máy chủ xem trước cục bộ, hãy chạy lệnh sau:
docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e RUN_AS_PREVIEW_SERVER=true gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
Bạn sẽ thấy phản hồi 200 từ yêu cầu gửi đến http://localhost:8080/healthy
. Bạn có thể dùng biến môi trường PORT
để thay đổi cổng (không bắt buộc).
Các phương pháp hay nhất
- Bạn phải triển khai đúng 1 máy chủ xem trước. Không định cấu hình tính năng tự động mở rộng quy mô vượt quá 1 phiên bản.
- Sau khi thiết lập một máy chủ xem trước bằng Docker, hãy định cấu hình một URL HTTPS để trỏ đến máy chủ xem trước. Bạn cần có thông tin này để thiết lập cụm SST.
- Trình cân bằng tải hoặc CDN của bạn phải có thời gian chờ dài hơn 20 giây, nếu không chế độ xem trước sẽ không hoạt động đúng cách.
Cấp phép cụm gắn thẻ phía máy chủ theo cách thủ công
Cụm SST đóng vai trò là điểm truy cập, chuyển tiếp các yêu cầu xem trước đến máy chủ xem trước và xử lý tất cả các yêu cầu khác như mô tả trong bài viết Giới thiệu về tính năng gắn thẻ phía máy chủ. Sử dụng các chế độ cài đặt bắt buộc sau đây với hình ảnh Docker của máy chủ gắn thẻ để cung cấp một cụm SST trong mọi môi trường hỗ trợ Docker.
Chế độ cài đặt bắt buộc
CONTAINER_CONFIG
– Chuỗi cấu hình cho vùng chứa phía máy chủ. Trong Trình quản lý thẻ, hãy chuyển đến không gian làm việc của vùng chứa máy chủ rồi nhấp vào mã vùng chứa ở trên cùng bên phải của trang. Nhấp vào Cung cấp máy chủ gắn thẻ theo cách thủ công để tìm giá trị Cấu hình vùng chứa.PREVIEW_SERVER_URL
– URL HTTPS cho máy chủ xem trước. Bạn chỉ nên đặt chế độ cài đặt này để cấp phép máy chủ gắn thẻ và không cần thiết để cấp phép máy chủ xem trước. Hãy xem phần ở trên để biết hướng dẫn về cách thiết lập máy chủ xem trước.
Ví dụ về cách sử dụng công cụ dòng lệnh Docker
Để cấp phép một máy chủ gắn thẻ duy nhất theo cách cục bộ, hãy chạy lệnh sau:
docker run -p 8080:8080 -e CONTAINER_CONFIG='<config string>' -e PREVIEW_SERVER_URL='<HTTPS preview server url>' gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
Bạn sẽ thấy phản hồi 200 từ một yêu cầu đến http://localhost:8080/healthy
.
Bạn có thể dùng biến môi trường PORT
để thay đổi cổng (không bắt buộc).
Các phương pháp hay nhất
- Bạn có thể cấp phép máy chủ gắn thẻ phía máy chủ dưới dạng một máy chủ duy nhất hoặc dưới dạng một cụm. Bạn nên cung cấp nó dưới dạng một cụm để có tính sẵn sàng, khả năng mở rộng và hiệu suất tốt hơn. Xin lưu ý rằng khi cung cấp dưới dạng một cụm, mỗi phiên bản máy chủ phải được định cấu hình bằng cùng một biến môi trường
CONTAINER_CONFIG
vàPREVIEW_SERVER_URL
. - Đảm bảo lưu trữ máy chủ gắn thẻ ở cùng nguồn (phương pháp hay nhất) hoặc dưới dạng miền con của trang web hiện tại. Ví dụ: nếu ứng dụng của bạn phân phát lưu lượng truy cập web tại example.com, hãy sử dụng một đường dẫn như example.com/analytics cho máy chủ gắn thẻ của bạn. Tìm hiểu thêm về cấu hình miền tuỳ chỉnh.
- Sau khi thiết lập một cụm SST bằng Docker, hãy định cấu hình một URL HTTPS để trỏ đến cụm SST.
- Nhớ khởi động lại máy chủ định kỳ để đảm bảo máy chủ của bạn có các bản cập nhật mã mới nhất cho SST. Nếu không làm như vậy, các tính năng SST mới có thể không tương thích. Một cách để biết thời điểm máy chủ cần khởi động lại là thiết lập các quy trình kiểm tra trạng thái hoạt động. Phần này sẽ được giải thích thêm bên dưới. Ngoài ra, xin lưu ý rằng mọi nội dung cập nhật đã xuất bản cho vùng chứa máy chủ của bạn vẫn sẽ được áp dụng mà không cần khởi động lại.
- Sử dụng điểm cuối
/healthy
hiện có (ví dụ:https://analytics.example.com/healthy
) trên máy chủ gắn thẻ để thiết lập các chế độ kiểm tra trạng thái hoạt động. Phản hồi không lành mạnh cho biết máy chủ cần được khởi động lại. - Vùng chứa Docker có một lệnh kiểm tra tình trạng mặc định –
HEALTHCHECK CMD ["/nodejs/bin/node", "/app/health_checker_bin.js"]
– định kỳ truy vấn điểm cuối/healthy
. Nếu phụ thuộc vào quy trình kiểm tra tình trạng của Docker, bạn có thể thay đổi chế độ cài đặt bằng cách làm theo hướng dẫn của Docker. - Nếu máy chủ xem trước và máy chủ gắn thẻ có cùng nguồn gốc, hãy lưu trữ máy chủ xem trước trên một đường dẫn khác với máy chủ gắn thẻ. Chỉ định
PREVIEW_SERVER_URL
, bao gồm cả đường dẫn. - Các máy chủ được cung cấp chỉ được có tối đa 1 vCPU. Các vCPU bổ sung không được sử dụng và ảnh hưởng tiêu cực đến tính năng tự động mở rộng quy mô.
Xác thực
Định cấu hình URL vùng chứa của máy chủ
Trong Trình quản lý thẻ, hãy chuyển đến vùng chứa máy chủ của bạn. Trong phần Quản trị > Cài đặt vùng chứa, hãy nhập URL của máy chủ gắn thẻ vào trường URL vùng chứa máy chủ rồi nhấp vào Lưu.
Xác minh thông qua chế độ xem trước
Trong không gian làm việc của Trình quản lý thẻ, hãy xem trước vùng chứa bằng cách nhấp vào Xem trước và xem trang xem trước tải. Trên một thẻ trình duyệt khác, hãy chuyển đến một đường dẫn bất kỳ trên URL vùng chứa phía máy chủ. Nếu trang xem trước cho thấy yêu cầu đã được gửi, thì tức là bạn đã thiết lập mọi thứ đúng cách.
Nếu bạn đã liên kết nhiều miền con với một máy chủ gắn thẻ duy nhất và muốn xem trước trên từng miền con, hãy thêm URL vùng chứa máy chủ bổ sung trong phần Quản trị > Cài đặt vùng chứa. Nếu bạn cung cấp nhiều URL, tất cả đường dẫn URL đều phải khớp (chuỗi thông tin xuất hiện sau tên miền). Ví dụ: bạn có thể xem trước trên example.com/abc
và example2.com/abc
nhưng không thể xem trước trên example.com/abc
và example2.com/def
. Nếu thêm nhiều URL, bạn sẽ thấy một biểu tượng bên cạnh nút Xem trước cho phép bạn chọn URL để xem trước.
Cập nhật phiên bản máy chủ gắn thẻ
Hình ảnh gtm-cloud-image chứa Node.js và các thư viện cần thiết để máy chủ gắn thẻ hoạt động. Hình ảnh Docker được cập nhật định kỳ để sửa lỗi bảo mật và bổ sung các tính năng mới. Bạn nên cập nhật máy chủ gắn thẻ cho mỗi bản phát hành phiên bản chính (ví dụ: nâng cấp từ phiên bản 1.x.x lên 2.x.x).
Cách cập nhật hình ảnh Docker:
- Tìm nạp phiên bản hình ảnh hiện tại tại
gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
. - Triển khai máy chủ của bạn bằng các chế độ cài đặt giống như lần triển khai trước.
- Cập nhật một máy chủ xem trước và tất cả các máy chủ gắn thẻ trong cụm.
- Tắt mọi máy chủ cũ.
Cách xác minh rằng quá trình cập nhật đã thành công:
- Trong vùng chứa máy chủ, hãy nhấp vào nút Xem trước để bắt đầu một phiên gỡ lỗi mới và gửi yêu cầu trên một thẻ riêng.
- Trong phần Tóm tắt, hãy chọn thẻ Bảng điều khiển và đảm bảo không có thông báo yêu cầu bạn cập nhật máy chủ gắn thẻ.
Trình quản lý thẻ có thể hiển thị thông báo yêu cầu bạn cập nhật máy chủ gắn thẻ trong tối đa một ngày sau khi máy chủ được cập nhật thành công. Tuy nhiên, trang xem trước sẽ cho thấy thông báo mới nhất về phiên bản máy chủ gắn thẻ.