

終止支援通知：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-nodes"></a>

節點是模型、程式碼、攝影機串流、輸出和參數。節點具有介面，可定義其輸入和輸出。可以在您帳戶中的套件、AWS Panorama 提供的套件或內建類型中定義介面。

在下列範例中，`code_node`並`model_node`參考範例應用程式隨附的範例程式碼和模型套件。 `camera_node`使用 AWS Panorama 提供的套件，為您在部署期間指定的攝影機串流建立預留位置。

**Example graph.json – 節點**  

```
        "nodes": [
            {
                "name": "code_node",
                "interface": "123456789012::SAMPLE_CODE.interface"
            },
            {
                "name": "model_node",
                "interface": "123456789012::SQUEEZENET_PYTORCH_V1.interface"
            },
            {
                "name": "camera_node",
                "interface": "panorama::abstract_rtsp_media_source.rtsp_v1_interface",
                "overridable": true,
                "overrideMandatory": true,
                "decorator": {
                    "title": "IP camera",
                    "description": "Choose a camera stream."
                }
            }
      ]
```

## Edges (邊)
<a name="applications-manifest-edges"></a>

Edges 會將一個節點的輸出映射到另一個節點的輸入。在下列範例中，第一個邊緣會將攝影機串流節點的輸出映射至應用程式程式碼節點的輸入。名稱 `video_in`和 `video_out`是在節點套件的介面中定義。

**Example graph.json – 邊緣**  

```
        "edges": [
            {
                "producer": "camera_node.video_out",
                "consumer": "code_node.video_in"
            },
            {
                "producer": "code_node.video_out",
                "consumer": "output_node.video_in"
            },
```

 在應用程式程式碼中，您可以使用 `inputs`和 `outputs` 屬性從輸入串流取得影像，並將影像傳送至輸出串流。

**Example application.py – 視訊輸入和輸出**  

```
    def process_streams(self):
        """Processes one frame of video from one or more video streams."""
        frame_start = time.time()
        self.frame_num += 1
        logger.debug(self.frame_num)
        # Loop through attached video streams
        streams = self.inputs.video_in.get()
        for stream in streams:
            self.process_media(stream)
        ...
        self.outputs.video_out.put(streams)
```

## 抽象節點
<a name="applications-manifest-abstract"></a>

在應用程式資訊清單中，抽象節點是指 AWS Panorama 定義的套件，您可以在應用程式資訊清單中將其用作預留位置。AWS Panorama 提供兩種類型的抽象節點。

****
+ **攝影機串流** – 選擇應用程式在部署期間使用的攝影機串流。

  *套件名稱* – `panorama::abstract_rtsp_media_source`

  *介面名稱* – `rtsp_v1_interface`
+ **HDMI 輸出** – 表示應用程式輸出影片。

  *套件名稱* – `panorama::hdmi_data_sink`

  *介面名稱* – `hdmi0`

下列範例顯示應用程式的基本套件、節點和邊緣集，可處理攝影機串流並將視訊輸出至顯示器。使用 AWS Panorama 中`abstract_rtsp_media_source`套件介面的攝影機節點可接受多個攝影機串流做為輸入。參考 的輸出節點`hdmi_data_sink`可讓應用程式碼存取從設備的 HDMI 連接埠輸出的視訊緩衝區。

**Example graph.json – 抽象節點**  

```
{
    "nodeGraph": {
        "envelopeVersion": "2021-01-01",
        "packages": [
            {
                "name": "123456789012::SAMPLE_CODE",
                "version": "1.0"
            },
            {
                "name": "123456789012::SQUEEZENET_PYTORCH_V1",
                "version": "1.0"
            },
            {
                "name": "panorama::abstract_rtsp_media_source",
                "version": "1.0"
            },
            {
                "name": "panorama::hdmi_data_sink",
                "version": "1.0"
            }
        ],
        "nodes": [
            {
                "name": "camera_node",
                "interface": "panorama::abstract_rtsp_media_source.rtsp_v1_interface",
                "overridable": true,
                "decorator": {
                    "title": "IP camera",
                    "description": "Choose a camera stream."
                }
            },
            {
                "name": "output_node",
                "interface": "panorama::hdmi_data_sink.hdmi0"
            }
        ],
        "edges": [
            {
                "producer": "camera_node.video_out",
                "consumer": "code_node.video_in"
            },
            {
                "producer": "code_node.video_out",
                "consumer": "output_node.video_in"
            }
        ]
    }
}
```