Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm việc với các sự kiện trong Cơ sở hạ tầng đám mây Oracle Phần 1:khái niệm cơ bản về dịch vụ

Sự kiện về cơ sở hạ tầng đám mây của Oracle là một dịch vụ cho phép bạn tạo một số cơ sở tự động hóa dựa trên sự thay đổi trạng thái trong một dịch vụ hoặc có thể dựa trên một số loại đầu vào nhận được. Bây giờ, hãy lùi lại một bước và Sự kiện là sự xuất hiện của một tình huống cụ thể. Để các tình huống này trở nên hữu ích, các sự kiện cần có một số loại thông tin, chẳng hạn như tên phiên bản, tên đối tượng, mã trạng thái, v.v.

Sự kiện là cơ sở của kiến ​​trúc không máy chủ, đôi khi còn được gọi là kiến ​​trúc hướng sự kiện . Ngoài ra, các sự kiện rất quan trọng đối với kiến ​​trúc phần mềm đương đại vì cho phép tách các dịch vụ, giúp tạo lệnh gọi không đồng bộ phần mềm và tạo điều kiện cho các quy trình mở rộng quy mô.

Một ví dụ về kiến ​​trúc hướng sự kiện:

  • Bạn phát triển một ứng dụng xử lý hình ảnh .
  • Mỗi khi một hình ảnh mới được tải lên một nhóm nó sẽ kích hoạt một sự kiện .
  • Sự kiện này gọi một hàm lấy hình ảnh đó và tạo hình thu nhỏ từ hình ảnh đó .
  • Hình thu nhỏ được lưu trữ trong một thùng khác.
  • Điều này kích hoạt một sự kiện khác gửi thông báo qua email cho khách hàng.

LƯU Ý Chức năng OCI là một giải pháp không có máy chủ của OCI, cho phép bạn chạy một phần mềm mục đích duy nhất mà không cần cung cấp phần cứng hoặc máy ảo, phần mềm chạy dựa trên một sự kiện hoặc một công việc theo lịch trình, nó giống như có các chức năng như một dịch vụ. Xem thêm từ Các chức năng TẠI ĐÂY

Quay lại Sự kiện OCI, một số đặc điểm quan trọng là:

  • Dịch vụ sự kiện sử dụng đối tượng JSON để xác định các quy tắc sự kiện . Bạn có thể nghĩ về một quy tắc như bộ lọc điều đó sẽ xác định những sự kiện nào là quan trọng cần xem xét, để xác định những gì sẽ là đầu vào của bạn. Về cơ bản, Quy tắc kích hoạt hành động . Ví dụ về logic quy tắc có thể là:
MATCH event WHERE (
  eventType EQUALS ANY OF (
  com.oraclecloud.computeapi.launchinstance.end
  )
)

Sự kiện này sẽ kích hoạt khi một phiên bản máy tính mới được tạo

Nhưng ...

Phần JSON ở đâu ??
Về bản thân sự kiện, hãy xem ví dụ về một sự kiện:

{
  "eventType": "com.oraclecloud.computeapi.launchinstance.end",
  "cloudEventsVersion": "0.1",
  "eventTypeVersion": "2.0",
  "source": "ComputeApi",
  "eventTime": "2019-08-16T12:07:42.794Z",
  "contentType": "application/json",
  "data": {
    "compartmentId": "ocid1.compartment.oc1..unique_ID",
    "compartmentName": "example_compartment",
    "resourceName": "my_instance",
    "resourceId": "ocid1.instance.oc1.phx.unique_ID",
    "availabilityDomain": "availability_domain",
    "additionalDetails": {
      "imageId": "ocid1.image.oc1.phx.unique_ID",
      "shape": "VM.Standard2.1",
      "type": "CustomerVmi"
    }
  },
  "eventID": "unique_ID",
  "extensions": {
    "compartmentId": "ocid1.compartment.oc1..unique_ID"
  }
}

