Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Buat pipeline pemrosesan video dengan menggunakan Amazon Kinesis Video Streams dan AWS Fargate
Piotr Chotkowski dan Pushparaju Thangavel, Amazon Web Services
Ringkasan
Pola ini menunjukkan cara menggunakan Amazon Kinesis Video Streams dan
Pola ini menyediakan contoh aplikasi dalam bentuk proyek Java Maven. Aplikasi ini mendefinisikan infrastruktur AWS dengan menggunakan AWS Cloud Development Kit
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
Kit Pengembangan Java SE (JDK) 11, diinstal
Apache Maven
, diinstal AWS Cloud Development Kit (AWS CDK), diinstal
AWS Command Line Interface (AWS CLI) versi 2, diinstal
Docker
(diperlukan untuk membuat gambar Docker untuk digunakan dalam definisi tugas AWS Fargate), diinstal
Batasan
Pola ini dimaksudkan sebagai bukti konsep, atau sebagai dasar untuk pengembangan lebih lanjut. Seharusnya tidak digunakan dalam bentuknya saat ini dalam penyebaran produksi.
Versi produk
Pola ini diuji dengan AWS CDK versi 1.77.0 (lihat versi AWS CDK)
JDK 11
AWS CLI versi 2
Arsitektur
Tumpukan teknologi target
Amazon Kinesis Video Streams
Tugas AWS Fargate
Antrean Amazon Simple Queue Service (Amazon SQS)
Bucket Amazon S3
Arsitektur target

