1. Giới thiệu

Eventarc giúp bạn dễ dàng kết nối các dịch vụ của Google Cloud với các sự kiện từ nhiều nguồn. Nền tảng này cho phép bạn xây dựng các cấu trúc hướng sự kiện, trong đó các vi dịch vụ được liên kết lỏng lẻo và phân tán. Nền tảng này cũng xử lý việc tiếp nhận, phân phối, bảo mật, uỷ quyền và xử lý lỗi cho bạn, giúp cải thiện tính linh hoạt của nhà phát triển và khả năng phục hồi của ứng dụng.
Datadog là một nền tảng giám sát và bảo mật cho các ứng dụng đám mây. Tính năng này kết hợp các dấu vết, chỉ số và nhật ký từ đầu đến cuối để giúp bạn quan sát được các ứng dụng, cơ sở hạ tầng và dịch vụ bên thứ ba.
Trong lớp học lập trình đầu tiên này, bạn sẽ tìm hiểu cách định tuyến một cảnh báo giám sát Datadog đơn giản đến Google Cloud bằng Eventarc.
Kiến thức bạn sẽ học được
- Cách khám phá nhà cung cấp Datadog.
- Cách thiết lập một kênh cho nhà cung cấp Datadog.
- Cách tạo quy trình làm việc để ghi lại sự kiện.
- Cách tạo một điều kiện kích hoạt Eventarc bằng kênh.
- Cách tạo một màn hình Datadog.
- Cách kiểm thử màn hình Datadog, trình kích hoạt Eventarc và quy trình.
2. Thiết lập và yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
- Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.



- Tên dự án là tên hiển thị của những người tham gia dự án này. Đây là một chuỗi ký tự mà các API của Google không sử dụng. Bạn có thể cập nhật thông tin này bất cứ lúc nào.
- Mã dự án phải là duy nhất trên tất cả các dự án trên Google Cloud và không thể thay đổi (bạn không thể thay đổi sau khi đã đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là
PROJECT_ID). Nếu không thích mã nhận dạng được tạo, bạn có thể tạo một mã nhận dạng ngẫu nhiên khác. Hoặc bạn có thể thử tên người dùng của riêng mình để xem tên đó có dùng được hay không. Bạn không thể thay đổi thông tin này sau bước này và thông tin này sẽ giữ nguyên trong suốt thời gian diễn ra dự án. - Để bạn biết, có một giá trị thứ ba là Số dự án mà một số API sử dụng. Tìm hiểu thêm về cả 3 giá trị này trong tài liệu.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên Cloud. Việc thực hiện lớp học lập trình này sẽ không tốn nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh phát sinh phí thanh toán ngoài hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá toàn bộ dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí trị giá 300 USD.
Khởi động Cloud Shell
Mặc dù có thể vận hành Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Google Cloud Shell, một môi trường dòng lệnh chạy trên Cloud.
Trên Bảng điều khiển Google Cloud, hãy nhấp vào biểu tượng Cloud Shell trên thanh công cụ ở trên cùng bên phải:

Quá trình này chỉ mất vài phút để cung cấp và kết nối với môi trường. Khi quá trình này kết thúc, bạn sẽ thấy như sau:

Máy ảo này được trang bị tất cả các công cụ phát triển mà bạn cần. Nó cung cấp một thư mục chính có dung lượng 5 GB và chạy trên Google Cloud, giúp tăng cường đáng kể hiệu suất mạng và hoạt động xác thực. Bạn có thể thực hiện mọi thao tác trong lớp học lập trình này trong trình duyệt. Bạn không cần cài đặt bất cứ thứ gì.
Thiết lập gcloud
Trong Cloud Shell, hãy đặt mã dự án và lưu mã dự án đó dưới dạng biến PROJECT_ID.
Ngoài ra, hãy đặt một biến REGION thành us-central1. Đây là khu vực mà bạn sẽ tạo tài nguyên sau này.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
Bật API
Bật tất cả các dịch vụ cần thiết:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Khám phá nhà cung cấp Datadog
Nhà cung cấp Eventarc là một dịch vụ hoặc thực thể có thể phát ra các sự kiện trực tiếp đến Google Cloud, sau đó các sự kiện này sẽ được định tuyến đến dự án của bạn. Các nhà cung cấp bên thứ ba (chẳng hạn như Datadog) là những nhà cung cấp không thuộc Google Cloud và được tích hợp với Google Cloud thông qua Eventarc.
Trong Cloud Shell, hãy chạy lệnh sau để xem danh sách các nhà cung cấp của Google Cloud và bên thứ ba:
gcloud eventarc providers list
Danh sách này liệt kê Google Cloud và các nhà cung cấp bên thứ ba, cũng như những vị trí mà họ có mặt:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
Bạn có thể thu hẹp danh sách xuống còn các nhà cung cấp bên thứ ba bằng lệnh sau:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
Bạn sẽ thấy Datadog trong danh sách:
NAME: datadog LOCATION: us-central1
Bạn cũng có thể mô tả trình cung cấp Datadog để xem những sự kiện mà trình cung cấp này hỗ trợ:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. Thiết lập kênh
Bạn cần thiết lập một kênh để tích hợp dự án của mình với một nhà cung cấp. Việc này bao gồm tạo kênh, truy xuất thông tin chi tiết về kênh và gửi thông tin đó cho nhà cung cấp. Sau khi nhà cung cấp khởi tạo kết nối với kênh, nhà cung cấp có thể bắt đầu gửi các sự kiện đến dự án của bạn.
Tạo kênh
Bạn có thể tạo một kênh cho nhà cung cấp Datadog bằng cách sử dụng gcloud:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
Bạn cũng có thể tạo kênh này trong phần Kênh của trang Eventarc trong Bảng điều khiển Google Cloud:

