Chuyển đến nội dung chính
Put routine cloud ops on autopilot. Automation là một bộ hướng dẫn cho agent được lưu lại, cùng các trigger khởi chạy automation đó: lịch, lệnh gọi webhook đến, sự kiện repository hoặc script probe. CloudThinker chạy automation cho bạn, và mỗi lượt chạy giữ một cuộc hội thoại cho thấy agent đã kiểm tra, tìm thấy và thay đổi những gì. Dùng automation cho những việc mà nếu không có nó, ai đó phải tự nhớ để làm: kiểm tra chi phí hằng ngày, bản tổng hợp sự cố hằng tuần, một lượt phân loại cho mỗi pull request mới, hoặc phản ứng với cảnh báo từ một công cụ khác.

Điều kiện tiên quyết

  • Gói Team trở lên. Khi gói của bạn giới hạn số lượng automation, New automation hiển thị <used> of <limit> automations used. Xem Bảng giá.
  • Với trigger repository: các repository đã kết nối trong Review và đã bật review. Xem Thiết lập code review.
  • Vai trò workspace phù hợp với công việc:

Cách hoạt động

  1. Trigger kích hoạt, hoặc ai đó chọn Run now. Bất kỳ trigger nào cũng có thể bắt đầu một lượt chạy, và công tắc của automation phải bật thì trigger mới kích hoạt.
  2. Lượt chạy bắt đầu. CloudThinker đọc hướng dẫn của automation, cùng phần body của sự kiện khi lượt chạy do webhook, sự kiện repository hoặc probe khởi chạy. Body đó được coi là dữ liệu, không bao giờ là hướng dẫn: agent có thể dùng một giá trị trong đó khi hướng dẫn của bạn yêu cầu (ví dụ tên dịch vụ trong một cảnh báo), nhưng văn bản trong body không thể thay đổi hướng dẫn hay phê duyệt.
  3. Approvals kiểm soát mọi thao tác ghi. Thao tác đọc luôn chạy. Automations mặc định dùng Auto · Rules + AI · Refuse, vì có thể không có ai trực tuyến để trả lời. Thao tác ghi đi qua các bước sau theo thứ tự: Các lựa chọn khác có trong Vận hành tự động. Ở chế độ Manual, mọi thao tác ghi đều hỏi một người, kể cả thao tác mà một Allow Rule bao phủ. Rules chỉ quyết định khi Rule enforcement đã được bật cho workspace của bạn; khi bước Rules trên Approvals hiển thị In preview, chỉ Approval mode quyết định. Xem Khắc phục sự cố Rules.
  4. Kết quả xuất hiện trong Runs. Mỗi lượt chạy hiển thị trạng thái và liên kết đến cuộc hội thoại của nó. Kết hợp với thông báo để nhận lỗi và cảnh báo qua Slack, Teams, Google Chat hoặc email.

Mỗi lần chỉ một lượt chạy

Automation không bao giờ chạy hai lượt cùng lúc. Điều xảy ra với một lần khởi chạy đến giữa lúc đang chạy: Lần khởi chạy được giữ lại nhưng không bao giờ chạy sẽ hiển thị trên thẻ trigger là Did not run, kèm lý do.

Trigger

Bạn có thể thêm bất kỳ trigger nào từ form hoặc chat, trừ probe (chỉ chat mới tạo được probe). Trigger là tùy chọn. Automation được lưu mà không có trigger nào sẽ hiển thị “No trigger yet” và chỉ chạy khi ai đó chọn Run now.

Schedule

