Chuyển đến nội dung chính
Webhook cho phép CloudThinker đẩy sự kiện đến các hệ thống bên ngoài của bạn theo thời gian thực, hỗ trợ tự động hóa, tích hợp và các quy trình làm việc tùy chỉnh.

Webhook hoạt động như thế nào

1

Cấu hình

Tạo một webhook endpoint với URL đích và chọn các sự kiện cần đăng ký
2

Kích hoạt

Khi các sự kiện đã đăng ký xảy ra, CloudThinker chuẩn bị payload webhook
3

Gửi đi

CloudThinker gửi một HTTP POST request đến endpoint của bạn kèm dữ liệu sự kiện
4

Xử lý

Hệ thống của bạn nhận và xử lý webhook, trả về phản hồi thành công

Tạo webhook

Từ giao diện console

  1. Điều hướng đến Settings > Webhooks
  2. Nhấp Create Webhook
  3. Cấu hình webhook:
    • Name: Tên định danh mô tả
    • URL: URL endpoint của bạn (phải là HTTPS)
    • Events: Chọn các sự kiện cần đăng ký
    • Secret: Secret tùy chọn để xác minh chữ ký
  4. Lưu và kiểm tra

Cấu hình webhook

TrườngMô tảBắt buộc
NameTên thân thiện để nhận dạng
URLEndpoint HTTPS để nhận sự kiện
EventsLoại sự kiện cần đăng ký
SecretSecret dùng chung để ký payloadKhuyến nghị
HeadersHeader tùy chỉnh để đưa vàoKhông
ActiveBật/tắt webhook

Loại sự kiện

Đăng ký các sự kiện trên CloudThinker:

Sự kiện đề xuất

Sự kiệnKích hoạt khi
recommendation.createdĐề xuất mới được tạo
recommendation.updatedTrạng thái đề xuất thay đổi
recommendation.implementedĐề xuất được đánh dấu hoàn thành
recommendation.commentBình luận được thêm vào đề xuất

Sự kiện sự cố

Sự kiệnKích hoạt khi
incident.createdSự cố mới được tạo
incident.updatedChi tiết sự cố thay đổi
incident.resolvedSự cố được đánh dấu đã giải quyết
incident.commentBình luận được thêm vào sự cố

Sự kiện bảo mật

Sự kiệnKích hoạt khi
finding.createdPhát hiện bảo mật mới được phát hiện
finding.resolvedPhát hiện bảo mật được giải quyết
compliance.changedTrạng thái tuân thủ thay đổi

Sự kiện tác vụ

Sự kiệnKích hoạt khi
task.startedTác vụ theo lịch bắt đầu thực thi
task.completedTác vụ hoàn thành thành công
task.failedTác vụ gặp lỗi

Sự kiện agent

Sự kiệnKích hoạt khi
conversation.completedCuộc hội thoại với agent kết thúc
approval.requestedAgent yêu cầu phê duyệt cho hành động
approval.grantedNgười dùng phê duyệt hành động của agent

Sự kiện tài nguyên

Sự kiệnKích hoạt khi
resource.discoveredTài nguyên đám mây mới được tìm thấy
resource.changedCấu hình tài nguyên thay đổi
resource.deletedTài nguyên không còn tồn tại

Payload webhook

Mỗi webhook bao gồm một payload chuẩn hóa:
{
  "id": "evt_abc123",
  "type": "recommendation.created",
  "timestamp": "2024-01-15T10:30:00Z",
  "workspace_id": "ws_xyz789",
  "data": {
    "id": "rec_def456",
    "title": "Right-size EC2 instance i-0abc123",
    "potential_savings": 150.00,
    "effort": "low",
    "risk": "low",
    "status": "pending"
  }
}

Các trường payload

TrườngMô tả
idĐịnh danh sự kiện duy nhất
typeLoại sự kiện (ví dụ: recommendation.created)
timestampTimestamp ISO 8601
workspace_idWorkspace nơi sự kiện xảy ra
dataPayload đặc thù cho sự kiện

Bảo mật

Xác minh chữ ký

Khi bạn cấu hình webhook secret, CloudThinker ký mỗi payload:
X-CloudThinker-Signature: sha256=<signature>
Xác minh chữ ký trong endpoint của bạn:
import hmac
import hashlib

