

Pemberitahuan akhir dukungan: Pada 31 Mei 2026, AWS akan mengakhiri dukungan untuk AWS Panorama. Setelah 31 Mei 2026, Anda tidak akan lagi dapat mengakses AWS Panorama konsol atau AWS Panorama sumber daya. Untuk informasi lebih lanjut, lihat [AWS Panorama akhir dukungan](https://docs.aws.amazon.com/panorama/latest/dev/panorama-end-of-support.html). 

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

# Membangun gambar aplikasi
<a name="applications-image"></a>

AWS Panorama Appliance menjalankan aplikasi sebagai sistem file kontainer yang diekspor dari gambar yang Anda buat. Anda menentukan dependensi dan resource aplikasi Anda di 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.

**Example [Paket/123456789012-sample\$1code-1.0/dockerfile](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/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`— Atur direktori kerja pada gambar. `/panorama`digunakan untuk kode aplikasi dan file terkait. Pengaturan ini hanya bertahan selama pembuatan dan tidak memengaruhi direktori kerja untuk aplikasi Anda saat runtime ()`/`.
+ `COPY`— Menyalin file dari jalur lokal ke jalur pada gambar. `COPY . .`menyalin file di 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 pembuatan. 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 di dalamnya. `requirements.txt`

Anda dapat menggunakan instruksi lain, seperti `ADD` dan`ARG`, yang berguna pada waktu pembuatan. Petunjuk yang menambahkan informasi runtime ke container, seperti`ENV`, tidak berfungsi dengan AWS Panorama. AWS Panorama tidak menjalankan wadah dari gambar. Ini hanya menggunakan gambar untuk mengekspor sistem file, yang ditransfer ke alat.

## Menentukan dependensi
<a name="applications-image-dependencies"></a>

`requirements.txt`adalah file persyaratan Python yang menentukan pustaka yang digunakan oleh aplikasi. Contoh aplikasi menggunakan Open CV dan AWS SDK untuk Python (Boto3).

**Example [Paket/123456789012-sample\$1code-1.0/requirements.txt](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SAMPLE_CODE-1.0/requirements.txt)**  

```
boto3==1.24.*
opencv-python==4.6.*
```

`pip install`Perintah 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
<a name="applications-image-storage"></a>

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 citra
<a name="applications-image-build"></a>

Saat Anda membuat gambar untuk paket aplikasi Anda dengan AWS Panorama Application CLI, CLI berjalan di direktori paket. `docker build` Ini membangun gambar aplikasi yang berisi kode aplikasi Anda. CLI kemudian membuat wadah, mengekspor sistem file-nya, 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).

**Example [Paket/123456789012-sample\$1code-1.0/descriptor.json](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/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 pengidentifikasi unik untuk aset saat disimpan adalah Amazon S3. 