

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mengirimkan data DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose dengan AWS CDK
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk"></a>

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

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

Pola ini menyediakan contoh kode dan aplikasi untuk mengirimkan catatan dari Amazon DynamoDB ke Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) dengan menggunakan Amazon Kinesis Data Streams dan Amazon Data Firehose. Pendekatan pola menggunakan [konstruksi AWS Cloud Development Kit (AWS CDK) L3](https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html) dan menyertakan contoh cara melakukan transformasi data AWS Lambda sebelum data dikirim ke bucket S3 target di Amazon Web Services ()AWS Cloud.

Kinesis Data Streams merekam modifikasi tingkat item dalam tabel DynamoDB dan mereplikasi mereka ke aliran data Kinesis yang diperlukan. Aplikasi Anda dapat mengakses Kinesis data stream dan melihat perubahan tingkat item dalam hampir waktu nyata. Kinesis Data Streams juga menyediakan akses ke layanan Amazon Kinesis lainnya, seperti Firehose dan Amazon Managed Service untuk Apache Flink. Ini berarti Anda dapat membangun aplikasi yang menyediakan dasbor waktu nyata, menghasilkan peringatan, menerapkan harga dan iklan dinamis, dan melakukan analisis data yang canggih.

Anda dapat menggunakan pola ini untuk kasus penggunaan integrasi data Anda. Misalnya, kendaraan transportasi atau peralatan industri dapat mengirim volume data yang tinggi ke tabel DynamoDB. Data ini kemudian dapat diubah dan disimpan di danau data yang dihosting di Amazon S3. Anda kemudian dapat menanyakan dan memproses data dan memprediksi potensi cacat dengan menggunakan layanan tanpa server seperti Amazon Athena, Amazon Redshift Spectrum, Amazon Rekognition, dan. AWS Glue

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