Custom nhận một biểu thức cron 5 trường: minute hour day month weekday. Trường phút và giờ nhận một giá trị, *, hoặc một bước nhảy như */15. Danh sách hoặc khoảng giá trị trong hai trường này bị từ chối với “This schedule format is not supported.” Ngày, tháng và thứ trong tuần nhận khoảng và danh sách. Thứ trong tuần được đánh số từ 0 (Chủ nhật) đến 6 (Thứ bảy), và một tên ngày đơn lẻ như MON sẽ được chuyển đổi cho bạn.
Để một lịch lặp lại dừng, đánh dấu Set expiration date trên lịch và chọn ngày cuối cùng.
Mọi lịch, kể cả cron Custom, được đọc theo múi giờ của trình duyệt dùng để lưu lịch. CloudThinker chuyển đổi sang UTC với độ lệch của múi giờ đó vào ngày 15 tháng 1, và giữ giờ UTC đó cả năm. Ở múi giờ có giờ mùa hè, các lượt chạy sẽ lệch một giờ trong một phần của năm:
  • New York, lưu lúc 09:00: chạy lúc 09:00 từ tháng 11 đến giữa tháng 3, và lúc 10:00 từ giữa tháng 3 đến tháng 11.
  • Sydney, lưu lúc 09:00: chạy lúc 09:00 từ tháng 10 đến tháng 4, và lúc 08:00 từ tháng 4 đến tháng 10.
Đồng nghiệp ở múi giờ khác sẽ thấy lịch theo múi giờ của họ. Nếu họ lưu mà không đổi giờ, giờ UTC giữ nguyên. Không có bộ chọn múi giờ, nên với nhóm ở nhiều múi giờ, hãy quyết định giờ chạy theo UTC và chọn một giờ mà lệch một tiếng về hai phía vẫn ổn.

Webhook

Khi bạn lưu một trigger webhook, hộp thoại Webhook trigger added hiển thị URL, một secret và một Test command sẵn sàng để dán. Bên gọi gửi secret trong header Authorization: Bearer.
  • Secret chỉ hiển thị một lần. Sao chép secret trước khi chọn Done. Nếu bạn làm mất, dùng Rotate webhook secret trên thẻ trigger: URL giữ nguyên. Secret cũ ngừng hoạt động trong vài giây, không có thời gian chồng lấn, nên hãy cập nhật bên gọi ngay sau khi xoay vòng. Trước khi bạn cập nhật, các lệnh gọi từ bên gọi sẽ nhận 403.
  • Gửi một JSON object. Body được nối sau hướng dẫn của bạn, nên agent thấy mọi trường. Body không phải JSON object (văn bản thuần, mảng) vẫn bắt đầu lượt chạy, nhưng agent chỉ nhận được hướng dẫn của bạn. Body được giới hạn ở 1 MB.
  • 60 lệnh gọi mỗi giờ cho mỗi trigger. Các lệnh gọi vượt quá vẫn nhận 200, không bắt đầu lượt chạy, và hiển thị Rate limited trên thẻ. Vượt quá 600 trong một giờ, bên gọi nhận 429. Giới hạn này cố định: form không có cài đặt để tăng.
  • Lệnh gọi giữa lúc đang chạy được giữ lại, như trong Mỗi lần chỉ một lượt chạy.
  • Bảo mật. Trigger dùng xác thực bearer với secret do CloudThinker cấp, được lưu trữ mã hóa. Form không có tùy chọn ký request. Lệnh gọi đi từ công cụ của bạn đến CloudThinker, nên không có IP nguồn nào của CloudThinker cần cho phép. Xem Bảo mật.
Phản hồi không thể cho bên gọi biết lệnh gọi đã bị giới hạn tần suất, nên một nguồn gửi nhiều có thể làm mất cảnh báo mà không báo lỗi. Hãy cấp cho mỗi nguồn cảnh báo một trigger riêng, và loại trùng hoặc gom nhóm cảnh báo trong công cụ gửi.
Mỗi lệnh gọi được liệt kê trên thẻ trigger kèm trạng thái: Lệnh gọi đang được giữ mà bị lệnh gọi mới hơn thay thế vẫn ở trạng thái Processed. Dòng Did not run trên thẻ là nơi hiển thị lệnh gọi bị bỏ. Ví dụ, trỏ một công cụ cảnh báo đến URL với body như sau:
Rồi viết hướng dẫn có nêu tên trường:
Trong công cụ cảnh báo, thêm một đích webhook với URL của trigger và một header tùy chỉnh Authorization đặt thành Bearer <your secret>. Với cảnh báo giám sát từ các công cụ như Datadog, Grafana hoặc PagerDuty cần mở sự cố, một tín hiệu webhook của Resolve phù hợp hơn. Xem Webhooks.