Truy xuất thông tin chi tiết về kênh
Sau khi tạo kênh, hãy truy xuất thông tin chi tiết của kênh từ gcloud:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
Kết quả sẽ tương tự như kết quả sau:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Tương tự, bạn có thể xem kênh trên Google Cloud Console:

Trạng thái kênh cho biết trạng thái của kênh. Đó có thể là một trong những loại sau:
PENDING– Kênh đã được tạo thành công và có mã thông báo kích hoạt để tạo kết nối với nhà cung cấp. Để thay đổi trạng thái của kênh từPENDINGthànhACTIVE, bạn phải cung cấp mã thông báo cho nhà cung cấp và dùng mã thông báo này để kết nối kênh trong vòng 24 giờ kể từ khi kênh được tạo.ACTIVE– Kênh đã được kết nối thành công với nhà cung cấp. KênhACTIVEđã sẵn sàng nhận và định tuyến các sự kiện từ nhà cung cấp.INACTIVE– Kênh không thể nhận sự kiện cũng như không thể kích hoạt lại. Nhà cung cấp đã bị ngắt kết nối khỏi kênh này hoặc mã thông báo kích hoạt kênh đã hết hạn và nhà cung cấp không được kết nối. Để thiết lập lại mối kết nối với một nhà cung cấp, bạn phải tạo một kênh mới cho nhà cung cấp đó.
Mã thông báo kích hoạt là mã thông báo dùng một lần và có giới hạn thời gian, được dùng để tạo mối kết nối giữa nhà cung cấp và dự án của người đăng ký. Chỉ một nhà cung cấp cụ thể (được chọn trong quá trình tạo kênh) mới có thể sử dụng mã thông báo này. Mã thông báo này có hiệu lực trong 24 giờ sau khi kênh được tạo. Sau 24 giờ, kênh sẽ trở thành INACTIVE.
Gửi thông tin chi tiết về kênh cho nhà cung cấp
Bạn cần gửi các thông tin chi tiết sau về kênh cho nhà cung cấp Datadog:
- Tên kênh (ví dụ:
projects/project-id/locations/us-central1/channels/datadog-channel) - Mã thông báo kích hoạt (ví dụ:
so5g4Kdasda7y2MSasdaGn8njB2)
Đăng nhập vào Datadog, chuyển đến trang tích hợp và đảm bảo bạn đã cài đặt chế độ tích hợp Google Eventarc:

Trong phần cấu hình của Google Eventarc, hãy nhập tên kênh đầy đủ và mã thông báo kích hoạt:

Giờ đây, bạn sẽ thấy kênh này trong danh sách kênh và sau vài giây, bạn cũng sẽ thấy kênh này hoạt động trong Google Cloud Console:

