Sự kiện Amazon CloudWatch mô tả những thay đổi trong tài nguyên AWS. Chúng ta có thể khớp các sự kiện và định tuyến chúng đến một hoặc nhiều chức năng mục tiêu. Sự kiện CloudWatch sẽ biết về những thay đổi trong hoạt động khi chúng xảy ra, ví dụ: nếu một tài nguyên được xác định trong Quy tắc Cloudwatch đã được tạo thì quy tắc sẽ biết về tài nguyên đó và đổi lại, nó sẽ kích hoạt một hàm mục tiêu.
Trước khi tiến hành và tạo quy tắc sự kiện, chúng ta hãy tìm hiểu những điều cơ bản về quy tắc đó.
Khi chúng ta nhấp vào liên kết trên, chúng ta sẽ thấy một trang web như sau, tại đó chúng ta được yêu cầu đăng nhập bằng thông tin đăng nhập của mình.
Sau khi đăng nhập thành công vào tài khoản của mình, bạn sẽ thấy màn hình như sau.
Trên bảng điều khiển Cloudwatch, hãy nhấp vào Quy tắc trong Sự kiện ở bên trái panel.
Tại đây, nhấp vào "Tạo quy tắc" để tạo quy tắc đầu tiên của bạn nhằm kích hoạt Hàm Lambda trong khu vực của bạn.
Chọn nút tùy chọn "Mẫu sự kiện", trong Tên dịch vụ, chọn "EC2", chọn "Thông báo thay đổi trạng thái phiên bản EC2" cho Loại sự kiện.
Nhấp vào Thêm mục tiêu để thêm Hàm Lambda hiện có làm mục tiêu và nhấp vào "Cấu hình chi tiết".
Nhấp vào đây để tìm hiểu cách tạo Hàm Lambda cho bạn. Tìm Mã Lambda tham chiếu sau đây cho bạn.
Mã Lambda:Sử dụng mã này để tạo Hàm Lambda nếu bạn không có 1 trong tài khoản của mình.
Đặt tên cho sự kiện cùng với mô tả và nhấp vào "Creare rule".
Điều này sẽ tạo ra một Quy tắc sự kiện sẽ kích hoạt một hàm Lambda mục tiêu bất cứ khi nào có sự thay đổi trong Trạng thái của các Phiên bản EC2.
Trước khi tiến hành và tạo quy tắc sự kiện, chúng ta hãy tìm hiểu những điều cơ bản về quy tắc đó.
- Sự kiện:
Sự kiện có nghĩa là có thay đổi trong Môi trường AWS. - Quy tắc:
Quy tắc được sử dụng để khớp với sự kiện. Tại đây, các sự kiện được so sánh và kiểm tra. - Mục tiêu:
Tại đây, các sự kiện được xử lý. Mục tiêu có thể bao gồm các phiên bản Amazon EC2, hàm AWS Lambda, luồng Kinesis, tác vụ Amazon ECS, máy trạng thái Step Functions, chủ đề Amazon SNS, hàng đợi Amazon SQS và mục tiêu tích hợp.
Điều kiện tiên quyết
- Tài khoản AWS (Tạonếu bạn chưa có).
- Hàm Lambda.
Chúng ta sẽ làm gì?
- Đăng nhập vào AWS.
- Tạo Quy tắc sự kiện Cloudwatch để kích hoạt Hàm Lambda.
Đăng nhập vào AWS
Nhấp vàođâyđể đến Trang đăng nhập AWS.Khi chúng ta nhấp vào liên kết trên, chúng ta sẽ thấy một trang web như sau, tại đó chúng ta được yêu cầu đăng nhập bằng thông tin đăng nhập của mình.
Sau khi đăng nhập thành công vào tài khoản của mình, bạn sẽ thấy màn hình như sau.
Tạo Sự kiện Cloudwatch để kích hoạt Hàm Lambda
Để tạo Quy tắc sự kiện Cloudwatch, hãy tìm kiếm cloudwatch và nhấp vào kết quả để đến bảng điều khiển Cloudwatch.Trên bảng điều khiển Cloudwatch, hãy nhấp vào Quy tắc trong Sự kiện ở bên trái panel.
Tại đây, nhấp vào "Tạo quy tắc" để tạo quy tắc đầu tiên của bạn nhằm kích hoạt Hàm Lambda trong khu vực của bạn.
Chọn nút tùy chọn "Mẫu sự kiện", trong Tên dịch vụ, chọn "EC2", chọn "Thông báo thay đổi trạng thái phiên bản EC2" cho Loại sự kiện.
Nhấp vào Thêm mục tiêu để thêm Hàm Lambda hiện có làm mục tiêu và nhấp vào "Cấu hình chi tiết".
Nhấp vào đây để tìm hiểu cách tạo Hàm Lambda cho bạn. Tìm Mã Lambda tham chiếu sau đây cho bạn.
Mã Lambda:Sử dụng mã này để tạo Hàm Lambda nếu bạn không có 1 trong tài khoản của mình.
Mã:
import boto3ec2 = boto3.resource('ec2',region_name='eu-west-3')def lambda_handler(event, context): for vol in ec2.volumes.all(): if vol.state=='available': if vol.tags is None: vid=vol.id v=ec2.Volume(vol.id) v.delete() print ('EBS Volume Deleted ' +vid) continue for tag in vol.tags: if tag['Key'] == 'Name': value=tag['Value'] if value != 'DoNNotDel' and vol.state=='available': vid=vol.id v=ec2.Volume(vol.id) v.delete() print ('EBS Volume Deleted ' +vid)
Điều này sẽ tạo ra một Quy tắc sự kiện sẽ kích hoạt một hàm Lambda mục tiêu bất cứ khi nào có sự thay đổi trong Trạng thái của các Phiên bản EC2.