

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à.

# Distribuisci i record DynamoDB ad Amazon S3 utilizzando Kinesis Data Streams e Firehose con AWS CDK
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk"></a>

*Shashank Shrivastava e Daniel Matuki da Cunha, Amazon Web Services*

## Riepilogo
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-summary"></a>

Questo modello fornisce codice di esempio e un'applicazione per la distribuzione di record da Amazon DynamoDB ad Amazon Simple Storage Service (Amazon S3) utilizzando Amazon Kinesis Data Streams e Amazon Data Firehose. L'approccio del pattern utilizza [costrutti AWS Cloud Development Kit (AWS CDK) L3](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html) e include un esempio di come eseguire la trasformazione dei dati AWS Lambda prima che i dati vengano consegnati al bucket S3 di destinazione sul cloud Amazon Web Services ().AWS

Kinesis Data Streams registra le modifiche a livello di elemento nelle tabelle DynamoDB e le replica nel flusso di dati Kinesis richiesto. Le applicazioni possono accedere a Kinesis Data Streams e visualizzare le modifiche a livello di elemento in tempo quasi reale. Kinesis Data Streams fornisce anche l'accesso ad altri servizi Amazon Kinesis, come Firehose e Amazon Managed Service for Apache Flink. Ciò significa che puoi creare applicazioni che forniscono dashboard in tempo reale, generare avvisi, implementare prezzi e pubblicità dinamici ed eseguire analisi sofisticate dei dati.

Puoi utilizzare questo modello per i tuoi casi d'uso di integrazione dei dati. Ad esempio, i veicoli di trasporto o le apparecchiature industriali possono inviare elevati volumi di dati a una tabella DynamoDB. Questi dati possono quindi essere trasformati e archiviati in un data lake ospitato in Amazon S3. Puoi quindi interrogare ed elaborare i dati e prevedere eventuali difetti potenziali utilizzando servizi serverless come Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition e. AWS Glue

## Prerequisiti e limitazioni
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-prereqs"></a>

*Prerequisiti*
+ Un attivo. Account AWS
+ AWS Command Line Interface (AWS CLI), installato e configurato. Per ulteriori informazioni, consulta la sezione [Guida introduttiva AWS CLI a the](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) nella AWS CLI documentazione.
+ Node.js (18.x\+) e npm, installati e configurati. Per ulteriori informazioni, consulta [Download e installazione di Node.js e npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) nella documentazione. `npm`
+ aws-cdk (2.x\+), installato e configurato. Per ulteriori informazioni, consulta la sezione [Guida introduttiva a the nella documentazione](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html). AWS CDK AWS CDK 
+ Il repository GitHub [aws-dynamodb-kinesisfirehose-sa 3 ingestioni](https://github.com/aws-samples/aws-dynamodb-kinesisfirehose-s3-ingestion/), clonato e configurato sul computer locale.
+ Dati di esempio esistenti per la tabella DynamoDB. I dati devono utilizzare il seguente formato: `{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}`

## Architecture
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-architecture"></a>

Il diagramma seguente mostra un esempio di flusso di lavoro per la distribuzione di record da DynamoDB ad Amazon S3 utilizzando Kinesis Data Streams e Firehose.

![Un esempio di flusso di lavoro per la distribuzione di record da DynamoDB ad Amazon S3 utilizzando Kinesis Data Streams e Firehose.](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/e2a9c412-312e-4900-9774-19a281c578e4/images/6e6df998-e6c2-4eaf-b263-ace752194689.png)


Il diagramma mostra il flusso di lavoro seguente:

1. I dati vengono acquisiti utilizzando Amazon API Gateway come proxy per DynamoDB. Puoi anche utilizzare qualsiasi altra fonte per importare dati in DynamoDB. 

1. Le modifiche a livello di articolo vengono generate quasi in tempo reale in Kinesis Data Streams per la distribuzione ad Amazon S3.

1. Kinesis Data Streams invia i record a Firehose per la trasformazione e la distribuzione. 

1. Una funzione Lambda converte i record da un formato di record DynamoDB al formato JSON, che contiene solo i nomi e i valori degli attributi degli elementi del record.

## Tools (Strumenti)
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-tools"></a>

*Servizi AWS*
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)è un framework di sviluppo software che ti aiuta a definire e fornire l'infrastruttura cloud AWS in codice.
+ [AWS CDK Toolkit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) è un kit di sviluppo cloud a riga di comando che ti aiuta a interagire con la tua AWS CDK app.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) è uno strumento open source che consente di interagire Servizi AWS tramite comandi nella shell della riga di comando.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ti aiuta a configurare AWS le risorse, fornirle in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita tra e. Account AWS Regioni AWS

