|
| 1 | +--- |
| 2 | +title: Akri connectors |
| 3 | +description: Learn about Akri connectors and the options to create custom connectors. |
| 4 | +author: dominicbetts |
| 5 | +ms.author: dobett |
| 6 | +ms.topic: concept-article |
| 7 | +ms.date: 01/12/2026 |
| 8 | + |
| 9 | +#CustomerIntent: As a developer, I want to understand how to use Akri connectors and create custom connectors for my edge applications. |
| 10 | + |
| 11 | +--- |
| 12 | + |
| 13 | +# Akri connectors |
| 14 | + |
| 15 | +Akri connectors are custom software components that enable Azure IoT Operations to discover, connect to, and communicate with edge devices and assets. They act as protocol adapters that translate between device-specific communication protocols and the standardized Azure IoT Operations data model. |
| 16 | + |
| 17 | +For more information about Akri services and how they relate to Azure IoT Operations, see [What are Akri services](../discover-manage-assets/overview-akri.md). |
| 18 | + |
| 19 | +### Key concepts |
| 20 | + |
| 21 | +Understanding these core concepts is essential for developing custom Akri connectors: |
| 22 | + |
| 23 | +- **Akri connector**: A custom software component that acts as a protocol adapter, enabling Azure IoT Operations to discover, connect to, and communicate with physical devices. The connector translates between device-specific protocols and the standardized Azure IoT Operations data model. |
| 24 | +- **Connector metadata**: A JSON file that describes the connector's configuration options, capabilities, and UI schemas. The metadata defines how the connector appears and behaves when you: |
| 25 | + - Create connector template instances in the Azure portal. |
| 26 | + - Configure devices and assets in the operations experience UI. |
| 27 | +- **Connector template**: A reusable configuration template that defines how a connector type should be deployed and configured. The connector template serves as a blueprint that operators can use to create multiple device connections with consistent settings. |
| 28 | +- **Connector instance**: A deployed instance of a connector template that manages connections to specific devices, running as a containerized application within the Kubernetes cluster to handle real-time device communication. |
| 29 | +- **Discovery protocol**: The mechanism by which connectors automatically find and identify compatible devices on the network. The connector for ONVIF can discover ONVIF assets and media devices available at the endpoint. The OPC UA connector discovers assets at the endpoint and creates assets in the Azure Device Registry. |
| 30 | +- **Devices and assets**: Logical entities that connectors interact with. Devices and device inbound endpoints define where connectors receive data from. Assets define what data to collect. Some connectors, such as the connector for OPC UA, enable a two-way flow of data, receiving messages from the endpoint and sending commands to the endpoint. |
| 31 | +- **Datasets and data points**: Structured representations of telemetry data collected from assets, where datasets group related data points and data points define individual telemetry values and configuration parameters. The dataset defines where the received data is sent. For example, a dataset can specify an MQTT topic to publish to. The sample polling HTTP connector in the Azure IoT Operations .NET SDK shows how to use datasets. |
| 32 | +- **Event groups and events**: Structured representations of events and status information sent by assets, where event groups group related events and events define individual values and configuration parameters. The event group defines where the received data is sent. For example, an event group can specify an MQTT topic to publish to. The sample event-driven TCP connector in the Azure IoT Operations .NET SDK shows how to use event groups. |
| 33 | +- **Message schemas**: Definitions that describe the structure and format of data messages exchanged between connectors and other Azure IoT Operations such as the MQTT broker. A connector can [register a message schema](../connect-to-cloud/concept-schema-registry.md) for each dataset and event group, enabling any receiving component to understand the format of the messages by fetching the corresponding schema. For example, the connector for OPC UA automatically registers schemas for incoming messages. |
| 34 | + |
| 35 | +## Connector development workflow |
| 36 | + |
| 37 | +The development and deployment of Akri connectors follows a structured workflow involving three key roles: |
| 38 | + |
| 39 | +### Developer role |
| 40 | + |
| 41 | +**Objective**: Create and package custom connectors |
| 42 | + |
| 43 | +- **Build the connector**: Use the Azure IoT Operations SDK, templates, or VS Code extension to develop connector logic that implements: |
| 44 | + - Connectivity to a physical device. |
| 45 | + - Authentication to a physical device. |
| 46 | + - Data exchange with the physical device. |
| 47 | + - Optionally, device and asset discovery. |
| 48 | + - Delivery of the data to a destination in the cluster. |
| 49 | +- **Create connector metadata**: Define the `connector-metadata.json` file that specifies: |
| 50 | + - Configuration options for connector template instances in the Azure portal. |
| 51 | + - Asset configuration schemas for the operations experience portal. |
| 52 | + - Dataset, data point, event group, and event definitions. |
| 53 | + - UI rendering instructions for configuration forms. |
| 54 | +- **Package for deployment**: Prepare the connector and metadata as Open Container Initiative (OCI) artifacts. |
| 55 | + |
| 56 | +### Administrator role |
| 57 | + |
| 58 | +**Objective**: Deploy and manage connector types |
| 59 | + |
| 60 | +- **Upload to container registry**: Push the connector and `connector-metadata.json` to an Azure Container Registry or compatible registry. |
| 61 | +- **Register connector type**: The Azure portal makes the connector type available for creating connector template instances. |
| 62 | +- **Manage connector templates**: Create and configure connector template instances that operators can use for device connections. |
| 63 | + |
| 64 | +### Operator role |
| 65 | + |
| 66 | +**Objective**: Configure devices and assets by using available connectors |
| 67 | + |
| 68 | +- **Create devices**: Use connector template instances available in the operations experience to define new devices. |
| 69 | +- **Configure inbound endpoints**: Add inbound templates to devices, selecting from available connector template instances. |
| 70 | +- **Define assets**: Use the configuration options from the `connector-metadata.json` to: |
| 71 | + - Select the inbound endpoint for the asset to use. |
| 72 | + - Configure dataset and data point options. |
| 73 | + - Configure event group definitions and event options. |
| 74 | +- **Deploy and monitor**: The Akri services automatically download connectors from the registry and deploy instances to establish connections with physical devices. |
| 75 | + |
| 76 | +## Deployment flow |
| 77 | + |
| 78 | +When an asset is created using a connector: |
| 79 | + |
| 80 | +1. **Asset configuration**: The operator defines the asset using configuration options specified in the connector metadata, including datasets, data points, event groups, and the inbound endpoint to use. The configuration determines how the connector interacts with the physical device. |
| 81 | +1. **Connector deployment**: Akri services download the connector container image from the registry and create the necessary Kubernetes resources to run the connector instance in the cluster. |
| 82 | +1. **Device discovery (optional)**: The connector uses its discovery protocol to locate and identify compatible physical devices on the network, automatically detecting available endpoints and their capabilities according to the connector's implementation. |
| 83 | +1. **Connection establishment**: The connector establishes communication with the target physical device by using the appropriate protocol, authentication method, and connection parameters specified in the configuration. |
| 84 | +1. **Data flow**: The connector receives data from the physical device and publishes it to a destination such as an MQTT topic. The connector can also handle commands or configuration changes and route them to the physical device. |
| 85 | + |
| 86 | +## Integration with Azure IoT Operations |
| 87 | + |
| 88 | +Akri connectors integrate seamlessly with the broader Azure IoT Operations environment: |
| 89 | + |
| 90 | +- **Operations experience**: Provides the user interface for configuring devices and assets. |
| 91 | +- **Azure Device Registry**: Maintains information about discovered and configured devices and assets. |
| 92 | +- **MQTT broker**: A common destination for messages from a connector. |
| 93 | +- **Message schemas**: Define the structure of data exchanged between connectors and the platform. |
| 94 | + |
| 95 | +## Related content |
| 96 | + |
| 97 | +- [What are Akri services?](../discover-manage-assets/overview-akri.md) |
| 98 | +- [Build and deploy Akri connectors](howto-develop-akri-connectors.md) |
| 99 | +- [Build Akri connectors with the VS Code extension](howto-build-akri-connectors-vscode.md) |
0 commit comments