Đây là một ví dụ về một phiên bản vừa được tạo và sẽ kích hoạt sự kiện.

  • Bạn có thể thêm các điều kiện hoặc bộ lọc để thu hẹp hơn nữa các sự kiện của mình .

Trong cấu hình quy tắc sự kiện, bạn có thể thêm một số thuộc tính để lọc thêm kết quả của mình

Trong ví dụ này chúng tôi đang lọc kết quả từ loại sự kiện, chỉ dành cho các thay đổi trên Hộp cát và nhà phát triển các ngăn, toàn bộ logic trông giống như:

MATCH event WHERE (
  eventType EQUALS ANY OF (
  com.oraclecloud.computeapi.launchinstance.end
  )
  AND (
  compartmentName MATCHES ANY OF (
  Sandbox,
  dev
  )
 )
)

Ngoài ra, chúng tôi có thể thêm Điều kiện lọc dựa trên Thẻ

MATCH event WHERE (
  eventType EQUALS ANY OF (
  com.oraclecloud.computeapi.launchinstance.end
  )
  AND (
  compartmentName MATCHES ANY OF (
  Sandbox,
  dev
  )
  definedTags INCLUDES ANY OF (
  Oracle-Tags.CreatedBy.elopez
  )
 )
)

Trực quan một cái gì đó như:

Về cơ bản sự kiện này sẽ kích hoạt mỗi khi một phiên bản được khởi chạy trên Sandbox HOẶC nhà phát triển ngăn do người dùng elopez .

  • Các quy tắc được chỉ định rõ nhất và hành động .

Mục tiêu chính của các quy tắc là kích động điều gì đó khi chúng được kích hoạt, nếu không sẽ vô ích.

Hành động là phản hồi được xác định cho sự kiện phù hợp

Các hành động có thể được tạo bằng cách sử dụng:
Thông báo gửi tin nhắn đến một dịch vụ thông báo có thể gửi nó đến các thiết bị đầu cuối đã đăng ký chủ đề

Đó có thể là:địa chỉ email, nhóm email, kênh không hoạt động, v.v.

Truyền trực tuyến sử dụng dịch vụ này, bạn sẽ nhập các sự kiện của mình vào luồng dữ liệu để có được phân tích và thông tin chi tiết hơn về dữ liệu này.

Chức năng các chức năng có thể được thực thi dựa trên các sự kiện nhận được. Ví dụ nhanh:

bạn có thể có một sự kiện kích hoạt mỗi khi một phiên bản mới được tạo và điều này sẽ thực thi một chức năng định cấu hình giám sát cho phiên bản mới đó.

  • Bạn cần thêm quyền để dịch vụ Sự kiện có thể gọi các dịch vụ hành động .

Cân nhắc Theo mặc định, mọi hành động đều bị từ chối trên OCI, vì vậy bạn sẽ cần tạo một chính sách cho phép dịch vụ Sự kiện thực hiện các hành động.

Quyền cơ bản bạn sẽ cần là:

Allow service cloudEvents to use ons-topic in compartment DEV
Allow service cloudEvents to use functions-family in compartment DEV

Điều này dành cho Thuê nhà nhưng bạn có thể gán nó vào một Ngăn cụ thể

Allow service cloudEvents to use ons-topic in compartment DEV
Allow service cloudEvents to use functions-family in compartment DEV

Tìm hiểu thêm về các ngăn TẠI ĐÂY


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. dữ liệu listagg sang định dạng có thể sử dụng được?

  2. Làm cách nào để tự động tạo danh tính cho cơ sở dữ liệu Oracle thông qua khung Entity?

  3. Buộc sử dụng chỉ mục trong Oracle

  4. Kết nối Oracle với Amazon Aurora

  5. MySQL:Làm thế nào để bảo mật mức hàng (như Cơ sở dữ liệu riêng ảo của Oracle)?