|
1 |
| -# Azure IoT Operations (AIO) Media Connector Demo |
2 |
| - |
3 |
| -> [!NOTE] |
4 |
| -> Ensure you're using Azure IoT Operations version 1.0.0a3 or later before moving forward. |
| 1 | +# Azure IoT Operations media connector demo |
5 | 2 |
|
6 | 3 | ## Introduction
|
7 | 4 |
|
8 |
| -This collection consists of .yaml files that could be utilized by the sample commands found in the introductory document. |
| 5 | +This document describes the Azure IoT Operations media connector demo package. |
| 6 | + |
| 7 | +The Azure IoT Operations media connector is part of the Azure IoT Operations platform: |
| 8 | + |
| 9 | +- It is designed to be secure, scalable and fault-tolerant. |
| 10 | +- It is responsible for the ingestion, storage, and distribution of media content. |
| 11 | +- It takes care of the management of media metadata and the generation of media thumbnails. |
| 12 | + |
| 13 | +## Demo environment diagram |
| 14 | + |
| 15 | +The demo environment consists of the following components: |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | +The dotted lines represent connections and components that are possible but not show in the demo package. |
| 20 | + |
| 21 | +## Getting started |
| 22 | + |
| 23 | +1. The scripts are designed to run on PowerShell 7 or newer. |
| 24 | + - You can test if you have the necessary prerequisites by running `Test-Prerequisites.ps1`. |
| 25 | + - The *Installation of prerequisites* section below has useful relevant information. |
| 26 | + - This demo folder should be in a path without spaces. |
| 27 | +1. [Deploy Azure IoT Operations](https://aka.ms/getAzure IoT Operations). |
| 28 | + - The Azure IoT Operations Kubernetes cluster should be configured as the `kubectl` current context. |
| 29 | +1. Upgrade the public preview components by running the script `Update-Azure IoT OperationsMediaConnector.ps1` in the `update-Azure IoT Operations/` folder. |
| 30 | +1. Install the media server using the files in the `media-server/` folder. |
| 31 | +1. You should have a listener without TLS configured on port 1883. |
| 32 | + - You can verify by calling the `Update-Azure IoT OperationsMqEndpointFile.ps1` script. |
| 33 | + - You can use the files under `broker-listener/` to deploy this. |
| 34 | +1. Then you can run each of the test scripts `Invoke-Test*.ps1` to run different test scenarios: |
| 35 | + - `Invoke-TestSnapshotToMqttAutostart.ps1` takes snapshots from the demo stream and publishes them to the MQTT broker. |
| 36 | + - `Invoke-TestSnapshotToFsAutostart.ps1` takes snapshots from the demo stream and writes them as files to the file system. |
| 37 | + - `Invoke-TestClipToFsAutostart.ps1` creates clips at regular intervals from the demo stream and writes them as files to the file system. |
| 38 | + - `Invoke-TestStreamToRtspAutostart.ps1` pushes the demo stream to a media server, from where it can be retrieved. |
| 39 | + |
| 40 | + The scripts deploy the endpoint and asset and monitors their activity. Use `Ctrl+C` to end the monitoring, remove the endpoint and asset and terminate the script. |
| 41 | + |
| 42 | +## Installation of prerequisites |
| 43 | + |
| 44 | +To install the prerequisites you can follow the instructions below. |
| 45 | + |
| 46 | +These might not be the preferred installation procedure for your system and IT environment. |
| 47 | + |
| 48 | +Check with your administrator before installing tools. |
| 49 | + |
| 50 | +### Windows |
| 51 | + |
| 52 | +Run these commands from the command line: |
| 53 | + |
| 54 | +`winget install -e --id Microsoft.PowerShell` |
| 55 | +`winget install -e --id Kubernetes.kubectl` |
| 56 | +`winget install -e --id Microsoft.AzureCLI` |
| 57 | +`winget install -e --id Helm.Helm` |
| 58 | +`winget install -e --id EclipseFoundation.Mosquitto` |
| 59 | + |
| 60 | +You might need to add `C:\Program Files\mosquitto` and `helm.exe` to your PATH. |
| 61 | + |
| 62 | +### Ubuntu GNU/Linux |
| 63 | + |
| 64 | +Follow the official documentation to install: |
| 65 | +- [PowerShell](https://learn.microsoft.com/en-us/powershell/scripting/install/install-ubuntu) |
| 66 | +- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli-linux) |
| 67 | +- [Helm](https://helm.sh/docs/intro/install/) |
| 68 | +- kubectl(depends on your system) |
| 69 | + |
| 70 | +You can install the mosquitto clients by running: |
| 71 | +`sudo apt install mosquitto-clients` |
| 72 | + |
| 73 | +## Changes since Azure IoT Operations public preview |
| 74 | + |
| 75 | +- Additional test scripts have been added to demonstrate the capabilities of the Azure IoT Operations media connector. |
| 76 | +- Now using PowerShell scripts instead of Polyglot notebooks. |
| 77 | + |
| 78 | +## Limitations |
| 79 | + |
| 80 | +The Azure IoT Operations media connector has the following limitations: |
| 81 | + |
| 82 | +- No discovery, this will be implemented by the ONVIF connector, currently under development. |
| 83 | +- Limits on the number of concurrent connections and the file system use are not enforced. |
| 84 | +- Performance and footprint are not optimized. |
| 85 | +- The mRPC API is not publicly documented yet and is subject to change. |
| 86 | + |
| 87 | +## Description of package contents: |
| 88 | + |
| 89 | +- **README.md**: This file. |
| 90 | +- **Overview.md**: General information about Azure IoT Operations and the Azure IoT Operations media connector. |
| 91 | +- **media-connector-demo.mermaid and produced .png and .svg**: Diagram of the demo environment. |
| 92 | +- **Broker listener (broker-listener/)**: This folder contains PowerShell scripts and kuberentes resources that show how to deploy an open (non-TLS) listener for MQ. |
| 93 | +- **Media Server (media-server/)**: This folder contains scripts and yaml files that demonstrates how to deploy a media server in a kubernetes cluster. |
| 94 | +- **resources/aep-*.yaml**: Example Asset Endpoint Profiles (AEPs) that can be used to configure the media connector. |
| 95 | +- **resources/asset-*.yaml**: Example assets that can be used to configure the media connector. |
| 96 | +- **Install-ResourceFile.ps1**: This PowerShell script installs a kubernetes resource file for the Azure IoT Operations media connector. |
| 97 | +- **Uninstall-ResourceFile.ps1**: This PowerShell script uninstalls a kubernetes resource file for the Azure IoT Operations media connector. |
| 98 | +- **Invoke-Test*.ps1**: These PowerShell scripts run different test scenarios for the Azure IoT Operations media connector. |
| 99 | +- **Start-InteractiveSession.ps1**: This PowerShell script starts an interactive session in the Azure IoT Operations media connector container. |
| 100 | +- **Start-MqttListener.ps1**: This PowerShell script starts an MQTT listener on the Azure IoT Operations MQTT broker. |
| 101 | +- **Start-FileSystemMonitor.ps1**: This PowerShell script start monitoring for file changes on the Azure IoT Operations media connector container. |
| 102 | +- **Start-RtspStreamViewer.ps1**: This PowerShell script start the default browser to look at streaming RTPS from the default media server. |
0 commit comments