Chuyển tới nội dung chính

Vận hành quy trình họp nhóm

Hãy sử dụng hướng dẫn này sau khi bạn đã bật tính năng này từ Cuộc họp nhóm.

Trang này bao gồm:

  • luồng CLI của nhà điều hành
  • bảo trì đăng ký định kỳ
  • phân loại sự cố
  • kiểm tra trực tiếp
  • bảng triển khai

Lệnh điều hành cốt lõi

Xác thực ảnh chụp nhanh cấu hình

hermes teams-pipeline validate

Sử dụng cái này trước sau khi thay đổi cấu hình.

Kiểm tra tình trạng mã thông báo

hermes teams-pipeline token-health
hermes teams-pipeline token-health --force-refresh

Sử dụng --force-refresh khi bạn nghi ngờ trạng thái xác thực cũ.

Kiểm tra đăng ký

hermes teams-pipeline subscriptions

Gia hạn các đăng ký sắp hết hạn

hermes teams-pipeline maintain-subscriptions
hermes teams-pipeline maintain-subscriptions --dry-run

Tự động gia hạn đăng ký (BẮT BUỘC để sản xuất)

Đăng ký Microsoft Graph sẽ hết hạn sau tối đa 72 giờ. Nếu không có gì gia hạn chúng, thông báo cuộc họp sẽ âm thầm dừng sau 3 ngày và quy trình có vẻ "bị hỏng". Đây là chế độ lỗi vận hành số 1 đối với mọi hoạt động tích hợp dựa trên Đồ thị.

Bạn PHẢI chạy duy trì-đăng ký theo lịch trình. Chọn một trong ba tùy chọn sau:

Tùy chọn 1: Hermes cron (được khuyến nghị nếu bạn đã chạy cổng Hermes)

Hermes vận chuyển một bộ lập lịch cron tích hợp sẵn. Chế độ --no-agent chạy một tập lệnh dưới dạng công việc (thay vì sử dụng LLM) và --script phải trỏ đến một tệp trong ~/.hermes/scripts/. Đầu tiên tạo tập lệnh:

mkdir -p ~/.hermes/scripts
cat > ~/.hermes/scripts/maintain-teams-subscriptions.sh <<'EOF'
#!/usr/bin/env bash
exec hermes teams-pipeline maintain-subscriptions
EOF
chmod +x ~/.hermes/scripts/maintain-teams-subscriptions.sh

Sau đó, đăng ký một công việc định kỳ chỉ có tập lệnh chạy 12 giờ một lần (cung cấp khoảng trống gấp 6 lần so với thời hạn hết hạn 72 giờ):

hermes cron create "0 */12 * * *" \
--name "teams-pipeline-maintain-subscriptions" \
--no-agent \
--script maintain-teams-subscriptions.sh \
--deliver local

Xác minh nó đã được đăng ký và kiểm tra thời gian chạy tiếp theo:

hermes cron list
hermes cron status # scheduler status

Tùy chọn 2: bộ đếm thời gian systemd (được khuyến nghị khi triển khai sản xuất Linux)

Tạo /etc/systemd/system/hermes-teams-pipeline-maintain.service:

[Unit]
Description=Hermes Teams pipeline subscription maintenance
After=network-online.target

[Dịch vụ]
Loại=oneshot
Người dùng=hermes
Tệp môi trường=/etc/hermes/env
ExecStart=/usr/local/bin/hermes đội duy trì đường dẫn-đăng ký

/etc/systemd/system/hermes-teams-pipeline-maintain.timer:

[Unit]
Description=Run Hermes Teams pipeline subscription maintenance every 12 hours

[Timer]
OnBootSec=5min
OnUnitActiveSec=12h
Persistent=true

[Cài đặt]
WantedBy=timers.target

Cho phép:

sudo systemctl daemon-reload
sudo systemctl enable --now hermes-teams-pipeline-maintain.timer
systemctl list-timers hermes-teams-pipeline-maintain.timer

Tùy chọn 3: crontab đơn giản

0 */12 * * * /usr/local/bin/hermes teams-pipeline maintain-subscriptions >> /var/log/hermes/teams-pipeline-maintain.log 2>&1

Đảm bảo môi trường cron có thông tin xác thực MSGRAPH_*. Cách khắc phục đơn giản nhất: source ~/.hermes/.env ở đầu tập lệnh bao bọc mà crontab gọi.

Xác minh việc gia hạn đang hoạt động

Sau khi bạn thiết lập lịch trình, hãy kiểm tra hoạt động gia hạn sau lần chạy theo lịch trình đầu tiên:

hermes teams-pipeline subscriptions   # should show expirationDateTime advanced
hermes teams-pipeline maintain-subscriptions --dry-run # should show "0 expiring soon" most of the time

Nếu bạn thấy webhook Graph của mình "ngưng hoạt động" một cách bí ẩn sau đúng ~72 giờ, thì đây là điều đầu tiên cần kiểm tra: công việc gia hạn có thực sự chạy không?

Kiểm tra các công việc gần đây

hermes teams-pipeline list
hermes teams-pipeline list --status failed
hermes teams-pipeline show <job-id>

Phát lại lệnh đã lưu

