Membangun gambar aplikasi - AWS Panorama

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

Membangun gambar aplikasi

AWS Panorama Appliance menjalankan aplikasi sebagai sistem file kontainer yang diekspor dari gambar yang Anda buat. Anda menentukan dependensi dan sumber daya aplikasi Anda dalam Dockerfile yang menggunakan image dasar aplikasi AWS Panorama sebagai titik awal.

Untuk membuat image aplikasi, Anda menggunakan Docker dan AWS Panorama Application CLI. Contoh berikut dari contoh aplikasi panduan ini menunjukkan kasus penggunaan ini.

contoh Paket/123456789012-sample_code-1.0/dockerfile
FROM public.ecr.aws/panorama/panorama-application WORKDIR /panorama COPY . . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt

Instruksi Dockerfile berikut digunakan.

  • FROM- Memuat gambar dasar aplikasi (public.ecr.aws/panorama/panorama-application).

  • WORKDIR- Mengatur direktori kerja pada gambar. /panoramadigunakan untuk kode aplikasi dan file terkait. Pengaturan ini hanya bertahan selama build dan tidak memengaruhi direktori kerja untuk aplikasi Anda saat runtime (/).

  • COPY- Menyalin file dari jalur lokal ke jalur pada gambar. COPY . .menyalin file dalam direktori saat ini (direktori paket) ke direktori kerja pada gambar. Misalnya, kode aplikasi disalin dari packages/123456789012-SAMPLE_CODE-1.0/application.py ke/panorama/application.py.

  • RUN- Menjalankan perintah shell pada gambar selama build. Sebuah RUN operasi tunggal dapat menjalankan beberapa perintah secara berurutan dengan menggunakan && antara perintah. Contoh ini memperbarui manajer pip paket dan kemudian menginstal pustaka yang tercantum dalam. requirements.txt

Anda dapat menggunakan instruksi lain, seperti ADD danARG, yang berguna pada waktu pembuatan. Petunjuk yang menambahkan informasi waktu proses ke wadah, sepertiENV, tidak berfungsi dengan AWS Panorama. AWS Panorama tidak menjalankan kontainer dari gambar. Ini hanya menggunakan gambar untuk mengekspor filesystem, yang ditransfer ke alat.

Menentukan dependensi

requirements.txtadalah file persyaratan Python yang menentukan perpustakaan yang digunakan oleh aplikasi. Contoh aplikasi menggunakan Open CV danAWS SDK for Python (Boto3).

contoh Paket/123456789012-Sample_Code-1.0/Persyaratan.txt
boto3==1.24.* opencv-python==4.6.*

pip installPerintah di Dockerfile menginstal pustaka ini ke dist-packages direktori Python di bawah/usr/local/lib, sehingga mereka dapat diimpor oleh kode aplikasi Anda.

Penyimpanan lokal

AWS Panorama menyimpan /opt/aws/panorama/storage direktori untuk penyimpanan aplikasi. Aplikasi Anda dapat membuat dan memodifikasi file di jalur ini. File yang dibuat di direktori penyimpanan tetap ada di reboot. Lokasi file sementara lainnya dihapus saat boot.

Membangun aset gambar

Saat Anda membuat gambar untuk paket aplikasi Anda dengan AWS Panorama Application CLI, CLI berjalan docker build di direktori paket. Ini membangun gambar aplikasi yang berisi kode aplikasi Anda. CLI kemudian membuat wadah, mengekspor filesystem, mengompresnya, dan menyimpannya di folder. assets

$ panorama-cli build-container --container-asset-name code_asset --package-path packages/123456789012-SAMPLE_CODE-1.0 docker build -t code_asset packages/123456789012-SAMPLE_CODE-1.0 --pull docker export --output=code_asset.tar $(docker create code_asset:latest) gzip -1 code_asset.tar { "name": "code_asset", "implementations": [ { "type": "container", "assetUri": "6f67xmpl32743ed0e60c151a02f2f0da1bf70a4ab9d83fe236fa32a6f9b9f808.tar.gz", "descriptorUri": "1872xmpl129481ed053c52e66d6af8b030f9eb69b1168a29012f01c7034d7a8f.json" } ] } Container asset for the package has been succesfully built at /home/user/aws-panorama-developer-guide/sample-apps/aws-panorama-sample/assets/6f67xmpl32743ed0e60c151a02f2f0da1bf70a4ab9d83fe236fa32a6f9b9f808.tar.gz

Blok JSON dalam output adalah definisi aset yang ditambahkan CLI ke konfigurasi paket (package.json) dan mendaftar dengan layanan AWS Panorama. CLI juga menyalin file deskriptor, yang menentukan jalur ke skrip aplikasi (titik masuk aplikasi).

contoh Paket/123456789012-sample_code-1.0/descriptor.json
{ "runtimeDescriptor": { "envelopeVersion": "2021-01-01", "entry": { "path": "python3", "name": "/panorama/application.py" } } }

Dalam folder aset, deskriptor dan gambar aplikasi diberi nama untuk checksum SHA-256 mereka. Nama ini digunakan sebagai pengenal unik untuk aset saat disimpan adalah Amazon S3.