*Prasyarat*
+ Aktif Akun AWS.
+ AWS Command Line Interface (AWS CLI), diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat [AWS CLI Memulai dengan](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) AWS CLI dokumentasi.
+ Node.js (18.x \$1) dan npm, diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat [Mengunduh dan menginstal Node.js dan npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) di `npm` dokumentasi.
+ aws-cdk (2.x \$1), diinstal dan dikonfigurasi. Untuk informasi selengkapnya, lihat [AWS CDK Memulai dengan](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html) AWS CDK dokumentasi.
+ Repositori GitHub [aws-dynamodb-kinesisfirehose-s3-ingestion, dikloning](https://github.com/aws-samples/aws-dynamodb-kinesisfirehose-s3-ingestion/) dan dikonfigurasi pada mesin lokal Anda.
+ Data sampel yang ada untuk tabel DynamoDB. Data harus menggunakan format berikut: `{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}`

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

Diagram berikut menunjukkan contoh alur kerja untuk mengirimkan catatan dari DynamoDB ke Amazon S3 dengan menggunakan Kinesis Data Streams dan Firehose.

![\[Contoh alur kerja untuk mengirimkan record dari DynamoDB ke Amazon S3 menggunakan Kinesis Data Streams dan Firehose.\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/images/pattern-img/e2a9c412-312e-4900-9774-19a281c578e4/images/6e6df998-e6c2-4eaf-b263-ace752194689.png)


Diagram menunjukkan alur kerja berikut:

1. Data dicerna menggunakan Amazon API Gateway sebagai proxy untuk DynamoDB. Anda juga dapat menggunakan sumber lain untuk menyerap data ke DynamoDB. 

1. Perubahan tingkat item dihasilkan dalam waktu nyaris real time di Kinesis Data Streams untuk pengiriman ke Amazon S3.

1. Kinesis Data Streams mengirimkan catatan ke Firehose untuk transformasi dan pengiriman. 

1. Fungsi Lambda mengonversi catatan dari format rekaman DynamoDB ke format JSON, yang hanya berisi nama dan nilai atribut item rekaman.

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

*Layanan AWS*
+ [AWS Cloud Development Kit (AWS CDK)](https://docs.aws.amazon.com/cdk/latest/guide/home.html)adalah kerangka kerja pengembangan perangkat lunak yang membantu Anda menentukan dan menyediakan infrastruktur AWS Cloud dalam kode.
+ [AWS CDK Toolkit adalah kit](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) pengembangan cloud baris perintah yang membantu Anda berinteraksi dengan AWS CDK aplikasi Anda.
+ [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html) adalah alat sumber terbuka yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)membantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS

*Repositori kode*

Kode untuk pola ini tersedia di repositori GitHub [aws-dynamodb-kinesisfirehose-s3-konsumsi](https://github.com/aws-samples/aws-dynamodb-kinesisfirehose-s3-ingestion/).

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

### Siapkan dan konfigurasikan kode sampel
<a name="set-up-and-configure-the-sample-code"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Instal dependensi. | Di mesin lokal Anda, instal dependensi dari `package.json` file di `sample-application` direktori `pattern/aws-dynamodb-kinesisstreams-s3` dan dengan menjalankan perintah berikut:<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>  | Pengembang aplikasi, AWS Umum | 
| Hasilkan CloudFormation template. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.html) | Pengembang aplikasi, AWS Umum, AWS DevOps | 

### Menyebarkan sumber daya
<a name="deploy-the-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Periksa dan gunakan sumber daya. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/prescriptive-guidance/latest/patterns/deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk.html) | Pengembang aplikasi, AWS Umum, AWS DevOps | 

### Menyerap data ke dalam tabel DynamoDB untuk menguji solusinya
<a name="ingest-data-into-the-dynamodb-table-to-test-the-solution"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Menyerap data sampel Anda ke dalam tabel DynamoDB. | Kirim permintaan ke tabel DynamoDB Anda dengan menjalankan perintah berikut di: AWS CLI`aws dynamodb put-item --table-name <your_table_name> --item '{"<table_partition_key>": {"S": "<partition_key_ID>"},"MessageData":{"S": "<data>"}}'`contoh:`aws dynamodb put-item --table-name SourceData_table --item '{"SourceDataId": {"S": "123"},"MessageData":{"S": "Hello World"}}'`Secara default, `put-item` tidak mengembalikan nilai apa pun sebagai output jika operasi berhasil. Jika operasi gagal, ia mengembalikan kesalahan. Data disimpan di DynamoDB dan kemudian dikirim ke Kinesis Data Streams dan Firehose. Anda menggunakan pendekatan yang berbeda untuk menambahkan data ke dalam tabel DynamoDB. Untuk informasi selengkapnya, lihat [Memuat data ke dalam tabel](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/SampleData.LoadData.html) dalam dokumentasi DynamoDB. | Pengembang aplikasi | 
| Verifikasi bahwa objek baru dibuat di bucket S3. | Masuk ke Konsol Manajemen AWS dan pantau bucket S3 untuk memverifikasi bahwa objek baru dibuat dengan data yang Anda kirim. Untuk informasi selengkapnya, lihat [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html)di dokumentasi Amazon S3. | Pengembang aplikasi, AWS Umum | 

### Pembersihan sumber daya
<a name="clean-up-resources"></a>


| Tugas | Deskripsi | Keterampilan yang dibutuhkan | 
| --- | --- | --- | 
| Pembersihan sumber daya  | Jalankan `cdk destroy` perintah untuk menghapus semua sumber daya yang digunakan oleh pola ini. | Pengembang aplikasi, AWS Umum | 

## Sumber daya terkait
<a name="deliver-dynamodb-records-to-amazon-s3-using-kinesis-data-streams-and-amazon-data-firehose-with-aws-cdk-resources"></a>
+ [s3- static-site-stack .ts (repositori](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 modul](https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-apigateway-dynamodb) (GitHub repositori)
+ [aws-kinesisstreams-kinesisfirehose-s3 modul](https://github.com/awslabs/aws-solutions-constructs/tree/main/source/patterns/%40aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3) (GitHub repositori)
+ [Ubah pengambilan data untuk DynamoDB Streams (dokumentasi DynamoDB)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html)
+ [Menggunakan Kinesis Data Streams untuk menangkap perubahan pada DynamoDB (dokumentasi DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/kds.html))