sql >> Databasteknik >  >> RDS >> Oracle

Arbeta med händelser i Oracle Cloud Infrastructure Del 1:tjänstens grunder

Oracle Cloud Infrastructure Events är en tjänst som låter dig skapa någon automatiseringsbas vid ändring av tillstånd i en tjänst, eller kanske baserat på någon form av mottagen input. Låt nu ta ett steg tillbaka och Event är förekomsten av en viss situation. För att dessa situationer ska vara användbara måste händelser innehålla någon form av information, till exempel instansnamn, objektnamn, statuskod, etc. Informationen kan ge automatiseringen något att arbeta med.

Event är basen för serverlös arkitektur, ibland även kallad händelsedriven arkitektur . Dessutom är händelser avgörande för samtida programvaruarkitekturer eftersom de gör det möjligt att frikoppla tjänster, hjälpa till att göra asynkrona anrop av programvara. och underlätta skalningsprocesser.

Ett exempel på en händelsedriven arkitektur:

  • Du utvecklar en bildbehandlingsapp .
  • Varje gång en ny bild laddas upp till en hink utlöser den en händelse .
  • Händelsen anropar en funktion som tar den bilden och skapar en miniatyr av den .
  • miniatyrbilden förvaras i en annan hink.
  • Detta utlöser en annan händelse som sänder ett e-postmeddelande till klienten.

OBS OCI-funktionen är en serverlös lösning från OCI, som låter dig köra en programvara för enstaka ändamål utan att tillhandahålla hårdvara eller virtuella datorer, programvaran körs baserat på en händelse eller ett schemajobb, det är som att ha funktioner som en tjänst. Mer från Functions HÄR

För att komma tillbaka till OCI Events, några av de viktiga egenskaperna är:

  • Händelsetjänst använder JSON-objekt för att definiera händelsereglerna . Du kan tänka dig en regel som filtret som kommer att avgöra vilka händelser som är viktiga att överväga, för att avgöra vad som kommer att vara dina input. I grund och botten utlöser Regler åtgärder . Ett exempel på en regellogik kan vara:
MATCH event WHERE (
  eventType EQUALS ANY OF (
  com.oraclecloud.computeapi.launchinstance.end
  )
)

Denna händelse utlöses när en ny beräkningsinstans skapas

Men...

Var är JSON-delen?
På själva evenemanget, låt se ett exempel på en händelse:

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

Detta är ett exempel på en instans som just har skapats och kommer att utlösa händelsen.

  • Du kan lägga till villkor eller filter för att ytterligare begränsa dina evenemang .

Under en händelseregelkonfiguration kan du lägga till några attribut för att ytterligare filtrera dina resultat

Om det här exemplet vi filtrerar resultat från händelsetypen, endast för ändringar på Sandbox och dev fack, hela logiken ser ut som:

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

Utöver detta kan vi lägga till Filtervillkor baserat på Taggar

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

Visuellt något som:

I grund och botten denna händelse utlöses varje gång en instans startas på Sandbox ELLER dev fack av användaren elopez .

  • Regler anger mest och åtgärdar .

Huvudsyftet med reglerna är att provocera fram något när de utlöses, annars kommer de vara värdelösa.

Åtgärder är svar som definieras för matchade händelser

Åtgärder kan skapas med:
Aviseringar skicka meddelandena till en aviseringstjänst som kan skicka dem till slutpunkter som prenumererar på ämnet

Dessa kan vara:en e-postadress, e-postgrupp, slack channel, etc.

Strömmande genom att använda den här tjänsten kommer du att lägga in dina händelser i en dataström för att få ytterligare analys och intelligens över denna data.

Funktioner funktioner kan utföras baserat på mottagna händelser. Snabbexempel:

du kan ha en händelse som utlöses varje gång en ny instans skapas och detta kommer att utföra en funktion som konfigurerar övervakning för den nya instansen.

  • Du måste lägga till behörigheter så att evenemangstjänsten kan anropa åtgärdstjänsterna .

Ta hänsyn alla åtgärder nekas som standard på OCI så du måste skapa en policy som tillåter att Event-tjänsten utför åtgärderna.

Grundläggande behörighet du behöver är:

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

Detta är för Uthyrning men du kan tilldela den till ett specifikt fack

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

Mer om fack HÄR


  1. Gruppera efter värden som är i sekvens

  2. SQL Server Backup Check

  3. Installera SQL Server 2019 på en Mac

  4. Hur konverterar man antal veckor till datum?