Giờ đây, bạn đã sẵn sàng sử dụng kênh!
5. Tạo quy trình công việc
Bạn cần có một đích đến trong Google Cloud để nhận các sự kiện từ nhà cung cấp. Eventarc hỗ trợ một số đích đến của sự kiện, chẳng hạn như Cloud Run, Workflows, các dịch vụ Kubernetes. Trong trường hợp này, hãy triển khai một quy trình công việc để chỉ ghi lại các sự kiện đã nhận được.
Tạo tệp workflow-datadog1.yaml có nội dung sau:
main:
params: [event]
steps:
- logStep:
call: sys.log
args:
data: ${event}
Xin lưu ý rằng quy trình công việc đang nhận một sự kiện làm tham số. Sự kiện này sẽ đến từ hoạt động giám sát Datadog thông qua Eventarc. Sau khi nhận được sự kiện, quy trình công việc chỉ cần ghi lại sự kiện đã nhận.
Triển khai quy trình công việc:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
Quy trình công việc đã được triển khai nhưng chưa chạy. Hàm này sẽ được thực thi bằng một trình kích hoạt Eventarc khi nhận được cảnh báo Datadog.
6. Tạo điều kiện kích hoạt Eventarc
Bây giờ, bạn đã sẵn sàng kết nối các sự kiện từ nhà cung cấp Datadog với Workflows bằng một trình kích hoạt Eventarc.
Định cấu hình tài khoản dịch vụ
Bạn cần có tài khoản dịch vụ có vai trò eventarc.eventReceiver khi tạo một điều kiện kích hoạt. Bạn có thể tạo một tài khoản dịch vụ chuyên dụng hoặc sử dụng tài khoản dịch vụ điện toán mặc định.
Để đơn giản hoá, hãy sử dụng tài khoản dịch vụ mặc định của Compute Engine và cấp vai trò eventarc.eventReceiver:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--role roles/eventarc.eventReceiver
Tạo điều kiện kích hoạt
Tạo một điều kiện kích hoạt bằng kênh Datadog, loại sự kiện và cả đích đến của quy trình công việc:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
Bạn có thể liệt kê các điều kiện kích hoạt để xem điều kiện kích hoạt mới tạo có đang hoạt động hay không:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. Tạo một màn hình Datadog
Bây giờ, bạn sẽ tạo một màn hình Datadog và kết nối màn hình đó với Eventarc.
Đây sẽ là một màn hình thuộc loại Hello World với các giá trị mặc định. Bạn sẽ kích hoạt quy trình này theo cách thủ công để tạo cảnh báo giám sát. Cảnh báo này sẽ tạo ra một sự kiện Eventarc trong Google Cloud.
Để tạo một màn hình trong Datadog, hãy đăng nhập vào Datadog. Di chuột lên biểu tượng Monitors trong trình đơn chính rồi nhấp vào biểu tượng New Monitor trong trình đơn phụ. Có nhiều loại màn hình. Chọn loại màn hình Metric.
Trong trang New Monitor, hãy giữ nguyên giá trị mặc định cho bước 1 và 2.
- Ở bước 3, hãy đặt
Alert thresholdthành 1 - Trong bước 4, hãy đặt
Test monitor for Eventarclàm tên màn hình và đặtNotify your teamthành@eventarc_<your-project-id>_<your-region>_<your-channel-name>
Giữ trang màn hình mở cho bước tiếp theo, nơi bạn sẽ kiểm tra màn hình.
8. Kiểm tra màn hình và điều kiện kích hoạt
Để kiểm thử màn hình Datadog và trình kích hoạt Eventarc, bạn sẽ kích hoạt màn hình theo cách thủ công.
Ở cuối trang tạo màn hình, hãy nhấp vào nút Test Notifications:

Sau đó, hãy nhấp vào nút Run Test:

Thao tác này sẽ mô phỏng quá trình chuyển đổi trạng thái trong màn hình và kích hoạt một sự kiện Eventarc.
Kiểm tra quy trình workflow-datadog1. Bạn sẽ thấy có một lượt thực thi mới:

Kiểm tra thông tin chi tiết về quá trình thực thi. Bạn sẽ thấy loại sự kiện Datadog datadog.v1.alert được tạo từ cảnh báo giám sát trong đầu vào của quy trình công việc và cả trong nhật ký:

9. Xin chúc mừng
Xin chúc mừng, bạn đã hoàn tất lớp học lập trình này! Bạn có thể tiếp tục tham gia lớp học lập trình thứ hai để tìm hiểu cách phản hồi các cảnh báo giám sát của Datadog bằng Workflows.
Nội dung đã đề cập
- Cách khám phá nhà cung cấp Datadog.
- Cách thiết lập một kênh cho nhà cung cấp Datadog.
- Cách tạo quy trình làm việc để ghi lại sự kiện.
- Cách tạo một điều kiện kích hoạt Eventarc bằng kênh.
- Cách tạo một màn hình Datadog.
- Cách kiểm thử màn hình Datadog, trình kích hoạt Eventarc và quy trình.