

Hinweis zum Ende des Supports: Am 31. Mai 2026 AWS endet der Support für AWS Panorama. Nach dem 31. Mai 2026 können Sie nicht mehr auf die AWS Panorama Konsole oder AWS Panorama die Ressourcen zugreifen. Weitere Informationen finden Sie unter [AWS Panorama Ende des Supports](https://docs.aws.amazon.com/panorama/latest/dev/panorama-end-of-support.html). 

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erstellen eines Anwendungsabbilds
<a name="applications-image"></a>

Die AWS Panorama Appliance führt Anwendungen als Container-Dateisysteme aus, die aus einem von Ihnen erstellten Image exportiert werden. Sie geben die Abhängigkeiten und Ressourcen Ihrer Anwendung in einem Dockerfile an, das das Basisimage der AWS Panorama Panorama-Anwendung als Ausgangspunkt verwendet.

Um ein Anwendungs-Image zu erstellen, verwenden Sie Docker und die AWS Panorama Application CLI. Das folgende Beispiel aus der Beispielanwendung dieses Handbuchs veranschaulicht diese Anwendungsfälle.

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

Die folgenden Dockerfile-Anweisungen werden verwendet.

****
+ `FROM`— Lädt das Basisimage der Anwendung ()`public.ecr.aws/panorama/panorama-application`. 
+ `WORKDIR`— Legt das Arbeitsverzeichnis auf dem Image fest. `/panorama`wird für Anwendungscode und zugehörige Dateien verwendet. Diese Einstellung bleibt nur während des Builds bestehen und hat keinen Einfluss auf das Arbeitsverzeichnis Ihrer Anwendung zur Laufzeit (`/`).
+ `COPY`— Kopiert Dateien von einem lokalen Pfad in einen Pfad auf dem Image. `COPY . .`kopiert die Dateien im aktuellen Verzeichnis (dem Paketverzeichnis) in das Arbeitsverzeichnis auf dem Image. Beispielsweise wird der Anwendungscode von `packages/123456789012-SAMPLE_CODE-1.0/application.py` nach kopiert`/panorama/application.py`.
+ `RUN`— Führt während des Builds Shell-Befehle auf dem Image aus. Eine einzelne `RUN` Operation kann mehrere Befehle nacheinander ausführen, indem `&&` zwischen Befehlen verwendet wird. In diesem Beispiel wird der `pip` Paketmanager aktualisiert und anschließend die unter aufgeführten Bibliotheken installiert`requirements.txt`.

Sie können andere Anweisungen verwenden, z. B. `ADD` und`ARG`, die bei der Erstellung nützlich sind. Anweisungen, die dem Container Laufzeitinformationen hinzufügen, wie z. B.`ENV`, funktionieren nicht mit AWS Panorama. AWS Panorama führt keinen Container aus dem Image aus. Es verwendet das Image nur, um ein Dateisystem zu exportieren, das auf die Appliance übertragen wird.

## Angeben von Abhängigkeiten
<a name="applications-image-dependencies"></a>

`requirements.txt`ist eine Python-Anforderungsdatei, die die von der Anwendung verwendeten Bibliotheken spezifiziert. Die Beispielanwendung verwendet Open CV und die AWS SDK für Python (Boto3).

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

Der `pip install` Befehl im Dockerfile installiert diese Bibliotheken im `dist-packages` Python-Verzeichnis darunter`/usr/local/lib`, sodass sie von Ihrem Anwendungscode importiert werden können.

## Lokaler Speicher
<a name="applications-image-storage"></a>

AWS Panorama reserviert das `/opt/aws/panorama/storage` Verzeichnis für den Anwendungsspeicher. Ihre Anwendung kann Dateien in diesem Pfad erstellen und ändern. Im Speicherverzeichnis erstellte Dateien bleiben auch nach Neustarts erhalten. Andere Speicherorte für temporäre Dateien werden beim Start gelöscht.

## Image-Objekte erstellen
<a name="applications-image-build"></a>

Wenn Sie mit der AWS Panorama Application CLI ein Image für Ihr Anwendungspaket erstellen, wird die CLI `docker build` im Paketverzeichnis ausgeführt. Dadurch wird ein Anwendungs-Image erstellt, das Ihren Anwendungscode enthält. Die CLI erstellt dann einen Container, exportiert sein Dateisystem, komprimiert ihn und speichert ihn im `assets` Ordner.

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

Der JSON-Block in der Ausgabe ist eine Asset-Definition, die die CLI der Paketkonfiguration (`package.json`) hinzufügt und beim AWS Panorama Panorama-Service registriert. Die CLI kopiert auch die Deskriptordatei, die den Pfad zum Anwendungsskript (den Einstiegspunkt der Anwendung) angibt.

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

Im Assets-Ordner sind der Deskriptor und das Anwendungsbild nach ihrer SHA-256-Prüfsumme benannt. Dieser Name wird als eindeutige Kennung für das Asset verwendet, wenn es in Amazon S3 gespeichert wird. 