hermes teams-pipeline run <job-id>

Tìm nạp thành phần lạ của cuộc họp chạy thử

hermes teams-pipeline fetch --meeting-id <meeting-id>
hermes teams-pipeline fetch --join-web-url "<join-url>"

Sổ tay chạy thường lệ

Sau lần thiết lập đầu tiên

Chạy chúng theo thứ tự:

hermes teams-pipeline validate
hermes teams-pipeline token-health --force-refresh
hermes teams-pipeline subscriptions

Sau đó kích hoạt hoặc đợi một sự kiện họp thực sự và xác nhận:

hermes teams-pipeline list
hermes teams-pipeline show <job-id>

Kiểm tra hàng ngày hoặc định kỳ

  • chạy đăng ký-duy trì đội Hermes --dry-run
  • kiểm tra danh sách đường ống của đội hermes --trạng thái không thành công
  • xác minh mục tiêu phân phối của Nhóm vẫn là kênh hoặc kênh trò chuyện chính xác

Trước khi thay đổi URL webhook hoặc mục tiêu phân phối

  • cập nhật URL thông báo công khai hoặc cấu hình mục tiêu của Nhóm
  • chạy xác thực đường dẫn đội hermes
  • gia hạn hoặc tạo lại các đăng ký bị ảnh hưởng
  • xác nhận các sự kiện mới rơi vào vùng chìm dự kiến

Phân loại lỗi

Không có việc làm nào được tạo ra

Kiểm tra:

  • msgraph_webhook đã được bật
  • URL thông báo công khai trỏ tới /msgraph/webhook
  • trạng thái máy khách trong đăng ký khớp với MSGRAPH_WEBHOOK_CLIENT_STATE
  • đăng ký vẫn tồn tại từ xa và chưa hết hạn

Công việc phải thử lại hoặc thất bại trước khi tóm tắt

Kiểm tra:

  • quyền và tính khả dụng của bản ghi
  • quyền ghi và tính khả dụng của tạo tác
  • Tính khả dụng của ffmpeg nếu tính năng ghi dự phòng được bật
  • Tình trạng mã thông báo biểu đồ

Tóm tắt được tạo nhưng không được gửi tới Nhóm

Kiểm tra:

  • platforms.teams.enabled: true
  • chế độ giao hàng
  • incoming_webhook_url dành cho chế độ webhook
  • chat_id hoặc team_id cộng với channel_id cho chế độ Biểu đồ
  • Cấu hình xác thực nhóm nếu sử dụng đăng biểu đồ

Số lần phát lại trùng lặp hoặc không mong muốn

Kiểm tra:

  • liệu bạn có phát lại công việc theo cách thủ công với hermes Team-pipeline run hay không
  • liệu bản ghi chìm cho cuộc họp đó đã tồn tại chưa
  • bạn có cố tình kích hoạt đường dẫn gửi lại trong cấu hình cục bộ của mình không

Danh sách kiểm tra phát trực tiếp

  • Thông tin xác thực đồ thị hiện có và chính xác
  • msgraph_webhook được kích hoạt và có thể truy cập từ internet công cộng
  • MSGRAPH_WEBHOOK_CLIENT_STATE được đặt và khớp với đăng ký
  • đăng ký bản ghi được tạo
  • đăng ký ghi âm được tạo nếu yêu cầu dự phòng STT
  • [] ffmpeg được cài đặt nếu tính năng ghi dự phòng được bật
  • Mục tiêu gửi đi của nhóm được định cấu hình và xác minh
  • [] Phần chìm Notion và Linear chỉ được định cấu hình nếu thực sự cần thiết
  • xác thực đường ống nhóm hermes trả về ảnh chụp nhanh OK
  • hermesteams-pipeline token-health --force-refresh thành công
  • duy trì-đăng ký được lên lịch (Hermes cron, systemd clock hoặc crontab — xem [Tự động gia hạn đăng ký](#automating-subscription-gia hạn-required-for-production)). Nếu không có điều này, đăng ký Graph sẽ âm thầm hết hạn trong vòng 72 giờ.
  • một sự kiện họp thực sự từ đầu đến cuối đã tạo ra một công việc được lưu trữ
  • ít nhất một bản tóm tắt đã đến nơi phân phối dự kiến

Hướng dẫn quyết định chế độ phân phối

ModeUse whenTradeoff
incoming_webhookyou only need simple posting into Teamssimplest setup, less control
graphyou need channel or chat posting through Graphmore control, more auth and target config

Bảng tính toán tử

Điền thông tin này trước khi triển khai:

ItemValue
Public notification URL
Graph tenant ID
Graph client ID
Webhook client state
Transcript resource subscription
Recording resource subscription
Teams delivery mode
Teams chat ID or team/channel
Notion database ID
Linear team ID
Store path override, if any
Owner for daily checks

Bảng đánh giá thay đổi

Sử dụng điều này trước khi thay đổi việc triển khai:

QuestionAnswer
Are we changing the public webhook URL?
Are we rotating Graph credentials?
Are we changing Teams delivery mode?
Are we moving to a new Teams chat or channel?
Do subscriptions need to be recreated or renewed?
Do we need a fresh end-to-end verification run?

Tài liệu liên quan