*Archivio di codice*

Il codice per questo pattern è disponibile nel repository a GitHub [aws-dynamodb-kinesisfirehose-s3 ingestioni](https://github.com/aws-samples/aws-dynamodb-kinesisfirehose-s3-ingestion/).

## Epiche
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-epics"></a>

### Imposta e configura il codice di esempio
<a name="set-up-and-configure-the-sample-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa le dipendenze. | Sul computer locale, installa le dipendenze dai `package.json` file contenuti nelle `sample-application` directory `pattern/aws-dynamodb-kinesisstreams-s3` and eseguendo i seguenti comandi:<pre>cd <project_root>/pattern/aws-dynamodb-kinesisstreams-s3 </pre><pre>npm install && npm run build</pre><pre>cd <project_root>/sample-application/</pre><pre>npm install && npm run build</pre><br />  | Sviluppatore di app, General AWS | 
| Genera il CloudFormation modello. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.html) | Sviluppatore di app, General AWS, AWS DevOps | 

### Distribuisci le risorse
<a name="deploy-the-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Controlla e distribuisci le risorse. | [See the AWS documentation website for more details](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.html) | Sviluppatore di app, General AWS, AWS DevOps | 

### Inserisci dati nella tabella DynamoDB per testare la soluzione
<a name="ingest-data-into-the-dynamodb-table-to-test-the-solution"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Inserisci i tuoi dati di esempio nella tabella DynamoDB. | Invia una richiesta alla tua tabella DynamoDB eseguendo il seguente comando in: AWS CLI<br />`aws dynamodb put-item --table-name <your_table_name> --item '{"<table_partition_key>": {"S": "<partition_key_ID>"},"MessageData":{"S": "<data>"}}'`<br />esempio:<br />`aws dynamodb put-item --table-name SourceData_table --item '{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}'`<br />Per impostazione predefinita, `put-item` non restituisce alcun valore come output se l'operazione ha esito positivo. Se l'operazione non riesce, restituisce un errore. I dati vengono archiviati in DynamoDB e quindi inviati a Kinesis Data Streams e Firehose. Utilizzate approcci diversi per aggiungere dati in una tabella DynamoDB. Per ulteriori informazioni, consulta [Caricare i dati nelle tabelle](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SampleData.LoadData.html) nella documentazione di DynamoDB. | Sviluppatore di app | 
| Verifica che venga creato un nuovo oggetto nel bucket S3. | Accedi Console di gestione AWS e monitora il bucket S3 per verificare che sia stato creato un nuovo oggetto con i dati che hai inviato. <br />Per ulteriori informazioni, [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)consulta la documentazione di Amazon S3. | Sviluppatore di app, General AWS | 

### Eseguire la pulizia delle risorse
<a name="clean-up-resources"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Eliminare le risorse.  | Esegui il `cdk destroy` comando per eliminare tutte le risorse utilizzate da questo modello. | Sviluppatore di app, General AWS | 

## Risorse correlate
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-resources"></a>
+ [s-3 static-site-stack .ts (repository](https://github.com/awslabs/aws-solutions-constructs/blob/main/source/use_cases/aws-s3-static-website/lib/s3-static-site-stack.ts#L25)) GitHub 
+ [aws-apigateway-dynamodb modulo](https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-apigateway-dynamodb) (repository) GitHub 
+ [aws-kinesisstreams-kinesisfirehose-smodulo 3](https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3) (GitHub repository)
+ [Modifica l'acquisizione dei dati per DynamoDB Streams (documentazione DynamoDB)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html)
+ [Utilizzo di Kinesis Data Streams per acquisire le modifiche a DynamoDB (documentazione DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html))