Memproses acara Amazon S3 dengan AWS SAM - AWS Serverless Application Model

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

Memproses acara Amazon S3 dengan AWS SAM

Dengan aplikasi contoh ini, Anda membangun hal yang sudah Anda pelajari di contoh sebelumnya, dan memasang aplikasi yang lebih kompleks. Aplikasi ini terdiri dari fungsi Lambda yang dipanggil oleh sumber peristiwa unggah objek Amazon S3. Latihan ini menunjukkan cara mengakses AWS sumber daya dan melakukan panggilan AWS layanan melalui fungsi Lambda.

Contoh aplikasi nirserver ini memproses peristiwa pembuatan-objek di Amazon S3. Untuk setiap citra yang diunggah ke bucket, Amazon S3 mendeteksi peristiwa yang dibuat oleh objek dan memanggil fungsi Lambda. Fungsi Lambda memanggil Amazon Rekognition untuk mendeteksi teks yang ada di dalam citra. Fungsi Lambda lalu menyimpan hasil yang dikembalikan oleh Amazon Rekognition dalam tabel DynamoDB.

catatan

Dengan aplikasi contoh ini, Anda melakukan langkah-langkah dengan urutan yang sedikit berbeda daripada contoh sebelumnya. Alasan untuk ini adalah bahwa contoh ini mengharuskan AWS sumber daya dibuat dan IAM izin dikonfigurasi sebelum Anda dapat menguji fungsi Lambda secara lokal. Kami akan memanfaatkan AWS CloudFormation untuk membuat sumber daya dan mengonfigurasi izin untuk Anda. Jika tidak, Anda perlu melakukan tindakan ini secara manual sebelum Anda dapat menguji fungsi Lambda lokal.

Karena contoh ini lebih rumit, pastikan bahwa Anda sudah terbiasa menginstal aplikasi pada contoh sebelumnya sebelum menjalankan yang satu ini.

Sebelum Anda mulai

Pastikan bahwa Anda telah menyelesaikan penyiapan yang diperlukan di dalam Instal AWS SAM CLI.

Langkah 1: Inisialisasi aplikasi

Di bagian ini, Anda mengunduh aplikasi sampel, yang terdiri dari AWS SAM templat dan kode aplikasi.

Untuk menginisialisasi aplikasi
  1. Jalankan perintah berikut pada AWS SAMCLI command prompt.

    sam init \ --location https://github.com/aws-samples/cookiecutter-aws-sam-s3-rekognition-dynamodb-python \ --no-input
  2. Tinjau konten direktori yang dibuat oleh perintah (aws_sam_ocr/):

    • template.yaml— Mendefinisikan tiga AWS sumber daya yang dibutuhkan aplikasi Amazon S3: fungsi Lambda, bucket Amazon S3, dan tabel DynamoDB. Templat tersebut juga menentukan pemetaan dan izin antara sumber daya tersebut.

    • Direktori src/ - Berisi kode aplikasi Amazon S3.

    • SampleEvent.json - Sampel sumber peristiwa, yang digunakan untuk pengujian lokal.

Langkah 2: Paketkan aplikasi

Sebelum Anda dapat menguji aplikasi ini secara lokal, Anda harus menggunakan AWS SAMCLI untuk membuat paket penyebaran, yang Anda gunakan untuk menyebarkan aplikasi ke Cloud. AWS Penyebaran ini menciptakan AWS sumber daya dan izin yang diperlukan untuk menguji aplikasi secara lokal.

Untuk membuat paket deployment Lambda
  1. Buat bucket S3 di lokasi tempat Anda ingin menyimpan kode yang dipaketkan. Jika Anda ingin menggunakan bucket S3 yang sudah ada, lewati langkah ini.

    aws s3 mb s3://bucketname
  2. Buat paket deployment dengan menjalankan package CLI perintah berikut di command prompt.

    sam package \ --template-file template.yaml \ --output-template-file packaged.yaml \ --s3-bucket bucketname

    Anda tentukan file templat baru, packaged.yaml, saat men-deploy aplikasi pada langkah berikutnya.

Langkah 3: Deploy aplikasi

Sekarang setelah Anda membuat paket penyebaran, Anda menggunakannya untuk menyebarkan aplikasi ke Cloud. AWS Anda kemudian menguji aplikasi dengan memanggilnya di AWS Cloud.

Untuk menyebarkan aplikasi tanpa server ke Cloud AWS
  • Dalam AWS SAMCLI, gunakan deploy perintah untuk menyebarkan semua sumber daya yang Anda tentukan dalam template.

    sam deploy \ --template-file packaged.yaml \ --stack-name aws-sam-ocr \ --capabilities CAPABILITY_IAM \ --region us-east-1

    Dalam perintah, --capabilities parameter memungkinkan AWS CloudFormation untuk membuat IAM peran.

    AWS CloudFormation menciptakan AWS sumber daya yang didefinisikan dalam template. Anda dapat mengakses nama-nama sumber daya ini di AWS CloudFormation konsol.

Untuk menguji aplikasi tanpa server di Cloud AWS
  1. Unggah citra ke bucket Amazon S3 yang Anda buat untuk aplikasi contoh ini.

  2. Buka konsol DynamoDB dan cari tabel yang dibuat. Lihat tabel untuk hasil yang dikembalikan oleh Amazon Rekognition.

  3. Verifikasi bahwa Daftar Tabel DynamoDB berisi catatan baru yang berisi teks ketika Amazon Rekognition menemukan catatan tersebut pada citra yang diunggah.

Langkah 4: Uji aplikasi secara lokal

Sebelum Anda dapat menguji aplikasi secara lokal, Anda harus terlebih dahulu mengambil nama sumber AWS daya yang dibuat oleh. AWS CloudFormation

  • Ambil nama kunci Amazon S3 dan nama bucket dari. AWS CloudFormation Ubah SampleEvent.json file dengan mengganti nilai untuk kunci objek, nama bucket, dan bucketARN.

  • Ambil nama tabel DynamoDB. Nama ini digunakan untuk perintah sam local invoke berikut.

Gunakan AWS SAMCLI untuk membuat contoh peristiwa Amazon S3 dan menjalankan fungsi Lambda:

TABLE_NAME=Table name obtained from AWS CloudFormation console sam local invoke --event SampleEvent.json

Bagian TABLE_NAME= mengatur nama tabel DynamoDB. Parameter --event menentukan file yang berisi pesan peristiwa uji untuk diteruskan ke fungsi Lambda.

Anda sekarang dapat memverifikasi bahwa catatan DynamoDB yang diharapkan telah dibuat, berdasarkan hasil yang dikembalikan oleh Amazon Rekognition.

Langkah selanjutnya

AWS SAM GitHub Repositori berisi contoh aplikasi tambahan bagi Anda untuk men-download dan bereksperimen dengan. Untuk mengakses repositori ini, lihat contoh aplikasi AWS SAM.