def verify_signature(payload, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload.encode(),
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(f"sha256={expected}", signature)

Cho phép IP

Webhook CloudThinker xuất phát từ các dải IP đã biết. Liên hệ hỗ trợ để lấy danh sách IP hiện tại và cấu hình quy tắc tường lửa.

Chỉ HTTPS

URL webhook phải sử dụng HTTPS. Chứng chỉ tự ký không được hỗ trợ trong môi trường production.

Logic thử lại

CloudThinker thử lại các lần gửi webhook thất bại:

Lịch trình thử lại

Lần thửĐộ trễ
1Ngay lập tức
21 phút
35 phút
430 phút
52 giờ
68 giờ

Tiêu chí thành công

Một lần gửi được coi là thành công khi endpoint của bạn trả về:
  • HTTP status code 2xx
  • Phản hồi trong vòng 30 giây

Xử lý thất bại

Sau khi tất cả các lần thử đều thất bại:
  • Sự kiện được đánh dấu là thất bại
  • Thông báo được gửi (nếu đã cấu hình)
  • Sự kiện có sẵn trong nhật ký webhook

Quản lý webhook

Kiểm tra webhook

Kiểm tra việc gửi webhook trước khi đưa vào production:
  1. Chọn webhook trong cài đặt
  2. Nhấp Send Test Event
  3. Chọn loại sự kiện
  4. Xem lại trạng thái gửi và payload

Xem nhật ký

Theo dõi hoạt động webhook:
  1. Điều hướng đến Settings > Webhooks > Logs
  2. Xem các lần gửi
  3. Xem chi tiết request/response
  4. Lọc theo trạng thái, loại sự kiện, ngày

Tạm dừng webhook

Tạm thời vô hiệu hóa webhook:
  1. Chọn webhook
  2. Tắt Active
  3. Các sự kiện trong thời gian tạm dừng không được xếp hàng

Mẫu webhook

Sử dụng mẫu cho các tích hợp phổ biến:

Slack

Đăng sự kiện lên các kênh Slack:
{
  "url": "https://hooks.slack.com/services/...",
  "events": ["recommendation.created", "incident.created"],
  "transform": {
    "text": "New {{type}}: {{data.title}}"
  }
}

Jira

Tạo ticket Jira từ sự kiện CloudThinker:
{
  "url": "https://your-org.atlassian.net/...",
  "events": ["recommendation.created"],
  "headers": {
    "Authorization": "Basic <base64_credentials>"
  }
}

PagerDuty

Kích hoạt sự cố PagerDuty:
{
  "url": "https://events.pagerduty.com/v2/enqueue",
  "events": ["incident.created"],
  "headers": {
    "Content-Type": "application/json"
  }
}

Thực hành tốt nhất

Sử dụng webhook secret và xác minh chữ ký để đảm bảo request xuất phát từ CloudThinker.
Trả về phản hồi 2xx ngay lập tức, sau đó xử lý sự kiện bất đồng bộ. Độ trễ xử lý kéo dài gây ra timeout.
Các lần gửi webhook đôi khi có thể bị trùng. Sử dụng id của sự kiện để loại bỏ trùng lặp ở phía bạn.
Thiết lập cảnh báo cho các webhook thất bại. Điều tra và khắc phục sự cố kịp thời để tránh bỏ lỡ sự kiện.
Chỉ đăng ký các sự kiện bạn cần. Giảm nhiễu và chi phí xử lý.

Ví dụ tích hợp

GitHub Actions

Kích hoạt quy trình làm việc từ sự kiện CloudThinker:
# .github/workflows/cloudthinker.yml
on:
  repository_dispatch:
    types: [recommendation-created]

jobs:
  process:
    runs-on: ubuntu-latest
    steps:
      - name: Process recommendation
        run: |
          echo "New recommendation: ${{ github.event.client_payload.title }}"

AWS Lambda

Xử lý webhook bằng serverless function:
def lambda_handler(event, context):
    body = json.loads(event['body'])

    if body['type'] == 'recommendation.created':
        # Process new recommendation
        process_recommendation(body['data'])

    return {'statusCode': 200}

Liên quan

Webhook sự cố

Webhook đầu vào từ PagerDuty, Datadog, Prometheus và nhiều hơn nữa để tự động kích hoạt phân tích nguyên nhân gốc rễ

Tasks & Scheduling

Lên lịch các hoạt động định kỳ và tạo quy trình theo sự kiện

Thông báo

Cấu hình định tuyến cảnh báo cho đề xuất, sự cố và phát hiện bảo mật

Agent tự trị

Để agent tự động hành động theo sự kiện webhook mà không cần xem xét thủ công