Oracle
 sql >> база данни >  >> RDS >> Oracle

Работа със събития в Oracle Cloud Infrastructure, част 1:основи на услугите

Събития на Oracle Cloud Infrastructure е услуга, която ви позволява да създадете някаква автоматизирана база при промяна на състоянието в услуга или може би въз основа на някакъв вид получен вход. Сега, нека направим крачка назад и Събитие е възникването на конкретна ситуация. За да бъдат полезни тези ситуации, събитията трябва да са с някакъв вид информация, например име на екземпляр, име на обект, код на състоянието и т.н. Информацията може да предостави на автоматизацията нещо, с което да работи.

Събития са основата на архитектурата без сървър, понякога наричана също управлявана от събития архитектура . Освен това събитията са от решаващо значение за съвременните софтуерни архитектури, тъй като позволяват отделяне на услугите, помагат за извършване на софтуерни асинхронни разговори и улеснява процесите на мащабиране.

Пример за управлявана от събитие архитектура:

  • Разработвате приложение за обработка на изображения .
  • Всеки път, когато ново изображение се качва в кофа то задейства събитие .
  • Това събитие извиква функция които грабват това изображение и създават миниизображение от него .
  • Миниизображението се съхранява в друга кофа.
  • Това задейства друго събитие, което изпраща известие по имейл на клиента.

ЗАБЕЛЕЖКА OCI функцията е безсървърно решение от OCI, което ви позволява да стартирате софтуер с една цел без осигуряване на хардуер или виртуални машини, софтуерът работи на базата на събитие или задание по график, това е като да имате функции като услуга. Още от функциите ТУК

Връщайки се към OCI събития, някои от важните характеристики са:

  • Услугата за събития използва JSON обект за дефиниране на правилата за събития . Можете да измислитеправило като филтъра това ще определи кои събития е важно да вземете предвид, за да определите какви ще бъдат вашите приноси. По принцип Правилата задействат действия . Пример за логика на правило може да бъде:
MATCH event WHERE (
  eventType EQUALS ANY OF (
  com.oraclecloud.computeapi.launchinstance.end
  )
)

Това събитие ще се задейства, когато бъде създадена нова изчислителна инстанция

Но...

Къде е частта JSON??
На самото събитие нека да видим пример за събитие:

{
  "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"
  }
}

Това е пример за току-що създаден екземпляр и ще задейства събитието.

  • Можете да добавите условия или филтри, за да стесните допълнително събитията си .

По време на конфигурация на правилото за събитие можете да добавите някои атрибути за допълнително филтриране на резултатите

В този пример филтрираме резултатите от типа събитие, за промени само в Sandbox и dev отделения, цялата логика изглежда така:

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

В допълнение към това можем да добавим Условия за филтриране въз основа на етикети

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
  )
 )
)

Визуално нещо като:

По принцип това събитие ще се задейства всеки път, когато даден екземпляр се стартира в Sandbox ИЛИ dev отделения от потребителя elopez .

  • Правилата най-много определят и действия .

Основната цел на правилата е да провокират нещо, когато се задействат, в противен случай ще бъдат безполезни.

Действията са отговори, дефинирани за съвпадение на събитие

Действията могат да бъдат създадени с помощта на:
Известия изпращайте съобщенията до услуга за уведомяване, която може да ги изпраща до крайни точки, които са абонирани за темата

Те могат да бъдат:имейл адрес, имейл група, слаб канал и т.н.

Поточно предаване използвайки тази услуга, вие ще поглъщате вашите събития в потоци от данни, за да получите допълнителен анализ и разузнавателна информация за тези данни.

Функции функциите могат да се изпълняват въз основа на получените събития. Бърз пример:

можете да имате събитие, което да се задейства всеки път, когато се създаде нов екземпляр и това ще изпълни функция, която конфигурира наблюдението за тази нова инстанция.

  • Трябва да добавите разрешения, за да може услугата за събития да извика услугите за действие .

Вземете под внимание всяко действие е отказано по подразбиране в OCI, така че ще трябва да създадете политика, която позволява на услугата Събития да изпълнява действията.

Основното разрешение, от което се нуждаете, е:

Allow service cloudEvents to use ons-topic in tenancy
Allow service cloudEvents to use functions-family in tenancy

Това е за Наем но можете да го присвоите към конкретно Отделение

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

Повече за отделенията ТУК


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберете сравнението на две колони като една колона в Oracle

  2. Стартирайте Oracle Client в 32-битов режим на 64-битова машина

  3. Как да получите името на месеца от дата в Oracle

  4. Защо променливата на oracle plsql varchar2 се нуждае от размер, но параметърът не?

  5. RDLC LocalReport Експорт в Excel наистина бавен