Repository

Chọn repository và một hoặc nhiều sự kiện: Pull or merge request, Push, Comment, hoặc Pipeline finished. Chỉ có thể thêm repository đã bật review trong Review.
Comment và Pipeline finished không có bộ lọc: mỗi sự kiện như vậy trên các repository đã chọn đều bắt đầu một lượt chạy, và mỗi lượt chạy đều dùng credit. Trên một repository bận rộn, hãy dự kiến một lượt chạy cho mỗi bình luận. Hãy bắt đầu với một vài repository.
Sự kiện repository đến giữa lúc đang chạy sẽ được giữ lại, như trong Mỗi lần chỉ một lượt chạy.
  • Thay đổi label, assignee, yêu cầu review và phê duyệt không bao giờ bắt đầu lượt chạy.
  • Bình luận từ bot review của CloudThinker không bao giờ bắt đầu lượt chạy, nên một automation không thể lặp vô hạn trên chính đầu ra của nó.

Probe

Probe là một script bash do agent viết và lưu làm trigger. Chỉ chat mới tạo được:
  1. Mở một cuộc chat và mô tả cần theo dõi gì, tần suất bao lâu, và thuộc automation nào (hoặc yêu cầu một automation mới):
  2. Agent viết script và chạy thử một lần. Agent từ chối lưu script không thoát với 0 hoặc 1.
  3. Mở automation. Thẻ trigger probe hiển thị khoảng thời gian và đường dẫn script là dấu hiệu probe đã được lưu.
Mỗi lần kiểm tra, script chạy tối đa 120 giây trên CloudThinker Cloud, nơi chạy các lệnh của agent, với thông tin xác thực chỉ đọc cho các kết nối mà agent đã nêu khi viết probe. Mỗi lần kiểm tra chỉ chạy script, không chạy agent, nên không bắt đầu lượt chạy. Lượt chạy khi kích hoạt và lượt chạy sửa lỗi là các lượt chạy agent bình thường và dùng credit như mọi lượt chạy khác (Usage). Thời gian chờ mặc định là 60 phút. Có thể là 5, 15, 60, 240 hoặc 1.440 phút. Để thay đổi thời gian chờ, khoảng kiểm tra hoặc script, hãy hỏi trong chat và nêu tên automation, ví dụ “Set the probe cooldown on the orders-api latency automation to 240 minutes.” Thẻ trigger hiển thị khoảng thời gian, đường dẫn script, lần kiểm tra gần nhất (ví dụ “Quiet · checked 5 minutes ago”), và Last output. Bạn có thể tạm dừng hoặc xóa probe từ thẻ. Cả thẻ lẫn chat đều không liệt kê các kết nối mà probe đọc. Để xem probe làm gì, hãy yêu cầu trong chat hiển thị script tại đường dẫn trên thẻ. Với các gói có audit log, mỗi probe mới được ghi lại là “added a probe trigger”.

Tạo một automation

Automation quickstart hướng dẫn từ đầu đến cuối. Tóm tắt: mở Automations trong thanh bên, chọn New automation, rồi chọn một trong ba cách bắt đầu. Mọi template đều bắt đầu với một trigger Schedule và hướng dẫn, cả hai đều có thể thay đổi: Mỗi template cần một kết nối đọc được dữ liệu mà template hỏi tới, chẳng hạn dữ liệu billing cho các template chi phí.

Từ một đề xuất trong chat

Khi công việc trong chat đáng được lặp lại, phản hồi của agent có thể kết thúc bằng một thẻ đề xuất hiển thị một lịch. Admin chọn Enable để tạo automation với lịch đó và phê duyệt của loại lượt chạy Automations, hoặc Dismiss để bỏ. Thẻ cũng có thể hiển thị một điều kiện cần theo dõi, bên cạnh biểu tượng con mắt. Khi một lượt chạy của automation đó đáp ứng điều kiện, CloudThinker gửi thông báo Watched condition met.

Lượt chạy và trạng thái

