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 CSV file, yang pada gilirannya disimpan dalam ember Amazon S3.

Proyek sampel ini mencakup dua status Peta Terdistribusi bernama NOA Data salinan S3 Terdistribusi dan P rocessNOAAData. Salinan S3 terdistribusi NOA Data berulang di atas CSV file dalam bucket Amazon S3 publik noaa-gsod-pdsbernama dan menyalinnya ke bucket Amazon S3 di Akun AWS. P rocessNOAAData iterasi atas file yang disalin dan menyertakan fungsi Lambda yang melakukan analisis suhu.

Proyek sampel pertama-tama memeriksa isi bucket Amazon S3 dengan panggilan ke tindakan ListObjectsV2API. 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 rocessNOAAData status P. Status Peta Terdistribusi ini mencakup a 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 NOAData salinan S3 Terdistribusi akan mencantumkan semua objek dari bucket publik noaa-gsod-pdsdan secara berulang menyalin masing-masing objek ke bucket lain di akun Anda dalam batch 100. Peta Inline melakukan penyalinan objek secara berulang.

    Setelah semua objek disalin, proyek transisi ke rocessNOAAData status P untuk memproses data cuaca.

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

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

Proyek sampel ini menciptakan mesin negara, pendukung AWS sumber daya, dan mengonfigurasi IAM izin 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 menciptakan 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 lainnya Layanan AWS dan sumber daya seperti aksi Invoke fungsi Lambda.

  • Ember Amazon S3 bernama. NOAADataBucket Bucket ini berisi CSV file 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 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. Pilih Jalankan demo untuk membuat read-only dan ready-to-deploy alur kerja, atau pilih Bangun di atasnya untuk membuat definisi mesin status yang dapat diedit yang dapat Anda buat dan kemudian terapkan.

    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.

Langkah selanjutnya tergantung pada pilihan Anda sebelumnya:

  1. Jalankan demo - Anda dapat meninjau mesin status sebelum membuat proyek hanya-baca dengan sumber daya yang digunakan oleh AWS CloudFormation untuk Anda Akun AWS.

    Anda dapat melihat definisi mesin status, dan ketika Anda siap, pilih Deploy dan jalankan untuk menyebarkan proyek dan membuat sumber daya.

    Penyebaran dapat memakan waktu hingga 10 menit untuk membuat sumber daya dan izin. Anda dapat menggunakan tautan Stack ID untuk memantau kemajuan di AWS CloudFormation.

    Setelah penerapan selesai, Anda akan melihat mesin status baru Anda di konsol.

  2. Bangun di atasnya - Anda dapat meninjau dan mengedit definisi alur kerja. Anda mungkin perlu menetapkan nilai untuk placeholder dalam proyek sampel sebelum mencoba untuk menjalankan alur kerja kustom Anda.

catatan

Biaya standar mungkin berlaku untuk layanan yang diterapkan ke akun Anda.

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 JSON format untuk menjalankan proyek sampel Anda.

      Jika Anda memilih untuk menjalankan demo, Anda tidak perlu memberikan input eksekusi apapun.

      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.

      • Untuk detail tentang informasi eksekusi yang dapat Anda lihat di halaman Rincian Eksekusi, lihatIkhtisar detail eksekusi.

      • Untuk informasi selengkapnya tentang melihat eksekusi status Peta Terdistribusi di konsol, lihatMelihat Peta Berjalan.

    4. (Opsional) Tinjau hasil eksekusi yang diekspor ke bucket Amazon S3. Hasil ini termasuk data, seperti input dan output eksekusiARN, dan status eksekusi. Untuk informasi selengkapnya, lihat ResultWriter (Peta).