

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.

# Déployer une application
<a name="applications-deploy"></a>

Pour déployer une application, vous utilisez la CLI d'application AWS Panorama pour l'importer dans votre compte, créer le conteneur, télécharger et enregistrer des actifs, et créer une instance d'application. Cette rubrique décrit chacune de ces étapes en détail et décrit ce qui se passe en arrière-plan.

Si vous n'avez pas encore déployé d'application, consultez la procédure pas [Commencer avec AWS Panorama](panorama-gettingstarted.md) à pas.

Pour plus d'informations sur la personnalisation et l'extension de l'exemple d'application, consultez[AWS Panorama Applications de construction](panorama-development.md).

**Topics**
+ [Installation de l'interface de ligne de commande de l'application AWS Panorama](#applications-deploy-install)
+ [Importer une application](#applications-deploy-import)
+ [Création d'une image de conteneur](#applications-deploy-build)
+ [Importer un modèle](#applications-deploy-model)
+ [Télécharger les ressources de l'application](#applications-deploy-package)
+ [Déployer une application avec la console AWS Panorama](#applications-manage-deploy)
+ [Automatisez le déploiement des applications](#applications-deploy-automate)

## Installation de l'interface de ligne de commande de l'application AWS Panorama
<a name="applications-deploy-install"></a>

Pour installer l'interface de ligne de commande de l'application AWS Panorama AWS CLI, utilisez pip.

```
$ pip3 install --upgrade awscli panoramacli
```

Pour créer des images d'applications avec la CLI d'application AWS Panorama, vous avez besoin de Docker. Sous Linux, `qemu` les bibliothèques système associées sont également requises. Pour plus d'informations sur l'installation et la configuration de l'interface de ligne de commande de l'application AWS Panorama, consultez le fichier README dans le GitHub référentiel du projet.

****
+ [github. com/aws/aws-panorama-cli](https://github.com/aws/aws-panorama-cli)

Pour obtenir des instructions sur la configuration d'un environnement de génération sous Windows avec WSL2, voir[Configuration d'un environnement de développement sous Windows](applications-devenvwindows.md).

## Importer une application
<a name="applications-deploy-import"></a>

Si vous travaillez avec un exemple d'application ou une application fournie par un tiers, utilisez la CLI d'application AWS Panorama pour importer l'application. 

```
my-app$ panorama-cli import-application
```

Cette commande renomme les packages d'applications avec votre identifiant de compte. Les noms des packages commencent par l'ID du compte sur lequel ils sont déployés. Lorsque vous déployez une application sur plusieurs comptes, vous devez importer et empaqueter l'application séparément pour chaque compte.

Par exemple, l'exemple d'application de ce guide, un package de code et un package modèle, chacun étant nommé avec un identifiant de compte fictif. La `import-application` commande les renomme pour utiliser l'ID de compte que la CLI déduit des informations d'identification de votre espace de AWS travail.

```
/aws-panorama-sample
├── assets
├── graphs
│   └── my-app
│       └── [graph.json](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/graphs/my-app/graph.json)
└── packages
    ├── [123456789012-SAMPLE\$1CODE-1.0](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SAMPLE_CODE-1.0)
    │   ├── Dockerfile
    │   ├── application.py
    │   ├── descriptor.json
    │   ├── package.json
    │   ├── requirements.txt
    │   └── squeezenet_classes.json
    └── [123456789012-SQUEEZENET\$1PYTORCH-1.0](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SQUEEZENET_PYTORCH-1.0)
        ├── descriptor.json
        └── package.json
```

`123456789012`est remplacé par votre identifiant de compte dans les noms des répertoires des packages et dans le manifeste de l'application (`graph.json`), qui y fait référence. Vous pouvez confirmer l'identifiant de votre compte `aws sts get-caller-identity` en appelant le AWS CLI.

```
$ aws sts get-caller-identity
{
    "UserId": "AIDAXMPL7W66UC3GFXMPL",
    "Account": "210987654321",
    "Arn": "arn:aws:iam::210987654321:user/devenv"
}
```

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

Le code de votre application est intégré dans une image de conteneur Docker, qui inclut le code de l'application et les bibliothèques que vous installez dans votre Dockerfile. Utilisez la `build-container` commande CLI de l'application AWS Panorama pour créer une image Docker et exporter une image de système de fichiers.

```
my-app$ panorama-cli build-container --container-asset-name code_asset --package-path packages/210987654321-SAMPLE_CODE-1.0
{
    "name": "code_asset",
    "implementations": [
        {
            "type": "container",
            "assetUri": "5fa5xmplbc8c16bf8182a5cb97d626767868d3f4d9958a4e49830e1551d227c5.tar.gz",
            "descriptorUri": "1872xmpl129481ed053c52e66d6af8b030f9eb69b1168a29012f01c7034d7a8f.json"
        }
    ]
}
Container asset for the package has been succesfully built at assets/5fa5xmplbc8c16bf8182a5cb97d626767868d3f4d9958a4e49830e1551d227c5.tar.gz
```

Cette commande crée une image Docker nommée `code_asset` et exporte un système de fichiers vers une `.tar.gz` archive du `assets` dossier. La CLI extrait l'image de base de l'application depuis Amazon Elastic Container Registry (Amazon ECR), comme indiqué dans le Dockerfile de l'application.

Outre l'archive du conteneur, la CLI crée un actif pour le descripteur de package (`descriptor.json`). Les deux fichiers sont renommés avec un identifiant unique qui reflète un hachage du fichier d'origine. La CLI de l'application AWS Panorama ajoute également un bloc à la configuration du package qui enregistre les noms des deux actifs. Ces noms sont utilisés par l'appliance au cours du processus de déploiement.

**Example [Packages/123456789012-sample\$1code-1.0/package.json](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/sample-apps/aws-panorama-sample/packages/123456789012-SAMPLE_CODE-1.0/package.json) — avec bloc d'actifs**  

```
{
    "nodePackage": {
        "envelopeVersion": "2021-01-01",
        "name": "SAMPLE_CODE",
        "version": "1.0",
        "description": "Computer vision application code.",
        "assets": [
            {
                "name": "code_asset",
                "implementations": [
                    {
                        "type": "container",
                        "assetUri": "5fa5xmplbc8c16bf8182a5cb97d626767868d3f4d9958a4e49830e1551d227c5.tar.gz",
                        "descriptorUri": "1872xmpl129481ed053c52e66d6af8b030f9eb69b1168a29012f01c7034d7a8f.json"
                    }
                ]
            }
        ],
        "interfaces": [
            {
                "name": "interface",
                "category": "business_logic",
                "asset": "code_asset",
                "inputs": [
                    {
                        "name": "video_in",
                        "type": "media"
                    },
```

Le nom de la ressource de code, spécifié dans la `build-container` commande, doit correspondre à la valeur du `asset` champ dans la configuration du package. Dans l'exemple précédent, les deux valeurs sont`code_asset`.

## Importer un modèle
<a name="applications-deploy-model"></a>

Il se peut que votre application possède une archive modèle dans son dossier de ressources ou que vous téléchargiez séparément. Si vous avez un nouveau modèle, un modèle mis à jour ou un fichier descripteur de modèle mis à jour, utilisez la `add-raw-model` commande pour l'importer.

```
my-app$ panorama-cli add-raw-model --model-asset-name model_asset \
      --model-local-path my-model.tar.gz \
      --descriptor-path packages/210987654321-SQUEEZENET_PYTORCH-1.0/descriptor.json \
      --packages-path packages/210987654321-SQUEEZENET_PYTORCH-1.0
```

Si vous devez simplement mettre à jour le fichier descripteur, vous pouvez réutiliser le modèle existant dans le répertoire des actifs. Vous devrez peut-être mettre à jour le fichier descripteur pour configurer des fonctionnalités telles que le mode de précision à virgule flottante. Par exemple, le script suivant montre comment procéder avec l'exemple d'application.

**Example [scripts utiles/ .sh update-model-config](https://github.com/awsdocs/aws-panorama-developer-guide/blob/main/util-scripts/update-model-config.sh)**  

```
#!/bin/bash
set -eo pipefail
MODEL_ASSET=fd1axmplacc3350a5c2673adacffab06af54c3f14da6fe4a8be24cac687a386e
MODEL_PACKAGE=SQUEEZENET_PYTORCH
ACCOUNT_ID=$(ls packages | grep -Eo '[0-9]{12}' | head -1)
panorama-cli add-raw-model --model-asset-name model_asset --model-local-path assets/${MODEL_ASSET}.tar.gz --descriptor-path packages/${ACCOUNT_ID}-${MODEL_PACKAGE}-1.0/descriptor.json --packages-path packages/${ACCOUNT_ID}-${MODEL_PACKAGE}-1.0
cp packages/${ACCOUNT_ID}-${MODEL_PACKAGE}-1.0/package.json packages/${ACCOUNT_ID}-${MODEL_PACKAGE}-1.0/package.json.bup
```

Les modifications apportées au fichier descripteur dans le répertoire du package du modèle ne sont appliquées que lorsque vous le réimportez avec la CLI. La CLI met à jour la configuration du package du modèle avec les nouveaux noms d'actifs en place, de la même manière qu'elle met à jour la configuration du package de code d'application lorsque vous reconstruisez un conteneur.

## Télécharger les ressources de l'application
<a name="applications-deploy-package"></a>

Pour télécharger et enregistrer les actifs de l'application, notamment l'archive du modèle, l'archive du système de fichiers conteneur et leurs fichiers descripteurs, utilisez la `package-application` commande.

```
my-app$ panorama-cli package-application
Uploading package SQUEEZENET_PYTORCH
Patch version for the package 5d3cxmplb7113faa1d130f97f619655d8ca12787c751851a0e155e50eb5e3e96
Deregistering previous patch version e845xmpl8ea0361eb345c313a8dded30294b3a46b486dc8e7c174ee7aab29362
Asset fd1axmplacc3350a5c2673adacffab06af54c3f14da6fe4a8be24cac687a386e.tar.gz already exists, ignoring upload
upload: assets/87fbxmpl6f18aeae4d1e3ff8bbc6147390feaf47d85b5da34f8374974ecc4aaf.json to s3://arn:aws:s3:us-east-2:212345678901:accesspoint/panorama-210987654321-6k75xmpl2jypelgzst7uux62ye/210987654321/nodePackages/SQUEEZENET_PYTORCH/binaries/87fbxmpl6f18aeae4d1e3ff8bbc6147390feaf47d85b5da34f8374974ecc4aaf.json
Called register package version for SQUEEZENET_PYTORCH with patch version 5d3cxmplb7113faa1d130f97f619655d8ca12787c751851a0e155e50eb5e3e96
...
```

Si aucune modification n'est apportée à un fichier de ressources ou à la configuration du package, la CLI l'ignore.

```
Uploading package SAMPLE_CODE
Patch Version ca91xmplca526fe3f07821fb0c514f70ed0c444f34cb9bd3a20e153730b35d70 already registered, ignoring upload
Register patch version complete for SQUEEZENET_PYTORCH with patch version 5d3cxmplb7113faa1d130f97f619655d8ca12787c751851a0e155e50eb5e3e96
Register patch version complete for SAMPLE_CODE with patch version ca91xmplca526fe3f07821fb0c514f70ed0c444f34cb9bd3a20e153730b35d70
All packages uploaded and registered successfully
```

La CLI télécharge les ressources de chaque package vers un point d'accès Amazon S3 spécifique à votre compte. AWS Panorama gère le point d'accès pour vous et fournit des informations à ce sujet via l'[DescribePackage](https://docs.aws.amazon.com/panorama/latest/api/API_DescribePackage.html)API. La CLI télécharge les ressources de chaque package à l'emplacement prévu pour ce package et les enregistre auprès du service AWS Panorama avec les paramètres décrits dans la configuration du package.

## Déployer une application avec la console AWS Panorama
<a name="applications-manage-deploy"></a>

Vous pouvez déployer une application à l'aide de la console AWS Panorama. Au cours du processus de déploiement, vous choisissez les flux de caméras à transmettre au code de l'application et vous configurez les options fournies par le développeur de l'application.

**Pour déployer une application**

1. Ouvrez la [page des applications déployées](https://console.aws.amazon.com/panorama/home#deployed-applications) de la console AWS Panorama.

1. Choisissez **Déployer l'application**.

1. Collez le contenu du manifeste de l'application dans l'éditeur de texte. `graph.json` Choisissez **Suivant**.

1. Entrez un nom et une description.

1. Choisissez **Proceed to deploy**.

1. Choisissez **Commencer le déploiement**.

1. Si votre application [utilise un rôle](permissions-application.md), sélectionnez-le dans le menu déroulant. Choisissez **Suivant**.

1. Choisissez **Sélectionner un appareil**, puis choisissez votre appareil. Choisissez **Suivant**.

1. À l'étape **Sélectionner les sources de données**, choisissez **Afficher les entrées** et ajoutez le flux de votre caméra en tant que source de données. Choisissez **Suivant**.

1. À l'étape **Configurer**, configurez tous les paramètres spécifiques à l'application définis par le développeur. Choisissez **Suivant**.

1. Choisissez **Déployer**, puis cliquez sur **Terminé**.

1. Dans la liste des applications déployées, choisissez l'application dont vous souhaitez surveiller l'état.

Le processus de déploiement prend 15 à 20 minutes. La sortie de l'appliance peut rester vide pendant une période prolongée pendant le démarrage de l'application. Si vous rencontrez une erreur, consultez[Résolution des problèmes](panorama-troubleshooting.md).

## Automatisez le déploiement des applications
<a name="applications-deploy-automate"></a>

Vous pouvez automatiser le processus de déploiement des applications à l'aide de l'[CreateApplicationInstance](https://docs.aws.amazon.com/panorama/latest/api/API_CreateApplicationInstance.html)API. L'API prend deux fichiers de configuration en entrée. Le manifeste de l'application indique les packages utilisés et leurs relations. Le second fichier est un fichier de remplacement qui spécifie les remplacements au moment du déploiement des valeurs du manifeste de l'application. L'utilisation d'un fichier de remplacement vous permet d'utiliser le même manifeste d'application pour déployer l'application avec différents flux de caméras et de configurer d'autres paramètres spécifiques à l'application.

Pour plus d'informations et des exemples de scripts pour chacune des étapes de cette rubrique, consultez[Automatisez le déploiement des applications](api-deploy.md).