DynamoDB attiva tipi di trigger e tutto ciò che devi sapere

DynamoDB attiva tipi di trigger e tutto ciò che devi sapere
I trigger DynamoDB funzionano come trigger in qualsiasi altro database. La funzione abilita l'esecuzione automatica di varie azioni personalizzate in base a una matrice di aggiornamenti a livello di livello di articolo sulla tabella Dynamodb o sulla tua indice. Rimane il metodo più efficiente per catturare le modifiche a livello di metodo o a livello di articolo su un elemento all'interno della tabella Dynamodb.

I trigger sono generalmente pezzi di codice che eseguono e rispondono automaticamente a nuovi eventi che si verificano per attivare una funzione AWS Lambda. È possibile utilizzare i trigger DynamODB per creare le applicazioni potenti e funzionali basate sugli eventi che si verificano sui flussi o sul database.

Questo articolo discute le basi dei trigger DynamoDB. Conoscerai i tipi di innesco DynamoDB, come abilitare ogni tipo e alcuni casi d'uso.

Tipi di innesco DynamoDB

Esistono due tipi di grilletti DynamoDB. Loro includono:

UN. Flussi DynamoDB

Un flusso DynamoDB è un flusso di informazioni ordinato o programmato basato su modifiche associate agli elementi in una tabella Dynamodb. Ogni volta che si abilita un flusso su una tabella particolare, DynamoDB acquisisce le informazioni su ogni modifica in un elemento di dati all'interno della tabella e memorizza le informazioni in un flusso.

I flussi possono attivare la funzione Lambda una volta configurata la funzione. È possibile impostare i flussi per attivare una funzione Lambda usando i seguenti passaggi:

Passaggio 1: conferma se il sistema soddisfa tutti i prerequisiti

Innanzitutto, dovresti essere conversato con le operazioni di base AWS Lambda. Dovresti anche confermare se la tua macchina ha l'ultima versione AWS. Il seguente comando dovrebbe aiutare:

versione AWS

La risposta per il comando precedente dovrebbe prendere il seguente formato. Si noti che questa illustrazione utilizza AWS SDK per Python Boto3.

AWS-CLI/2.X.x Python/3.X.x Linux/4.X.X-XXX-STD BOTOCORE/2.X.X

La nostra risposta è come illustrata nel seguente:

Passaggio 2: creare una tabella Dynamodb e procedere per abilitare i flussi su di essa

Crea la tabella per la quale si desidera abilitare i tuoi flussi. Si noti che puoi anche abilitare i flussi su una tabella esistente.

Usiamo l'SDK AWS per Python per creare la nostra tabella come mostrato nella riga di comando seguente:

