Hướng dẫn thiết lập thủ công

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 cú nhấp chuột. Nếu muốn cấp phép cho 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á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 yêu cầu 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 phần 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 vùng chứa.

Xem hình 1 để biết hình minh hoạ về hoạt động tương tác dữ liệu giữa máy chủ gắn thẻ và máy chủ xem trước.

Sơ đồ về máy chủ gắn thẻ và luồng dữ liệu máy chủ xem trước

Hình 1: Sơ đồ về máy chủ gắn thẻ và luồng dữ liệu 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) Bao gồm thông tin đăng nhập BigQuery
  • Cấp phép máy chủ xem trước theo cách thủ công bằng hình ảnh SST Docker.
  • Cung cấp cụm SST theo cách thủ công bằ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ẻ của bạn 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 của mình.

Xem tất cả cá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ẽ hướng dẫn cách tra cứu tất cả các chế độ cài đặt có sẵn có thể dùng với hình ảnh Docker.

Để xem tất cả các chế độ cài đặt có sẵn, hãy chạy lệnh sau bằng công cụ dòng lệnh của Docker:

docker run gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable server_bin.js --help

(Không bắt buộc) Cung cấp 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 phép truy cập vào các tài nguyên đó.

  1. Hãy 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 để truy cập vào BigQuery hoặc vai trò Người dùng Cloud Datastore để truy cập Firestore và xuất thông tin xác thực JSON của tài khoản đó với tên tệp local_service_account_key.json.
  2. Gắn thông tin xác thực JSON trong một ổ đĩa có thể truy cập vào hình ảnh. Bằng cách 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 xác thực trong hình ảnh.
  3. Trỏ biến môi trường GOOGLE_APPLICATION_CREDENTIALS vào thông tin xác thực.
  4. Bạn có thể chỉ định mã dự án Google Cloud trong biến môi trường GOOGLE_CLOUD_PROJECT để cho phép máy chủ gắn thẻ ngầm chọn dự án.
  5. Chạy máy chủ. Lệnh sau chạy máy chủ gắn thẻ có kèm theo thông tin xác thực:

    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ụ: KubernetesDocker Swarm cung cấp hướng dẫn để 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.

Đừng quên 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 phí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 vào 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 phía máy chủ và nhấp vào mã vùng chứa ở trên cùng bên phải của trang. Nhấp vào 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ành true để cấp phép cho máy chủ làm 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 cho 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ẽ có thể thấy phản hồi 200 cho một yêu cầu đến http://localhost:8080/healthz. Bạn có thể sử 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. Đừng định cấu hình phương thức tự động cấp tài nguyên bổ sung ngoài 1 thực thể.
  • Sau khi bạn thiết lập máy chủ xem trước bằng Docker, hãy định cấu hình một URL loại HTTPS để trỏ đến máy chủ xem trước. Điều này là cần thiết để thiết lập cụm SST.
  • Trình cân bằng tải hoặc CDN 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, gửi các yêu cầu xem trước proxy đế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 phần 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 bất kỳ môi trường nào 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 phía máy chủ và nhấp vào mã vùng chứa ở trên cùng bên phải của trang. Nhấp vào 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 loại 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ẻ chứ 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

Để cung cấp một máy chủ gắn thẻ 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 gửi đến http://localhost:8080/healthz. 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ể cung cấp máy chủ gắn thẻ phía máy chủ dưới dạng một máy chủ hoặc dưới dạng một cụm. Bạn nên cung cấp thuộc tính này dưới dạng một cụm để tăng khả năng sử dụng, khả năng mở rộng và hiệu suất. Xin lưu ý rằng khi cấp phép dưới dạng cụm, bạn phải định cấu hình mỗi phiên bản máy chủ bằng cùng các biến môi trường CONTAINER_CONFIGPREVIEW_SERVER_URL.
  • Hãy nhớ trỏ việc triển khai cụm SST đến một miền con mới trên trang web của bạn và tách biệt với miền con đang phân phát ứng dụng của bạn. 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 miền con như analytics.example.com cho máy chủ gắn thẻ của bạn.
  • Sau khi bạn thiết lập cụm SST bằng Docker, hãy định cấu hình một URL HTTPS để trỏ đến cụm SST.
  • Hãy nhớ khởi động lại máy chủ theo định kỳ để đảm bảo máy chủ có bản cập nhật mã mới nhất cho SST. Nếu không, chức năng của các tính năng SST mới có thể không tương thích. Có 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 quy trình kiểm tra tính trực tiếp. Điều 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 phía máy chủ sẽ vẫn được áp dụng mà không cần khởi động lại.
  • Sử dụng điểm cuối /healthz hiện có (ví dụ: https://analytics.example.com/healthz) trên các máy chủ gắn thẻ để thiết lập quy trình kiểm tra độ trực tiếp. Một phản hồi không tốt cho biết máy chủ cần được khởi động lại.
  • Vùng chứa Docker bao gồm 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 /healthz. Nếu sử dụng tính năng kiểm tra tình trạng của Docker, bạn có thể thay đổi các 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 một 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ẻ. Hãy chỉ định PREVIEW_SERVER_URL bao gồm cả đường dẫn.
  • Máy chủ được cấp phé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 phương thức tự động cấp tài nguyên bổ sung.

Xác nhận kết quả

Định cấu hình URL vùng chứa phía máy chủ

Trong Trình quản lý thẻ, hãy chuyển đến vùng chứa phía máy chủ của bạn. Trong mục Quản trị > Cài đặt vùng chứa, hãy đặt 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à thấy rằng trang xem trước sẽ tải. Trên một thẻ trình duyệt khác, hãy chuyển đến đường dẫn bất kỳ trên URL vùng chứa máy chủ. Nếu trang xem trước hiển thị yêu cầu đã được gửi, thì mọi thứ đã được thiết lập đúng cách.

Nếu bạn đã liên kết nhiều miền con đến một máy chủ gắn thẻ 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ả các đường dẫn URL đều phải khớp nhau (chuỗi thông tin đứng sau tên miền). Ví dụ: bạn có thể xem trước trên example.com/abcexample2.com/abc nhưng không thể xem trước trên example.com/abcexample2.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 Preview (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ỳ để các bản sửa lỗi bảo mật và tính năng mới. Bạn nên cập nhật máy chủ gắn thẻ ít nhất cho mỗi bản phát hành phiên bản lớn (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:

  1. 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.
  2. Triển khai máy chủ của bạn với các chế độ cài đặt giống như trong quá trình triển khai trước đó.
  3. Cập nhật máy chủ xem trước duy nhất và tất cả máy chủ gắn thẻ trong cụm.
  4. 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:

  1. Trong vùng chứa máy chủ, hãy nhấp vào nút Preview (Xem trước) để bắt đầu phiên gỡ lỗi mới và gửi yêu cầu trên một thẻ riêng.
  2. 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 nà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ẽ hiển thị thông báo mới nhất về phiên bản máy chủ gắn thẻ.