Memproses data dalam bucket Amazon S3 dengan Peta Terdistribusi - AWS Step Functions

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

Memproses data dalam bucket Amazon S3 dengan Peta Terdistribusi

Proyek sampel ini menunjukkan bagaimana Anda dapat menggunakan status Peta Terdistribusi untuk memproses data skala besar, misalnya, menganalisis data cuaca historis dan mengidentifikasi stasiun cuaca yang memiliki suhu rata-rata tertinggi di planet ini setiap bulan. Data cuaca direkam di lebih dari 12.000 file CSV, yang pada gilirannya disimpan dalam ember Amazon S3.

Proyek sampel ini mencakup dua status Peta Terdistribusi bernama Salinan S3 Terdistribusi NOA Data dan ProcessNoAadata. Salinan S3 terdistribusi NOA Data iterasi melalui file CSV dalam bucket Amazon S3 publik bernama noaa-gsod-pdsdan menyalinnya ke bucket Amazon S3 di bucket Anda. Akun AWS ProcessNoAadata mengulangi file yang disalin dan menyertakan fungsi Lambda yang melakukan analisis suhu.

Proyek sampel pertama-tama memeriksa konten bucket Amazon S3 dengan panggilan ke tindakan ListObjectsV2 API. Berdasarkan jumlah kunci yang dikembalikan sebagai tanggapan atas panggilan ini, proyek sampel mengambil salah satu keputusan berikut:

  • Jika jumlah kunci lebih dari atau sama dengan 1, proyek transisi ke status processNoAadata. Status Peta Terdistribusi ini mencakup Lambda fungsi bernama TemperatureFunctionyang menemukan stasiun cuaca yang memiliki suhu rata-rata tertinggi setiap bulan. Fungsi ini mengembalikan kamus dengan year-month sebagai kunci dan kamus yang berisi informasi tentang stasiun cuaca sebagai nilai.

  • Jika jumlah kunci yang dikembalikan tidak melebihi 1, status Data NOA Salin S3 Terdistribusi akan mencantumkan semua objek dari bucket publik noaa-gsod-pdsdan secara berulang menyalin objek individual ke bucket lain di akun Anda dalam batch 100. Peta Inline melakukan penyalinan objek secara berulang.

    Setelah semua objek disalin, proyek bertransisi ke status processNoAAdata untuk memproses data cuaca.

Proyek sampel akhirnya beralih ke Lambda fungsi peredam yang melakukan agregasi akhir dari hasil yang dikembalikan oleh TemperatureFunctionfungsi dan menulis hasilnya ke tabel. Amazon DynamoDB

Dengan Distributed Map, Anda dapat menjalankan hingga 10.000 eksekusi alur kerja anak paralel sekaligus. Dalam proyek sampel ini, konkurensi maksimum ProcessNoAADATA Distributed Map ditetapkan pada 3000 yang membatasi hingga 3000 eksekusi alur kerja anak paralel.

Proyek sampel ini membuat mesin status, AWS sumber daya pendukung, dan mengonfigurasi izin IAM terkait. Jelajahi proyek sampel ini untuk mempelajari tentang menggunakan Peta Terdistribusi untuk mengatur beban kerja paralel skala besar, atau menggunakannya sebagai titik awal untuk proyek Anda sendiri.

penting

Proyek sampel ini hanya tersedia di Wilayah AS Timur (Virginia N.).

AWS CloudFormation template dan sumber daya tambahan

Anda menggunakan CloudFormation template untuk menyebarkan proyek sampel ini. Template ini membuat sumber daya berikut di Akun AWS:

  • Mesin status Step Functions.

  • Peran eksekusi untuk mesin negara. Peran ini memberikan izin yang dibutuhkan mesin status Anda untuk mengakses sumber lain Layanan AWS dan sumber daya seperti tindakan Invoke fungsi Lambda.

  • Ember Amazon S3 bernama. NOAADataBucket Bucket ini berisi file CSV dengan data cuaca.

  • Fungsi Lambda bernama ReducerFunction yang melakukan agregasi akhir data cuaca dan menulis hasilnya ke tabel Amazon DynamoDB.

  • Peran eksekusi untuk fungsi Lambda peredam. Peran ini memberikan izin fungsi untuk mengakses lainnya Layanan AWS.

  • Bucket keluaran Amazon S3 diberi nama ResultsBucket untuk menyimpan hasil analisis cuaca.

  • Sebuah tabel DynamoDB ResultsDynamoDBTable bernama yang berisi hasil yang dikembalikan oleh. ReducerFunction

  • Fungsi Lambda bernama TemperatureFunction yang menemukan suhu rata-rata bulanan tertinggi.

  • Peran eksekusi untuk fungsi Lambda. Peran ini memberikan izin fungsi untuk mengakses lainnya Layanan AWS.

  • Grup CloudWatch log yang menyimpan informasi yang terkait dengan riwayat eksekusi mesin negara.

