Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
In questo tutorial, creerai una pipe che collega un'origine di flusso DynamoDB a una destinazione di coda Amazon SQS. Ciò include la selezione di un modello di eventi che la pipe deve utilizzare per filtrare gli eventi da distribuire alla coda. Quindi testerai la pipe per assicurarti che vengano distribuiti solo gli eventi desiderati.
Prerequisiti: creare l'origine e la destinazione
Prima di creare la pipe, devi creare l'origine e la destinazione a cui la pipe deve essere collegata. In questo caso, un flusso di dati Amazon DynamoDB che funge da origine della pipe e una coda Amazon SQS come destinazione della pipe.
Per semplificare questo passaggio, è possibile AWS CloudFormation utilizzare il provisioning delle risorse di origine e di destinazione. Per fare ciò, creerai un CloudFormation modello che definisca le seguenti risorse:
-
L'origine della pipe
Una tabella Amazon DynamoDB, denominata
pipe-tutorial-source
, con un flusso abilitato per fornire un flusso ordinato di informazioni sulle modifiche apportate agli elementi nella tabella DynamoDB. La destinazione della pipe
Una coda Amazon SQS, denominata
pipe-tutorial-target
, per ricevere il flusso di eventi DynamoDB dalla tua pipe.
Per creare il CloudFormation modello per il provisioning delle risorse pipe
Copia il testo del modello JSON nella sezione AWS CloudFormation modello per la generazione dei prerequisiti seguente.
Salva il modello come file JSON (ad esempio,
~/pipe-tutorial-resources.json
).
Successivamente, utilizzate il file modello appena creato per effettuare il provisioning di uno CloudFormation stack.
Nota
Una volta creato lo CloudFormation stack, ti verranno addebitate le AWS risorse che fornisce.
Fornisci i prerequisiti del tutorial utilizzando la CLI AWS
Esegui il comando CLI seguente, dove
--template-body
specifica la posizione del file di modello:aws cloudformation create-stack --stack-name
pipe-tuturial-resources
--template-body file://~/pipe-tutorial-resources.json
Fornisci i prerequisiti del tutorial utilizzando la console CloudFormation
-
Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformazione.
Scegli Stack, quindi seleziona Crea stack e scegli Con nuove risorse (standard).
CloudFormation visualizza la procedura guidata Create stack.
In Prerequisito - Prepara modello, lascia selezionato il valore predefinito, ovvero Il modello è pronto.
In Specifica modello, seleziona Carica un file di modello e quindi scegli il file e seleziona Successivo.
-
Configura lo stack e le risorse che fornisce:
In Nome stack, immetti
pipe-tuturial-resources
.In Parametri, lascia i nomi predefiniti per la tabella DynamoDB e la coda Amazon SQS.
Scegli Next (Successivo).
Scegli Successivo, quindi scegli Invia.
CloudFormation crea lo stack ed effettua il provisioning delle risorse definite nel modello.
Per ulteriori informazioni su CloudFormation, consulta What is AWS CloudFormation? nella Guida AWS CloudFormation per l'utente.
Passaggio 1: creare la pipe
Dopo aver eseguito il provisioning dell'origine e della destinazione della pipe, ora è possibile creare la pipe per connettere i due servizi.
Crea la pipe usando la EventBridge console
Apri la EventBridge console Amazon all'indirizzo https://console.aws.amazon.com/events/
. Nel riquadro di navigazione, scegli Pipe.
Scegli Crea pipe.
In Nome, immetti un nome per la pipe
pipe-tutorial
.Specifica l'origine del flusso di dati DynamoDB:
In Dettagli, per Origine, seleziona Flusso di dati DynamoDB.
EventBridge visualizza le impostazioni di configurazione del codice sorgente specifiche di DynamoDB.
In Flusso DynamoDB, seleziona
pipe-tutorial-source
.Lascia Posizione di partenza impostata sul valore predefinito,
Latest
.Scegli Next (Successivo).
Specifica e testa un modello di eventi per filtrare gli eventi:
I filtri consenteno di determinare gli eventi che le pipe inviano all'arricchimento o alla destinazione. La pipe invia all'arricchimento o alla destinazione solo gli eventi che corrispondono al modello di eventi.
Per ulteriori informazioni, consulta Filtraggio degli eventi in Amazon EventBridge Pipes.
Nota
Ti vengono fatturati solo gli eventi inviati all'arricchimento o alla destinazione.
In Evento di esempio (facoltativo), lascia selezionato Eventi AWS e assicurati che sia selezionato Evento di esempio di flusso DynamoDB 1.
Questo è l'evento di esempio che utilizzerai per testare il nostro modello di eventi.
In Modello di eventi, immetti il seguente modello di eventi:
{ "eventName": ["INSERT", "MODIFY"] }
Scegli Modello di test.
EventBridge visualizza un messaggio indicante che l'evento di esempio corrisponde al modello di evento. Questo perché nell'evento il valore
eventName
èINSERT
.Scegli Next (Successivo).
Scegli Successivo per non specificare un arricchimento.
In questo esempio, non selezionerai un arricchimento. Gli arricchimenti ti consentono di selezionare un servizio per migliorare i dati dall'origine prima di inviarli alla destinazione. Per ulteriori dettagli, consulta Arricchimento degli eventi in Amazon EventBridge Pipes.
Specifica la coda Amazon SQS come destinazione della pipe:
In Dettagli, per Servizio di destinazione, seleziona Coda Amazon SQS.
In Coda, seleziona
pipe-tutorial-target
.Lascia vuota la sezione Trasformatore di input di destinazione.
Per ulteriori informazioni, consulta Trasformazione degli input di Amazon EventBridge Pipes.
Seleziona Crea pipe.
EventBridge crea la tubazione e visualizza la pagina dei dettagli della tubazione. La pipe è pronta quando il relativo stato è
Running
.
Passaggio 2: confermare gli eventi dei filtri della pipe
La pipe è configurata, ma non ha ancora ricevuto eventi dalla tabella.
Per testare la pipe, aggiornerai le voci nella tabella DynamoDB. Ogni aggiornamento genererà eventi che il flusso DynamoDB invia alla nostra pipe. Alcuni corrisponderanno al modello di eventi specificato, altri no. Puoi quindi esaminare la coda Amazon SQS per assicurarti che la pipe abbia distribuito solo gli eventi che corrispondono al nostro modello di eventi.
Aggiornamento degli elementi della tabella per generare eventi
Apri la console DynamoDB all'indirizzo. https://console.aws.amazon.com/dynamodb/
Nel riquadro di navigazione sinistro, seleziona Tabelle. Seleziona la tabella
pipe-tutorial-source
.DynamoDB visualizza la pagina dei dettagli della tabella per
pipe-tutorial-source
.Seleziona Esplora elementi della tabella, quindi scegli Crea elemento.
DynamoDB visualizza la pagina Crea elemento.
In Attributi, crea un nuovo elemento della tabella:
In Album immetti
Album A
.In Artista, immetti
Artist A
.Scegli Crea elemento.
Aggiorna l'elemento della tabella:
In Elementi restituiti, scegli Album A.
Seleziona Aggiungi nuovo attributo, quindi seleziona Stringa.
Immetti un nuovo valore di
Song
, con un valore diSong A
.Scegli Save changes (Salva modifiche).
Elimina l'elemento della tabella:
In Elementi restituiti, seleziona Album A.
Nel menu Azioni, seleziona Elimina elementi.
Hai effettuato tre aggiornamenti all'elemento della tabella e ciò ha generato tre eventi per il flusso di dati DynamoDB:
Un evento
INSERT
al momento della creazione dell'elemento.Un evento
MODIFY
quando hai aggiunto un attributo all'elemento.Un evento
REMOVE
quando hai eliminato l'elemento.
Tuttavia, il modello di eventi specificato per la pipe deve escludere, filtrandoli, tutti gli eventi che non sono eventi INSERT
o MODIFY
. Successivamente, conferma che la pipe abbia distribuito gli eventi previsti alla coda.
Conferma della distribuzione degli eventi previsti alla coda
Apri la console Amazon SQS all'indirizzo. https://console.aws.amazon.com/sqs/
Scegli la coda
pipe-tutorial-target
.Amazon SQS visualizza la pagina dei dettagli della coda.
Seleziona Invia e ricevi messaggi, quindi in Ricevi messaggi, scegli Polling per messaggi.
La coda esegue il polling della pipe e quindi elenca gli eventi che riceve.
Scegli il nome dell'evento per vedere il JSON dell'evento che è stato distribuito.
Dovrebbero esserci due eventi nella coda: uno con eventName
di INSERT
e uno con eventName
di MODIFY
. Tuttavia, la pipe non ha distribuito l'evento per l'eliminazione dell'elemento della tabella, poiché quell'evento aveva eventName
di REMOVE
, che non corrispondeva al modello di eventi specificato nella pipe.
Fase 3: eliminazione delle risorse
Innanzitutto, elimina la pipe.
Elimina la pipe utilizzando la console EventBridge
Apri la EventBridge console Amazon all'indirizzo https://console.aws.amazon.com/events/
. Nel riquadro di navigazione, scegli Pipe.
Selezionare la pipe
pipe-tutorial
e scegli Elimina.
Quindi, elimina lo CloudFormation stack, per evitare che ti venga addebitato l'utilizzo continuato delle risorse fornite al suo interno.
Eliminare i prerequisiti del tutorial utilizzando la CLI AWS
Esegui il comando della CLI seguente, dove
--stack-name
specifica il nome del tuo stack:aws cloudformation delete-stack --stack-name
pipe-tuturial-resources
Eliminare i prerequisiti del tutorial utilizzando la console AWS CloudFormation
-
Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformazione.
Nella pagina Stack, seleziona lo stack, quindi seleziona Elimina.
Seleziona Elimina per confermare l'azione.
AWS CloudFormation modello per la generazione dei prerequisiti
Usa il codice JSON riportato di seguito per creare un CloudFormation modello per il provisioning delle risorse di origine e di destinazione necessarie per questo tutorial.
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description" : "Provisions resources to use with the EventBridge Pipes tutorial. You will be billed for the AWS resources used if you create a stack from this template.",
"Parameters" : {
"SourceTableName" : {
"Type" : "String",
"Default" : "pipe-tutorial-source",
"Description" : "Specify the name of the table to provision as the pipe source, or accept the default."
},
"TargetQueueName" : {
"Type" : "String",
"Default" : "pipe-tutorial-target",
"Description" : "Specify the name of the queue to provision as the pipe target, or accept the default."
}
},
"Resources": {
"PipeTutorialSourceDynamoDBTable": {
"Type": "AWS::DynamoDB::Table",
"Properties": {
"AttributeDefinitions": [{
"AttributeName": "Album",
"AttributeType": "S"
},
{
"AttributeName": "Artist",
"AttributeType": "S"
}
],
"KeySchema": [{
"AttributeName": "Album",
"KeyType": "HASH"
},
{
"AttributeName": "Artist",
"KeyType": "RANGE"
}
],
"ProvisionedThroughput": {
"ReadCapacityUnits": 10,
"WriteCapacityUnits": 10
},
"StreamSpecification": {
"StreamViewType": "NEW_AND_OLD_IMAGES"
},
"TableName": { "Ref" : "SourceTableName" }
}
},
"PipeTutorialTargetQueue": {
"Type": "AWS::SQS::Queue",
"Properties": {
"QueueName": { "Ref" : "TargetQueueName" }
}
}
}
}