

Avis de fin de support : le 31 mai 2026, AWS le support de AWS Panorama. Après le 31 mai 2026, vous ne pourrez plus accéder à la AWS Panorama console ni aux AWS Panorama ressources. Pour plus d'informations, voir [AWS Panorama fin du support](https://docs.aws.amazon.com/panorama/latest/dev/panorama-end-of-support.html). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création d'une image d'application
<a name="applications-image"></a>

L'appliance AWS Panorama exécute des applications sous forme de systèmes de fichiers conteneurs exportés à partir d'une image que vous créez. Vous spécifiez les dépendances et les ressources de votre application dans un Dockerfile qui utilise l'image de base de l'application AWS Panorama comme point de départ.

Pour créer une image d'application, vous utilisez Docker et la CLI d'application AWS Panorama. L'exemple suivant, tiré de l'exemple d'application de ce guide, illustre ces cas d'utilisation.

**Example [/Paquets/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
```

Les instructions Dockerfile suivantes sont utilisées.

****
+ `FROM`— Charge l'image de base de l'application (`public.ecr.aws/panorama/panorama-application`). 
+ `WORKDIR`— Définissez le répertoire de travail sur l'image. `/panorama`est utilisé pour le code de l'application et les fichiers associés. Ce paramètre ne persiste que pendant la construction et n'affecte pas le répertoire de travail de votre application au moment de l'exécution (`/`).
+ `COPY`— Copie les fichiers d'un chemin local vers un chemin de l'image. `COPY . .`copie les fichiers du répertoire actuel (le répertoire du package) dans le répertoire de travail de l'image. Par exemple, le code de l'application est copié de `packages/123456789012-SAMPLE_CODE-1.0/application.py` vers`/panorama/application.py`.
+ `RUN`— Exécute des commandes shell sur l'image pendant la compilation. Une seule `RUN` opération peut exécuter plusieurs commandes en séquence en utilisant `&&` entre les commandes. Cet exemple met à jour le gestionnaire de `pip` packages, puis installe les bibliothèques répertoriées dans`requirements.txt`.

Vous pouvez utiliser d'autres instructions, telles que `ADD` et`ARG`, qui sont utiles au moment de la construction. Les instructions qui ajoutent des informations d'exécution au conteneur, telles que`ENV`, ne fonctionnent pas avec AWS Panorama. AWS Panorama n'exécute pas de conteneur à partir de l'image. Il utilise uniquement l'image pour exporter un système de fichiers, qui est transféré vers l'appliance.

## Spécification des dépendances
<a name="applications-image-dependencies"></a>

`requirements.txt`est un fichier d'exigences Python qui spécifie les bibliothèques utilisées par l'application. L'exemple d'application utilise Open CV et le AWS SDK pour Python (Boto3).

**Example [Paquets/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.*
```

La `pip install` commande du Dockerfile installe ces bibliothèques dans le `dist-packages` répertoire Python ci-dessous`/usr/local/lib`, afin qu'elles puissent être importées par le code de votre application.

## Stockage local
<a name="applications-image-storage"></a>

AWS Panorama réserve le `/opt/aws/panorama/storage` répertoire au stockage des applications. Votre application peut créer et modifier des fichiers à ce chemin. Les fichiers créés dans le répertoire de stockage sont conservés après les redémarrages. Les autres emplacements de fichiers temporaires sont effacés au démarrage.

## Création de ressources d'image
<a name="applications-image-build"></a>

Lorsque vous créez une image pour votre package d'application à l'aide de l'interface de ligne de commande d'application AWS Panorama, celle-ci s'exécute `docker build` dans le répertoire du package. Cela crée une image d'application qui contient le code de votre application. La CLI crée ensuite un conteneur, exporte son système de fichiers, le compresse et le stocke dans le `assets` dossier.

```
$ 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
```

Le bloc JSON dans la sortie est une définition d'actif que la CLI ajoute à la configuration du package (`package.json`) et enregistre auprès du service AWS Panorama. La CLI copie également le fichier descripteur, qui indique le chemin d'accès au script d'application (le point d'entrée de l'application).

**Example [Paquets/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"
        }
    }
}
```

Dans le dossier des actifs, le descripteur et l'image de l'application sont nommés d'après leur somme de contrôle SHA-256. Ce nom est utilisé comme identifiant unique pour l'actif lorsqu'il est stocké dans Amazon S3. 