Importa Boto3
# Crea un client DynamoDB
DynamoDB = boto3.Client ('DynamoDB')
# Crea una tabella con una chiave primaria "PK" e una chiave di ordinamento "SK"
table_name = 'my-table-name'
attributo_definitions = [

'Attributetename': 'pk',
'AttributeType': 's'
,

'Attributetename': 'sk',
'AttributeType': 's'
,
"
key_schema = [

'Attributetename': 'pk',
'Keytype': 'hash'
,

'Attributetename': 'sk',
'Keytype': 'gamma'
,
"
provvistad_throughput =
"ReadCapacityUnits": 10,
"Writecapacityunits": 10

DynamoDB.crea tabella(
Tablename = table_name,
Attributefinitions = attribute_definitions,
Keyschema = key_schema,
ProvisionEdThroughput = Provisioned_throughput,
StreamSpecification =
"StrereNabled": vero,
'StreamViewType': 'new_and_old_images'

)

Passaggio 3: crea una funzione AWS Lambda

È tempo di creare una funzione AWS Lambda. È inoltre necessario specificare il flusso di DynamoDB come trigger. Il comando Python è il seguente:

Importa Boto3
# Crea un client Lambda
lambda_client = boto3.Client ('Lambda')
# Imposta i dettagli della funzione
function_name = 'my-function'
runtime = 'python3.11 '
Role = 'ARN: AWS: IAM :: X123456789012Y: Role/Lambda-Basic-Execution'
gestore = 'funzione.gestore '
# Crea la funzione
lambda_client.create_function (
Functionname = function_name,
Runtime = Runtime,
Ruolo = ruolo,
Gestore = gestore,
# Altre configurazioni di funzione, come variabili di ambiente, impostazioni VPC, ecc.
)
# Ottieni il nome della risorsa Amazon (ARN) della funzione
function_arn = lambda_client.get_function (functionname = function_name) ['configuration'] ['functionarn']
# Imposta i dettagli del trigger del flusso
Stream_arn = 'arn: AWS: DynamoDB: Eu-West-1: 123456789012: Tabella/My-Table/Stream/2022-01-02T00: 00: 00.000 '
starting_position = 'ultimo'
# Aggiungi il trigger alla funzione
lambda_client.create_event_source_mapping (
EventsOurCearn = Stream_arn,
Functionname = function_arn,
INVERGEPOSITION = Avviamento_position,
# Altre opzioni di configurazione, tra cui dimensioni batch, tentativi di pensionamento massimo, ecc.
)

Il codice precedente crea una nuova funzione Lambda con il nome, il runtime e l'esecuzione specificati. Attiva inoltre la funzione che ascolta le modifiche sul flusso DynamoDB specificato.

Passaggio 4: abilitare un accesso ai record di vapore

Usa il evento parametro nel codice precedente per accedere ai record del flusso per accedere ai record di streaming. Devi anche usare il evento.Record campo per accedere ai singoli record di flusso. Ogni record ha un DynamoDB campo che contiene i dati del record del flusso.

Passaggio 5: abilitare un accesso alla nuova immagine

Procedere per abilitare un accesso alla nuova immagine tramite il evento.Records [i].DynamoDB.Nuova immagine campo. Una volta fatto, impostare il evento.Records [i].DynamoDB.Oldimage Per accedere alla vecchia immagine dell'articolo prima di eventuali modifiche.

Usa il evento.Records [i].nome dell'evento sezione per determinare il tipo di modifica che si è verificato (e.G., "Inserisci", "Modifica", "Rimuovi") e usa il evento.Records [i].eventid campo per identificare in modo univoco ogni record di flusso.

Passaggio 6: conferma l'arn del tuo flusso

Usa il evento.Records [i].EventsOurcearn campo per conoscere il nome della risorsa Amazon (ARN) del flusso abilitato.

Passaggio 7: elaborare i record in modo appropriato

L'elaborazione del flusso come desiderato consente di eseguire tutte le azioni necessarie. Con l'analisi del flusso, è possibile riconoscere la ricezione dei record del flusso restituendo dalla funzione.

B. DynamoDB Trigger utilizzando eventi AWS CloudWatch

Il secondo tipo di Trigger DynamoDB sta utilizzando gli eventi CloudWatch. È possibile utilizzare questa funzione per impostare le regole che corrispondono agli eventi selezionati nel flusso di eventi DynamoDB. L'evento CloudWatch troggers Una funzione AWS Lambda ogni volta che una regola corrisponde a un evento.

Di seguito è riportato un esempio dei passaggi che sono coinvolti durante la creazione di una regola degli eventi CloudWatch per attivare una funzione AWS Lambda ogni volta che si aggiunge un elemento alla tabella DynamODB. Usiamo la console di gestione AWS.

  • Imposta un flusso DynamoDB sulla tabella che si desidera monitorare.
  • Crea una funzione Lambda che il trigger invoca.
  • Crea una regola di eventi di cloudwatch con un modello che corrisponde agli eventi di flusso DynamoDB su cui si desidera innescare.
  • Seleziona la funzione Lambda come target per la regola.

Ora, ogni volta che si aggiunge, modifichi o elimini un elemento, l'evento corrispondente viene inviato al flusso DynamoDB che innesca la regola degli eventi Cloudwatch e invoca la funzione Lambda.

Conclusione

Questo articolo è tutto ciò che devi sapere sui trigger di DynamoDB. Ancora più importante, speriamo che tu possa abilitare direttamente i trigger DyanModb sui tuoi flussi o usando CloudWatchevents.