penting

Biaya standar berlaku untuk setiap layanan.

Langkah 1: Buat mesin negara dan sumber daya penyediaan

  1. Buka Konsol Step Functions dan pilih Buat mesin status.

  2. Ketik Distributed Map to process files in S3 di kotak pencarian, lalu pilih Peta Terdistribusi untuk memproses file di S3 dari hasil pencarian yang dikembalikan.

  3. Pilih Next untuk melanjutkan.

  4. Step Functions mencantumkan yang Layanan AWS digunakan dalam proyek sampel yang Anda pilih. Ini juga menunjukkan grafik alur kerja untuk proyek sampel. Menyebarkan proyek ini ke Anda Akun AWS atau menggunakannya sebagai titik awal untuk membangun proyek Anda sendiri. Berdasarkan cara Anda ingin melanjutkan, pilih Jalankan demo atau Bangun di atasnya.

    Untuk informasi tentang sumber daya yang akan dibuat untuk proyek sampel ini, lihatAWS CloudFormation template dan sumber daya tambahan.

    Gambar berikut menunjukkan grafik alur kerja untuk Peta Terdistribusi untuk memproses file dalam proyek sampel S3:

    Grafik alur kerja Peta Terdistribusi untuk memproses file dalam proyek sampel S3.
  5. Pilih Gunakan templat untuk melanjutkan pilihan Anda.

  6. Lakukan salah satu dari cara berikut:

    • Jika Anda memilih Build on it, Step Functions akan membuat prototipe alur kerja untuk proyek sampel yang Anda pilih. Step Functions tidak menyebarkan sumber daya yang tercantum dalam definisi alur kerja.

      Di Workflow StudioMode desain, seret dan lepas status dari Peramban status untuk terus membangun prototipe alur kerja Anda. Atau beralih ke Mode kode yang menyediakan editor kode terintegrasi yang mirip dengan VS Code untuk memperbarui definisi Amazon States Language (ASL) mesin status Anda dalam konsol Step Functions. Untuk informasi selengkapnya tentang penggunaan Workflow Studio untuk membangun mesin status Anda, lihatMenggunakan Workflow Studio.

    • Jika Anda memilih Jalankan demo, Step Functions akan membuat proyek sampel hanya-baca yang menggunakan AWS CloudFormation templat untuk menyebarkan AWS sumber daya yang tercantum dalam templat tersebut ke templat Anda. Akun AWS

      Tip

      Untuk melihat definisi mesin status dari proyek sampel, pilih Kode.

      Saat Anda siap, pilih Deploy dan jalankan untuk menyebarkan proyek sampel dan membuat sumber daya.

      Tindakan ini dapat memakan waktu hingga 10 menit untuk membuat sumber daya dan izin IAM terkait. Saat sumber daya Anda sedang digunakan, Anda dapat membuka tautan CloudFormation Stack ID untuk melihat sumber daya mana yang sedang disediakan.

      Setelah semua sumber daya dalam proyek sampel dibuat, Anda dapat melihat proyek sampel baru yang tercantum di halaman mesin Negara.

      penting

      Biaya standar mungkin berlaku untuk setiap layanan yang digunakan dalam CloudFormation templat.

Langkah 2: Jalankan mesin negara

Setelah semua sumber daya disediakan dan digunakan, Anda dapat menjalankan mesin status.

  1. Pada halaman mesin Negara, pilih proyek sampel Anda.

  2. Pada halaman proyek sampel, pilih Mulai eksekusi.

  3. Dalam kotak dialog Mulai eksekusi, lakukan hal berikut:

    1. (Opsional) Masukkan nilai input dalam format JSON untuk menjalankan proyek sampel Anda.

      Jika Anda memilih untuk Menjalankan demo, Anda tidak perlu memberikan input eksekusi apa pun.

      catatan

      Jika proyek demo yang Anda gunakan berisi data input eksekusi yang telah diisi sebelumnya, gunakan input tersebut untuk menjalankan mesin status.

    2. Pilih Mulai Eksekusi.

    3. (Opsional) Konsol Step Functions mengarahkan Anda ke halaman yang berjudul dengan ID eksekusi Anda. Halaman ini dikenal sebagai halaman Detail Eksekusi. Di halaman ini, Anda dapat meninjau hasil eksekusi saat eksekusi berlangsung atau setelah selesai.

      Setelah eksekusi selesai, pilih status individual pada tampilan Grafik, lalu pilih tab individual di Detail langkah panel untuk melihat detail setiap negara bagian termasuk input, output, dan definisi masing-masing.

    4. (Opsional) Tinjau hasil eksekusi yang diekspor ke bucket Amazon S3. Hasil ini termasuk data, seperti input dan output eksekusi, ARN, dan status eksekusi. Lihat informasi yang lebih lengkap di ResultWriter.