Pengguna membuat aliran video Kinesis, mengunggah video, dan mengirimkan pesan JSON yang berisi rincian tentang input Kinesis video stream dan output S3 bucket ke antrian SQS. AWS Fargate, yang menjalankan aplikasi utama dalam wadah, menarik pesan dari antrian SQS dan mulai mengekstrak bingkai. Setiap frame disimpan dalam file gambar dan disimpan di bucket S3 target.
Otomatisasi dan skala
Aplikasi sampel dapat menskalakan baik secara horizontal maupun vertikal dalam satu Wilayah AWS. Penskalaan horizontal dapat dicapai dengan meningkatkan jumlah tugas AWS Fargate yang diterapkan yang dibaca dari antrian SQS. Penskalaan vertikal dapat dicapai dengan meningkatkan jumlah utas pemecahan bingkai dan penerbitan gambar dalam aplikasi. Pengaturan ini diteruskan sebagai variabel lingkungan ke aplikasi dalam definisi QueueProcessingFargateServicesumber daya di AWS CDK. Karena sifat penerapan tumpukan AWS CDK, Anda dapat menerapkan aplikasi ini di beberapa Wilayah AWS dan akun tanpa upaya tambahan.
Alat
Alat
AWS CDK
adalah kerangka kerja pengembangan perangkat lunak untuk mendefinisikan infrastruktur dan sumber daya cloud Anda dengan menggunakan bahasa pemrograman seperti TypeScript,, JavaScript Python, Java, dan C #/.Net. Amazon Kinesis Video
Streams adalah layanan AWS yang dikelola sepenuhnya yang dapat Anda gunakan untuk melakukan streaming video langsung dari perangkat ke AWS Cloud, atau membuat aplikasi untuk pemrosesan video real-time atau analitik video berorientasi batch. AWS Fargate
adalah mesin komputasi tanpa server untuk kontainer. Fargate menghilangkan kebutuhan untuk menyediakan dan mengelola server, dan memungkinkan Anda fokus pada pengembangan aplikasi Anda. Amazon S3
adalah layanan penyimpanan objek yang menawarkan skalabilitas, ketersediaan data, keamanan, dan kinerja. Amazon SQS
adalah layanan antrian pesan yang dikelola sepenuhnya yang memungkinkan Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server.
Kode
File.zip dari proyek aplikasi sampel (
frame-splitter-code.zip) dilampirkan.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Mulai daemon Docker. | Mulai daemon Docker di sistem lokal Anda. AWS CDK menggunakan Docker untuk membuat image yang digunakan dalam tugas AWS Fargate. Anda harus menjalankan Docker sebelum melanjutkan ke langkah berikutnya. | Pengembang, DevOps insinyur |
Bangun proyek. | Unduh aplikasi
| Pengembang, DevOps insinyur |
Bootstrap AWS CDK. | (Hanya pengguna AWS CDK pertama kali) Jika ini adalah pertama kalinya Anda menggunakan AWS CDK, Anda mungkin harus mem-bootstrap lingkungan dengan menjalankan perintah AWS CLI:
dimana | Pengembang, DevOps insinyur |
Menerapkan tumpukan AWS CDK. | Pada langkah ini, Anda membuat sumber daya infrastruktur yang diperlukan (antrean SQS, bucket S3, definisi tugas AWS Fargate) di akun AWS Anda, membuat image Docker yang diperlukan untuk tugas AWS Fargate, dan menerapkan aplikasi. Pada prompt perintah, arahkan ke direktori root proyek, dan jalankan perintah:
dimana | Pengembang, DevOps insinyur |
Buat aliran video. | Pada langkah ini, Anda membuat aliran video Kinesis yang akan berfungsi sebagai aliran input untuk pemrosesan video. Pastikan AWS CLI telah diinstal dan dikonfigurasi. Di AWS CLI, jalankan:
dimana Atau, Anda dapat membuat aliran video dengan menggunakan konsol Kinesis dengan mengikuti langkah-langkah dalam dokumentasi Kinesis Video Streams. Perhatikan AWS Resource Name (ARN) dari aliran yang dibuat; Anda akan membutuhkannya nanti. | Pengembang, DevOps insinyur |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Unggah video ke streaming. | Di folder proyek untuk
Atau, Anda dapat mengunggah video Anda dengan menggunakan salah satu metode yang dijelaskan dalam dokumentasi Kinesis Video Streams. | Pengembang, DevOps insinyur |
Memulai pemrosesan video. | Sekarang setelah Anda mengunggah video ke aliran video Kinesis, Anda dapat mulai memprosesnya. Untuk memulai logika pemrosesan, Anda harus mengirim pesan dengan detail ke antrian SQS yang dibuat AWS CDK selama penerapan. Untuk mengirim pesan menggunakan AWS CLI, jalankan:
dimana
di Mengirim pesan ini memulai pemrosesan video. Atau, Anda dapat mengirim pesan menggunakan konsol Amazon SQS, seperti yang dijelaskan dalam dokumentasi Amazon SQS. | Pengembang, DevOps insinyur |
Lihat gambar bingkai video. | Anda dapat melihat gambar yang dihasilkan di bucket | Pengembang, DevOps insinyur |
Sumber daya terkait
Contoh: Mengidentifikasi Objek dalam Streaming Video Menggunakan SageMaker
Analisis video langsung dalam skala secara real time menggunakan Amazon Kinesis Video Streams SageMaker
dan Amazon (postingan blog AWS Machine Learning)
Informasi tambahan
Memilih IDE
Kami menyarankan Anda menggunakan IDE Java favorit Anda untuk membangun dan menjelajahi proyek ini.
Membersihkan
Setelah Anda selesai menjalankan contoh ini, hapus semua sumber daya yang diterapkan untuk menghindari biaya infrastruktur AWS tambahan.
Untuk menghapus infrastruktur dan aliran video, gunakan dua perintah ini di AWS CLI:
cdk destroy --profile "$AWS_PROFILE_NAME" --all
aws kinesisvideo --profile "$AWS_PROFILE_NAME" delete-stream --stream-arn "$STREAM_ARN"
Atau, Anda dapat menghapus sumber daya secara manual dengan menggunakan CloudFormation konsol AWS untuk menghapus CloudFormation tumpukan AWS, dan konsol Kinesis untuk menghapus aliran video Kinesis. Perhatikan bahwa cdk destroy tidak menghapus bucket S3 keluaran atau gambar di repositori Amazon Elastic Container Registry (Amazon ECR) (). aws-cdk/assets Anda harus menghapusnya secara manual.
Lampiran
Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip