Importante
En esta página se incluyen instrucciones para administrar componentes de Azure IoT Operations mediante manifiestos de implementación de Kubernetes, que se encuentra en versión preliminar. Esta característica se proporciona con varias limitaciones y no debe usarse para cargas de trabajo de producción.
Consulte los Términos de uso complementarios de las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en versión beta, versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general.
Para enviar datos a Azure Data Explorer en Operaciones de IoT de Azure, puede configurar un punto de conexión de flujo de datos. Esta configuración permite especificar el punto de conexión de destino, el método de autenticación, la tabla y otros valores.
Requisitos previos
Cree una base de datos Azure Data Explorer
En Azure Portal, cree una base de datos en el clúster completo de Azure Data Explorer.
Crear una tabla en la base de datos para los datos. Puede usar Azure Portal y crear columnas manualmente, o puede usar KQL en la pestaña de consulta. Por ejemplo, para crear una tabla para datos de termostato de ejemplo, ejecute el siguiente comando:
.create table thermostat (
externalAssetId: string,
assetName: string,
CurrentTemperature: real,
Pressure: real,
MqttTopic: string,
Timestamp: datetime
)
Habilite la ingesta con streaming en la tabla y la base de datos. En la pestaña de consulta, ejecute el comando siguiente, sustituyendo <DATABASE_NAME>
por el nombre de la base de datos:
.alter database ['<DATABASE_NAME>'] policy streamingingestion enable
Como alternativa, habilite la ingesta de streaming en todo el clúster. Ver Habilitar la ingesta de streaming en un clúster existente.
Asignación de permisos a la identidad administrada
Para configurar un punto de conexión de flujo de datos para Azure Data Explorer, se recomienda usar una identidad administrada asignada por el usuario o asignada por el sistema. Este enfoque es seguro y elimina la necesidad de administrar las credenciales manualmente.
Una vez creada la base de datos de Azure Data Explorer, debe asignar un rol a la identidad administrada de Operaciones de IoT de Azure que concede permiso para escribir en la base de datos.
Si usa la identidad administrada asignada por el sistema, en Azure Portal, vaya a la instancia de Azure IoT Operations y seleccione Información general. Copie el nombre de la extensión que aparece después de la extensión de Azure IoT Operations Arc. Por ejemplo, azure-iot-operations-xxxx7. La identidad administrada asignada por el sistema se puede encontrar con el mismo nombre de la extensión de Arc de Operaciones de IoT de Azure.
- En la base de datos de Azure Data Explorer (no en el clúster), en Información general , seleccione Permisos>Agregar y, a continuación, seleccione Ingestor como rol. Esto proporciona a la identidad administrada los permisos necesarios para escribir en la base de datos de Azure Data Explorer. Para más información, consulte Control de acceso basado en rol.
- Busque el nombre de la identidad administrada asignada por el usuario configurada para conexiones en la nube o la identidad administrada asignada por el sistema. Por ejemplo, azure-iot-operations-xxxx7.
- A continuación, seleccione Seleccionar.
Creación de un punto de conexión de flujo de datos para Azure Data Explorer
En la interfaz de operaciones, seleccione la pestaña Puntos de conexión de flujo de datos.
En Crear nuevo punto de conexión de flujo de datos, seleccione Azure Data Explorer>Nuevo.
Escriba la siguiente configuración para el punto de conexión:
Configuración |
Descripción |
Nombre |
Nombre del punto de conexión del flujo de datos. |
Anfitrión |
El nombre de host del punto de conexión de Azure Data Explorer con el formato <cluster>.<region>.kusto.windows.net . |
Método de autenticación |
El método usado para la autenticación. Elija Identidad administrada asignada por el sistema o Identidad administrada asignada por el usuario. |
Id. de cliente |
Id. de cliente de la identidad administrada asignada por el usuario. Obligatorio si se usa la identidad administrada asignada por el usuario. |
Id. de inquilino |
El id. de inquilino de la identidad administrada asignada por el usuario. Obligatorio si se usa la identidad administrada asignada por el usuario. |
Seleccione Aplicar para aprovisionar el punto de conexión.
Crear o reemplazar
Use el comando az iot ops dataflow endpoint create adls para crear o reemplazar un punto de conexión de flujo de datos de Azure Data Explorer.
az iot ops dataflow endpoint create adx --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <ClusterName> --database <DatabaseName>
El --host
parámetro es el nombre de host del clúster de Azure Data Explorer con el formato <cluster>.<region>.kusto.windows.net
. El --database
parámetro es el nombre de la base de datos de Azure Data Explorer.
Este es un comando de ejemplo para crear o reemplazar un punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint:
az iot ops dataflow endpoint create adx --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
Crear o cambiar
Use el comando az iot ops dataflow endpoint apply para crear o cambiar un punto de conexión de flujo de datos de Azure Data Explorer.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
El --config-file
parámetro es la ruta de acceso y el nombre de archivo de un archivo de configuración JSON que contiene las propiedades del recurso.
En este ejemplo, supongamos que un archivo de configuración denominado adx-endpoint.json
con el siguiente contenido almacenado en el directorio principal del usuario:
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
Este es un comando de ejemplo para crear un nuevo punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
Cree un archivo .bicep
de Bicep con el siguiente contenido.
param aioInstanceName string = '<AIO_INSTANCE_NAME>'
param customLocationName string = '<CUSTOM_LOCATION_NAME>'
param endpointName string = '<ENDPOINT_NAME>'
param hostName string = 'https://<cluster>.<region>.kusto.windows.net'
param databaseName string = '<DATABASE_NAME>'
resource aioInstance 'Microsoft.IoTOperations/instances@2024-11-01' existing = {
name: aioInstanceName
}
resource customLocation 'Microsoft.ExtendedLocation/customLocations@2021-08-31-preview' existing = {
name: customLocationName
}
resource adxEndpoint 'Microsoft.IoTOperations/instances/dataflowEndpoints@2024-11-01' = {
parent: aioInstance
name: endpointName
extendedLocation: {
name: customLocation.id
type: 'CustomLocation'
}
properties: {
endpointType: 'DataExplorer'
dataExplorerSettings: {
host: hostName
database: databaseName
authentication: {
// See available authentication methods section for method types
// method: <METHOD_TYPE>
}
}
}
}
A continuación, realice la implementación mediante la CLI de Azure.
az deployment group create --resource-group <RESOURCE_GROUP> --template-file <FILE>.bicep
Cree un archivo .yaml
de manifiesto de Kubernetes con el siguiente contenido.
apiVersion: connectivity.iotoperations.azure.com/v1
kind: DataflowEndpoint
metadata:
name: <ENDPOINT_NAME>
namespace: azure-iot-operations
spec:
endpointType: DataExplorer
dataExplorerSettings:
host: 'https://<cluster>.<region>.kusto.windows.net'
database: <DATABASE_NAME>
authentication:
# See available authentication methods section for method types
# method: <METHOD_TYPE>
A continuación, aplique el archivo de manifiesto al clúster de Kubernetes.
kubectl apply -f <FILE>.yaml
Métodos de autenticación disponibles
Los siguientes métodos de autenticación están disponibles para los puntos de conexión de Azure Data Explorer.
Identidad administrada asignada por el sistema
Antes de configurar el punto de conexión de flujo de datos, asigne un rol a la identidad administrada de Operaciones de IoT de Azure que conceda permiso para escribir en la base de datos de Azure Data Explorer:
- En Azure Portal, vaya a la instancia de Azure IoT Operations y seleccione Información general.
- Copie el nombre de la extensión que aparece después de la extensión de Azure IoT Operations Arc. Por ejemplo, azure-iot-operations-xxxx7.
- Vaya a la base de datos de Azure Data Explorer (no clúster), en Información general , seleccione Permisos>Agregar y, a continuación, seleccione un rol adecuado.
- Busque el nombre de la identidad administrada asignada por el sistema. Por ejemplo, azure-iot-operations-xxxx7.
- Seleccione Seleccionar.
Luego, configure el punto de conexión de flujo de datos con los valores de la identidad administrada asignada por el sistema.
En la página de configuración del punto de conexión del flujo de datos de la experiencia de operaciones, seleccione la pestaña Básico y, después, elija Método de autenticación>.
Crear o reemplazar
Use el comando az iot ops dataflow endpoint create adls para crear o reemplazar un punto de conexión de flujo de datos de Azure Data Explorer.
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <ClusterName> --database <DatabaseName>
El --host
parámetro es el nombre de host del clúster de Azure Data Explorer con el formato <cluster>.<region>.kusto.windows.net
. El --database
parámetro es el nombre de la base de datos de Azure Data Explorer.
Este es un comando de ejemplo para crear o reemplazar un punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint:
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
Crear o cambiar
Use el comando az iot ops dataflow endpoint apply para crear o cambiar un punto de conexión de flujo de datos de Azure Data Explorer.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
El --config-file
parámetro es la ruta de acceso y el nombre de archivo de un archivo de configuración JSON que contiene las propiedades del recurso.
En este ejemplo, supongamos que un archivo de configuración denominado adx-endpoint.json
con el siguiente contenido almacenado en el directorio principal del usuario:
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
Este es un comando de ejemplo para crear un nuevo punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {}
}
}
dataExplorerSettings:
authentication:
method: SystemAssignedManagedIdentity
systemAssignedManagedIdentitySettings: {}
Si necesita invalidar la audiencia de identidad administrada asignada por el sistema, puede especificar la configuración audience
.
En la mayoría de los casos, no es necesario especificar otras opciones de configuración. Esta configuración crea una identidad administrada con la audiencia predeterminada https://api.kusto.windows.net
.
Crear o reemplazar
Usa el comando az iot ops dataflow endpoint create adls para crear o reemplazar un punto de conexión de flujo de datos de Azure Data Explorer con identidad administrada asignada por el sistema.
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --audience https://<cluster>.<region>.kusto.windows.net --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <cluster>.<region>.kusto.windows.net --database <DatabaseName>
El --host
parámetro es el nombre de host del clúster de Azure Data Explorer con el formato <cluster>.<region>.kusto.windows.net
. El --database
parámetro es el nombre de la base de datos de Azure Data Explorer. El parámetro --audience
es la dirección URL del público de la identidad administrada para autenticarse en Azure Data Explorer.
Este es un comando de ejemplo para crear o reemplazar un punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint
:
az iot ops dataflow endpoint create adx --auth-type SystemAssignedManagedIdentity --audience https://myadxcluster.eastus.kusto.windows.net --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
Crear o cambiar
Use el comando az iot ops dataflow endpoint apply para crear o cambiar un punto de conexión de flujo de datos de Azure Data Explorer con la identidad administrada asignada por el sistema.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
El --config-file
parámetro es la ruta de acceso y el nombre de archivo de un archivo de configuración JSON que contiene las propiedades del recurso.
En este ejemplo, supongamos que un archivo de configuración denominado adx-endpoint.json
con el siguiente contenido almacenado en el directorio principal del usuario:
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {
"audience": "https://<cluster>.<region>.kusto.windows.net"
}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
Este es un comando de ejemplo para crear un nuevo punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint
:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
authentication: {
method: 'SystemAssignedManagedIdentity'
systemAssignedManagedIdentitySettings: {
audience: 'https://<AUDIENCE_URL>'
}
}
}
dataExplorerSettings:
authentication:
method: SystemAssignedManagedIdentity
systemAssignedManagedIdentitySettings:
audience: https://<AUDIENCE_URL>
Identidad administrada asignada por el usuario
Para usar la identidad administrada asignada por el usuario para la autenticación, primero debe implementar Operaciones de IoT de Azure con la configuración segura habilitada. A continuación, debe configurar una identidad administrada asignada por el usuario para las conexiones en la nube. Para más información, consulte Habilitación de la configuración segura en la implementación de operaciones de Azure IoT.
Antes de configurar el punto de conexión de flujo de datos, asigne un rol a la identidad administrada asignada por el usuario que conceda permiso para escribir en la base de datos de Azure Data Explorer:
- En Azure Portal, vaya a la base de datos de Azure Data Explorer (no clúster), en Información general , seleccione Permisos>Agregar y, a continuación, seleccione un rol adecuado.
- Busque el nombre de la identidad administrada asignada por el usuario.
- Seleccione Seleccionar.
Luego, configure el punto de conexión de flujo de datos con los valores de la identidad administrada asignada por el usuario.
En la página de configuración del punto de conexión del flujo de datos de la experiencia de operaciones, seleccione la pestaña Básico y, a continuación, elija Método de autenticación>Identidad administrada asignada por el usuario.
Escriba el identificador de cliente de la identidad administrada asignada por el usuario y el identificador de inquilino en los campos adecuados.
Crear o reemplazar
Use el comando az iot ops dataflow endpoint create adls para crear o reemplazar un extremo de flujo de datos de Azure Data Explorer usando la identidad administrada asignada por el usuario.
az iot ops dataflow endpoint create adx --auth-type UserAssignedManagedIdentity --client-id <ClientId> --tenant-id <TenantId> --scope <Scope> --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --host <cluster>.<region>.kusto.windows.net --database <DatabaseName>
El --host
parámetro es el nombre de host del clúster de Azure Data Explorer con el formato <cluster>.<region>.kusto.windows.net
. El --database
parámetro es el nombre de la base de datos de Azure Data Explorer. El --auth-type
parámetro especifica el método de autenticación, que es UserAssignedManagedIdentity
en este caso. Los parámetros --client-id
, --tenant-id
y --scope
especifican el ID de cliente de la identidad administrada asignada por el usuario, el ID de inquilino y el alcance, respectivamente.
Este es un comando de ejemplo para crear o reemplazar un punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint
:
az iot ops dataflow endpoint create adx --auth-type UserAssignedManagedIdentity --client-id ClientId --tenant-id TenantId --scope https://api.kusto.windows.net/.default --resource-group myResourceGroup --instance myAioInstance --name adx-endpoint --host myadxcluster.eastus.kusto.windows.net --database mydatabase
Crear o cambiar
Use el comando az iot ops dataflow endpoint apply para crear o cambiar un punto de conexión de flujo de datos de Azure Data Explorer con la identidad administrada asignada por el usuario.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
El --config-file
parámetro es la ruta de acceso y el nombre de archivo de un archivo de configuración JSON que contiene las propiedades del recurso.
En este ejemplo, supongamos que un archivo de configuración denominado adx-endpoint.json
con el siguiente contenido almacenado en el directorio principal del usuario:
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "UserAssignedManagedIdentity",
"userAssignedManagedIdentitySettings": {
"clientId": "<ClientId>",
"scope": "<Scope>",
"tenantId": "<TenantId>"
}
},
"batching": {
"latencySeconds": 60,
"maxMessages": 100000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
Este es un comando de ejemplo para crear un nuevo punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint
:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
authentication: {
method: 'UserAssignedManagedIdentity'
userAssignedManagedIdentitySettings: {
clientId: '<ID>'
tenantId: '<ID>'
// Optional, defaults to 'https://api.kusto.windows.net/.default'
// scope: 'https://<SCOPE_URL>'
}
}
}
dataExplorerSettings:
authentication:
method: UserAssignedManagedIdentity
userAssignedManagedIdentitySettings:
clientId: <ID>
tenantId: <ID>
# Optional, defaults to 'https://api.kusto.windows.net/.default'
# scope: https://<SCOPE_URL>
Aquí, el ámbito es opcional y el valor predeterminado es https://api.kusto.windows.net/.default
. Si necesita invalidar el ámbito predeterminado, especifique la configuración scope
mediante Bicep o Kubernetes.
Configuración avanzada
Puede establecer la configuración avanzada para el punto de conexión de Azure Data Explorer, como la latencia de procesamiento por lotes y el recuento de mensajes.
Use la configuración batching
para configurar el número máximo de mensajes y la latencia máxima antes de que los mensajes se envíen al destino. Esta configuración es útil cuando desea optimizar el ancho de banda de red y reducir el número de solicitudes al destino.
Campo |
Descripción |
Obligatorio |
latencySeconds |
El número máximo de segundos que se deben esperar antes de enviar los mensajes al destino. El valor predeterminado es 60 segundos. |
No |
maxMessages |
El número máximo de mensajes que se van a enviar al destino. El valor predeterminado es 100 000 mensajes. |
No |
Por ejemplo, para configurar el número máximo de mensajes en 1000 y la latencia máxima en 100 segundos, use la siguiente configuración:
En la experiencia de operaciones, seleccione la pestaña Opciones avanzadas para el punto de conexión del flujo de datos.
Use el comando az iot ops dataflow endpoint apply para crear o cambiar un punto de conexión de flujo de datos de Azure Data Explorer con configuración avanzada.
az iot ops dataflow endpoint apply --resource-group <ResourceGroupName> --instance <AioInstanceName> --name <EndpointName> --config-file <ConfigFilePathAndName>
El --config-file
parámetro es la ruta de acceso y el nombre de archivo de un archivo de configuración JSON que contiene las propiedades del recurso.
En este ejemplo, supongamos que un archivo de configuración denominado adx-endpoint.json
con el siguiente contenido almacenado en el directorio principal del usuario:
{
"endpointType": "DataExplorer",
"dataExplorerSettings": {
"authentication": {
"method": "SystemAssignedManagedIdentity",
"systemAssignedManagedIdentitySettings": {}
},
"batching": {
"latencySeconds": 100,
"maxMessages": 1000
},
"host": "https://<cluster>.<region>.kusto.windows.net",
"database": "<DatabaseName>"
}
}
Este es un comando de ejemplo para crear un nuevo punto de conexión de flujo de datos de Azure Data Explorer denominado adx-endpoint:
az iot ops dataflow endpoint apply --resource-group myResourceGroupName --instance myAioInstanceName --name adx-endpoint --config-file ~/adx-endpoint.json
dataExplorerSettings: {
batching: {
latencySeconds: 100
maxMessages: 1000
}
}
dataExplorerSettings:
batching:
latencySeconds: 100
maxMessages: 1000
Pasos siguientes
Para más información sobre los flujos de datos, consulte Creación de un flujo de datos.