

サポート終了通知: 2026 年 5 月 31 日、 AWS は のサポートを終了します AWS Panorama。2026 年 5 月 31 日以降、 AWS Panorama コンソールまたは AWS Panorama リソースにアクセスできなくなります。詳細については、[AWS Panorama 「サポート終了](https://docs.aws.amazon.com/panorama/latest/dev/panorama-end-of-support.html)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アプリケーションをデプロイします
<a name="applications-deploy"></a>

アプリケーションをデプロイするには、AWS Panorama Application CLI を使用してアカウントにインポートし、コンテナを構築し、アセットをアップロードして登録し、アプリケーションインスタンスを作成します。このトピックでは、これらの各ステップを詳細に説明し、バックグラウンドで何が行われているかを説明します。

まだアプリケーションをデプロイしていないのであれば、[の開始方法 AWS Panorama](panorama-gettingstarted.md) を参照してウォークスルーを行ってください。

サンプルアプリケーションのカスタマイズと拡張の詳細については、[AWS Panorama アプリケーションの構築](panorama-development.md) を参照してください。

**Topics**
+ [AWS Panorama Application CLI をインストールする](#applications-deploy-install)
+ [アプリケーションをインポートします](#applications-deploy-import)
+ [コンテナイメージの構築](#applications-deploy-build)
+ [モデルのインポート](#applications-deploy-model)
+ [アプリケーションアセットをアップロードします](#applications-deploy-package)
+ [AWS Panorama コンソールでアプリケーションをデプロイ](#applications-manage-deploy)
+ [アプリケーションのデプロイを自動化する](#applications-deploy-automate)

## AWS Panorama Application CLI をインストールする
<a name="applications-deploy-install"></a>

AWS Panorama アプリケーション CLI と をインストールするには AWS CLI、pip を使用します。

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

AWS Panorama Application CLI を使用してアプリケーションイメージを構築するには、Docker が必要です。Linux では `qemu` および関連するシステムライブラリも必要です。AWS Panorama Application CLI のインストールと設定の詳細については、プロジェクトの GitHub リポジトリにある 「README」 ファイルを参照してください。

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

Windows で WSL2 を使ってビルド環境を設定する手順については、[Windows 開発環境でのセットアップ](applications-devenvwindows.md) を参照してください。

## アプリケーションをインポートします
<a name="applications-deploy-import"></a>

サンプルアプリケーションまたはサードパーティが提供するアプリケーションを使用している場合は、AWS Panorama Application CLI を使用してアプリケーションをインポートします。

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

このコマンドは、アカウント ID でアプリケーションパッケージの名前を変更します。Package 名は、デプロイ先のアカウントのアカウント ID で始まります。アプリケーションを複数のアカウントにデプロイする場合、アカウントごとにアプリケーションを個別にインポートしてパッケージ化する必要があります。

たとえば、このガイドのサンプルアプリケーションには、コードパッケージとモデルパッケージがあり、それぞれの名前にプレースホルダーアカウント ID が付けられています。`import-application` コマンドは、これらの名前を変更して、CLI がワークスペースの AWS 認証情報から推測するアカウント ID を使用します。

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

パッケージ・ディレクトリ名と、それらを参照するアプリケーション・マニフェスト (`graph.json`) では、`123456789012` はアカウント ID に置き換えられます。アカウント ID を確認するには、 `aws sts get-caller-identity`で を呼び出します AWS CLI。

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

## コンテナイメージの構築
<a name="applications-deploy-build"></a>

アプリケーションコードは Docker コンテナイメージにパッケージ化されており、これには Dockerfile にインストールするアプリケーションコードとライブラリが含まれます。AWS Panorama Application CLI `build-container` コマンドを使用して Docker イメージを構築し、ファイルシステムイメージをエクスポートします。

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

このコマンドは、という名前の Docker イメージを作成し`code_asset`、ファイルシステムをフォルダ内のアーカイブにエクスポートします。`.tar.gz` `assets`CLI は、アプリケーションの Dockerfile で指定されているように、Amazon Elastic Container Registry (Amazon ECR) からアプリケーションのベースイメージを取得します。

コンテナアーカイブに加えて、CLI はパッケージ記述子 (`descriptor.json`) のアセットを作成します。どちらのファイルも、元のファイルのハッシュを反映する一意の識別子で名前が変更されます。また、AWS Panorama Application CLI は、2 つのアセットの名前を記録するブロックをパッケージ設定に追加します。これらの名前は、デプロイプロセス中にアプライアンスによって使用されます。

**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) — アセットブロック付き**  

```
{
    "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"
                    },
```

`build-container` コマンドで指定するコードアセットの名前は、パッケージ設定内の `asset` フィールドの値と一致する必要があります。前述の例では、両方の値が `code_asset` です。

## モデルのインポート
<a name="applications-deploy-model"></a>

アプリケーションの アセットフォルダーにモデルアーカイブがある場合や、個別にダウンロードするモデルアーカイブがある場合があります。新しいモデル、更新されたモデル、または更新されたモデル記述子ファイルがある場合は、`add-raw-model` コマンドを使用してインポートします。

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

記述子ファイルの更新だけが必要な場合は、アセットディレクトリにある既存のモデルを再利用できます。浮動小数点精度モードなどの機能を設定するには、記述子ファイルの更新が必要な場合があります。例えば、次のスクリプトはサンプルアプリでこれを行う方法を示しています。

**Example [util-scripts/update-model-config.sh](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
```

モデルパッケージディレクトリの記述子ファイルへの変更は、CLI で再インポートするまで適用されません。CLI は、コンテナを再構築するときにアプリケーションコードパッケージの設定を更新するのと同様に、新しいアセット名を使用してモデルパッケージ構成を更新します。

## アプリケーションアセットをアップロードします
<a name="applications-deploy-package"></a>

モデルアーカイブ、コンテナファイルシステムアーカイブ、およびそれらの記述子ファイルを含むアプリケーションのアセットをアップロードして登録するには、`package-application` コマンドを使用します。

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

アセットファイルまたはパッケージ設定に変更がない場合、CLI はそれをスキップします。

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

CLI は、各パッケージのアセットを、アカウントに固有の Amazon S3 Access Points にアップロードします。AWS Panorama はアクセスポイントを管理し、[DescribePackage](https://docs.aws.amazon.com/panorama/latest/api/API_DescribePackage.html) API を通じてアクセスポイントに関する情報を提供します。CLI は各パッケージのアセットをそのパッケージに指定された場所にアップロードし、パッケージ設定で記述された設定で AWS Panorama サービスに登録します。

## AWS Panorama コンソールでアプリケーションをデプロイ
<a name="applications-manage-deploy"></a>

AWS Panorama コンソールでアプリケーションをデプロイできます。デプロイプロセス中に、アプリケーションコードに渡すカメラストリームを選択し、アプリケーションの開発者が提供するオプションを設定します。

**アプリケーションのデプロイ**

1. AWS Panorama コンソールの [[デプロイされたアプリケーション] ページ](https://console.aws.amazon.com/panorama/home#deployed-applications)を開きます。

1. **[アプリケーションをデプロイ]** を選択します。

1. アプリケーションマニフェスト、`graph.json` の内容をテキストエディタに貼り付けます。**次へ** をクリックします。

1. 名前と説明を入力します。

1. **[デプロイに進む]** を選択します。

1. **[デプロイを開始]** を選択します。

1. アプリケーションで[ロールを使用](permissions-application.md)する場合は、ドロップダウンメニューからロールを選択します。**次へ** をクリックします。

1. **[デバイスを選択]**を選択し、次にアプライアンスを選択します。**次へ** をクリックします。

1. **[データソースを選択]** ステップで、**[入力を表示]** を選択し、カメラストリームをデータソースとして追加します。**次へ** をクリックします。

1. **[設定]** ステップでは、開発者が定義したアプリケーション固有の設定を行います。**次へ** をクリックします。

1. [**デプロイ**] を選択してから、[**完了**] を選択します。

1. デプロイされたアプリケーションのリストで、ステータスをモニタリングするアプリケーションを選択します。

デプロイプロセスには約 15～20 分かかります。アプリケーションの起動中は、アプライアンスの出力が長時間空白になることがあります。エラーが発生した場合は、[トラブルシューティング](panorama-troubleshooting.md) を参照してください。

## アプリケーションのデプロイを自動化する
<a name="applications-deploy-automate"></a>

[CreateApplicationInstance](https://docs.aws.amazon.com/panorama/latest/api/API_CreateApplicationInstance.html) API でアプリケーションのデプロイプロセスを自動化できます。この API は 2 つの設定ファイルを入力として受け取ります。アプリケーションマニフェストは、使用するパッケージとそれらの関係を指定します。2 つ目のファイルは、アプリケーションマニフェスト内の値をデプロイ時のオーバーライドを指定するオーバーライドファイルです。オーバーライドファイルを使用すると、同じアプリケーションマニフェストを使用してアプリケーションを異なるカメラストリームにデプロイしたり、その他のアプリケーション固有の設定を行ったりできます。

詳細と、このトピックの各ステップのスクリプト例については、[アプリケーションのデプロイを自動化する](api-deploy.md) を参照してください。