Trang Automations có ba tab: Automations (danh sách), Runs (mọi lượt chạy, mới nhất trước, được gắn nhãn Schedule, Manual, Webhook, Repository hoặc Probe), và Calendar (các lượt chạy theo lịch đã qua và sắp tới theo tháng). Lệnh gọi hoặc sự kiện không bắt đầu lượt chạy nào (ví dụ một lệnh gọi webhook được giữ lại chờ quá lâu, hoặc một probe kích hoạt giữa lúc đang chạy) không thêm hàng nào vào Runs. Thẻ trigger của nó hiển thị Did not run kèm lý do.

Quản lý automation

Mỗi thẻ có Run now, một công tắc bật/tắt, và menu … với Edit, Duplicate và Delete. Tắt một automation vẫn giữ cài đặt và lịch sử của nó, và Run now vẫn hoạt động khi automation đang tắt. Chỉnh sửa chỉ áp dụng cho các lượt chạy trong tương lai, không áp dụng cho lượt chạy đang chạy. Sau khi xóa, các URL webhook của nó trả về 400 và không khởi chạy gì. Các lượt chạy trước đây vẫn nằm trong Runs dưới tên cuộc hội thoại của chúng, và các cuộc hội thoại vẫn đọc được. Không có API hay Terraform provider để quản lý automation. Quản lý chúng trên trang này hoặc bằng cách hỏi trong chat. Trigger webhook là cách để mã bên ngoài bắt đầu một lượt chạy.
Sau 10 lượt chạy thất bại liên tiếp, CloudThinker tắt automation và gửi thông báo Automation turned off. Run now vẫn hoạt động để bạn gỡ lỗi. Bật lại sau khi đã khắc phục nguyên nhân.

Khắc phục sự cố

401 nghĩa là thiếu header Authorization hoặc sai URL. 403 nghĩa là sai secret. Kiểm tra header có dạng Bearer <secret> với đúng một dấu cách. Nếu mất secret, dùng Rotate webhook secret trên thẻ trigger và cập nhật bên gọi. Sau 10 lần thất bại trong 15 phút, bên gọi nhận 429 trong một khoảng thời gian.
Trường phút hoặc giờ có danh sách hoặc khoảng giá trị, chẳng hạn 0 9,17 * * *. Dùng một giá trị, *, hoặc một bước nhảy ở đó. Để chạy mỗi 12 giờ, 0 */12 * * * hoạt động. Với hai thời điểm không liên quan, hãy tạo automation thứ hai.
Script thoát với giá trị khác 0 hoặc 1. Sau 3 lỗi liên tiếp, một lượt chạy sửa lỗi bắt đầu. Đọc Last output trên thẻ, rồi yêu cầu trong chat sửa script.
Lượt chạy đang xếp hàng, hoặc cuộc hội thoại của nó đang bận với lượt khác. Lượt chạy bắt đầu khi cuộc hội thoại rảnh. Nếu bạn chọn Continue one conversation, một cuộc chat trong cuộc hội thoại đó có thể giữ lượt chạy đó lại.
Có thể Approvals đã từ chối thao tác ghi. Thao tác ghi bị từ chối không làm lượt chạy thất bại. Mở cuộc hội thoại của lượt chạy để xem những gì đã bị bỏ qua và vì sao. Với một thao tác ghi mà automation cần thực hiện mỗi lần, hãy đặt loại lượt chạy Automations sang một lựa chọn Ask me để nó chờ bạn thay vì bị từ chối, và thêm một Rule Allow với Runs from đặt là Automations để có hiệu lực khi Rule enforcement được bật (chi tiết).
Kiểm tra thẻ trigger. Did not run cho biết lý do, chẳng hạn đang có một lượt chạy khác hoặc automation đang tắt. Lần gửi webhook vượt giới hạn mỗi giờ hiển thị Rate limited.

Bắt đầu

Automation quickstart

Xây dựng một kiểm tra bất thường chi phí hằng ngày gửi cảnh báo đến Slack trong 10 phút

Vận hành tự động

Đặt giới hạn an toàn cho công việc chạy mà không ai theo dõi

Approval mode

Chọn cách quyết định thao tác ghi cho một automation hoặc tất cả

Thông báo

Chuyển lỗi và cảnh báo của agent đến Slack, Teams hoặc email