sql >> Database teknologi >  >> RDS >> Oracle

Arbejde med begivenheder i Oracle Cloud Infrastructure Del 1:grundlæggende service

Oracle Cloud Infrastructure Events er en tjeneste, der giver dig mulighed for at oprette en automatiseringsbase ved ændring af tilstand i en tjeneste, eller måske baseret på en form for modtaget input. Lad nu gå et skridt tilbage og Begivenhed er forekomsten af ​​en bestemt situation. For at disse situationer kan være nyttige, skal hændelser være med en form for information, for eksempel instansnavn, objektnavn, statuskode osv. Informationen kan give automatiseringen noget at arbejde med.

Begivenheder er grundlaget for serverløs arkitektur, nogle gange også omtalt som hændelsesdrevet arkitektur . Derudover er begivenheder afgørende for moderne softwarearkitekturer, da de gør det muligt at afkoble tjenester, hjælpe med at foretage asynkrone opkald af software. og lette skaleringsprocesser.

Et eksempel på en begivenhedsdrevet arkitektur:

  • Du udvikler en billedbehandlingsapp .
  • Hver gang et nyt billede uploades til en bucket udløser det en begivenhed .
  • Denne hændelse kalder en funktion der griber det billede og laver et miniaturebillede af det .
  • miniaturebilledet opbevares i en anden spand.
  • Dette udløser en anden hændelse, der sender en e-mailmeddelelse til klienten.

BEMÆRK OCI-funktion er en serverløs løsning fra OCI, der giver dig mulighed for at køre software til et enkelt formål uden at klargøre hardware eller VM'er, softwaren kører baseret på en begivenhed eller et skemajob, det er som at have funktioner som en service. Mere fra Funktioner HER

For at komme tilbage til OCI Events er nogle af de vigtige egenskaber:

  • Begivenhedstjeneste bruger JSON-objekt til at definere hændelsesreglerne . Du kan tænke på en regel som filteret som vil afgøre, hvilke begivenheder der er vigtige at overveje, for at bestemme, hvad der skal være dine input. Grundlæggende udløser Regler handlinger . Et eksempel på en regellogik kan være:
MATCH event WHERE (
  eventType EQUALS ANY OF (
  com.oraclecloud.computeapi.launchinstance.end
  )
)

Denne hændelse udløses, når en ny beregningsinstans oprettes

Men...

Hvor er JSON-delen?
Lad os på selve begivenheden se et eksempel på en begivenhed:

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

Dette er et eksempel på en instans, der lige er blevet oprettet, og som vil udløse hændelsen.

  • Du kan tilføje betingelser eller filtre for yderligere at indsnævre dine begivenheder .

Under en hændelsesregelkonfiguration kan du tilføje nogle attributter for yderligere at filtrere dine resultater

Om dette eksempel vi filtrerer resultater fra begivenhedstypen, kun for ændringer på Sandbox og dev rum, hele logikken ser sådan ud:

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

Ud over dette kan vi tilføje Filterbetingelser baseret på tags

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

Visuelt noget som:

Grundlæggende denne hændelse vil udløse hver gang en instans startes på Sandbox ELLER dev rum af brugeren elopez .

  • Reglerne specificerer mest og handler .

Hovedformålet med reglerne er at provokere noget, når de udløses, ellers vil de være ubrugelige.

Handlinger er svar defineret for matchede hændelser

Handlinger kan oprettes ved hjælp af:
Underretninger sende beskederne til en underretningstjeneste, som kan sende dem til slutpunkter, der abonnerer på emnet

Disse kunne være:en e-mailadresse, e-mail-gruppe, slack kanal osv.

Streaming ved at bruge denne tjeneste vil du optage dine begivenheder i en datastrøm for at opnå yderligere analyse og efterretninger om disse data.

Funktioner funktioner kan udføres baseret på modtagne hændelser. Hurtigt eksempel:

du kan have en hændelse, der udløses, hver gang en ny instans oprettes, og denne vil udføre en funktion, der konfigurerer overvågning for den nye instans.

  • Du skal tilføje tilladelser, så begivenhedstjenesten kan kalde handlingstjenesterne .

Tag det i betragtning enhver handling afvises som standard på OCI, så du bliver nødt til at oprette en politik, der tillader hændelsestjenesten at udføre handlingerne.

Grundlæggende tilladelse du skal bruge er:

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

Dette er for Lejemålet men du kan tildele den til et specifikt rum

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

Mere om rum HER


  1. Sådan installeres PostgreSQL 12 på Fedora 33

  2. Trin for trin opgraderingsproces for R12.2 Upgrade Part -1

  3. Enkel måde at beregne medianen med MySQL

  4. Oracle svarende til MySQL INSERT IGNORE?