Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os grafos de fluxo de dados de Operações do Azure IoT dão suporte a módulos WASM (WebAssembly) para processamento de dados personalizados na borda. Você pode implantar transformações de dados e lógica de negócios personalizadas como parte de seus pipelines de fluxo de dados.
Importante
Atualmente, os grafos de fluxo de dados suportam apenas pontos de extremidade MQTT, Kafka e OpenTelemetry. Outros tipos de ponto de extremidade, como Data Lake, Microsoft Fabric OneLake, Azure Data Explorer e Armazenamento Local, não são suportados. Para obter mais informações, consulte Problemas conhecidos.
Importante
Atualmente, o único conector que dá suporte a definições de grafo para processamento personalizado é o conector HTTP/REST.
Pré-requisitos
- Implante uma instância de Operações de IoT do Azure em um cluster Kubernetes habilitado para Arc. Para obter mais informações, confira Implantar Operações do Azure IoT.
- Use um registro de contêiner como o ACR (Registro de Contêiner do Azure) para armazenar módulos e grafos WASM.
- Configure um ponto de extremidade de registro para permitir que sua instância de Operações do Azure IoT acesse seu registro de contêineres. Para obter mais informações, consulte Configurar pontos de extremidade do Registro.
- Instale a CLI do OCI Registry As Storage (ORAS) para enviar módulos WASM por push para o registro.
- Desenvolva módulos WASM personalizados seguindo as orientações em Compilação de módulos WASM para fluxos de dados no VS Code ou Desenvolvimento de módulos WebAssembly (WASM) e definições de grafos para fluxos de dados.
Visão geral
Os módulos WASM nos grafos e conectores de fluxo de dados do Azure IoT Operations permitem processar dados na borda com alto desempenho e segurança. O WASM é executado em um ambiente em área restrita e dá suporte a Rust e Python.
Configurar o registro de contêiner
As Operações do Azure IoT precisam de um registro de contêiner para efetuar pull de módulos WASM e definições de grafo. Você pode usar o Registro de Contêiner do Azure (ACR) ou outro registro compatível com OCI.
Para criar e configurar um Registro de Contêiner do Azure, consulte Implantar o Registro de Contêiner do Azure.
Instalar a CLI do ORAS
Use a CLI do ORAS para enviar por push módulos WASM e definições de grafo para o registro de contêiner. Para obter instruções de instalação, consulte Instalar o ORAS.
Efetuar pull de módulos de exemplo do registro público
Use módulos de exemplo predefinidos:
# Pull sample modules and graphs
oras pull ghcr.io/azure-samples/explore-iot-operations/graph-simple:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/graph-complex:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/temperature:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/window:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/snapshot:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/format:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/humidity:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/collection:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/enrichment:1.0.0
oras pull ghcr.io/azure-samples/explore-iot-operations/filter:1.0.0
Enviar módulos por push para o registro
Ao obter os módulos e grafos de exemplo, envie-os por push para o registro de contêiner. Substitua <YOUR_ACR_NAME> pelo nome do Registro de Contêiner do Azure. Para garantir que os gráficos e módulos estejam visíveis na interface da experiência de operações na Web, adicione os --config e --artifact-type sinalizadores, conforme mostrado no exemplo a seguir.
# Log in to your ACR
az acr login --name <YOUR_ACR_NAME>
# Push modules to your registry
oras push <YOUR_ACR_NAME>.azurecr.io/graph-simple:1.0.0 --config /dev/null:application/vnd.microsoft.aio.graph.v1+yaml graph-simple.yaml:application/yaml --disable-path-validation
oras push <YOUR_ACR_NAME>.azurecr.io/graph-complex:1.0.0 --config /dev/null:application/vnd.microsoft.aio.graph.v1+yaml graph-complex.yaml:application/yaml --disable-path-validation
oras push <YOUR_ACR_NAME>.azurecr.io/temperature:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm temperature-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/window:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm window-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/snapshot:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm snapshot-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/format:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm format-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/humidity:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm humidity-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/collection:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm collection-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/enrichment:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm enrichment-1.0.0.wasm:application/wasm
oras push <YOUR_ACR_NAME>.azurecr.io/filter:1.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm filter-1.0.0.wasm:application/wasm
Dica
Você também pode implantar seus próprios módulos e criar gráficos personalizados, consulte Configuração de gráficos de fluxo de dados personalizados.
Atualizar um módulo em um grafo em execução
Você pode atualizar um módulo WASM em um grafo em execução sem parar o grafo. Isso é útil quando você deseja atualizar a lógica de um operador sem interromper o fluxo de dados. Por exemplo, para atualizar o módulo de conversão de temperatura de versão 1.0.0 para 2.0.0, carregue a nova versão da seguinte maneira:
oras push <YOUR_ACR_NAME>.azurecr.io/temperature:2.0.0 --artifact-type application/vnd.module.wasm.content.layer.v1+wasm temperature-2.0.0.wasm:application/wasm
O grafo de fluxo de dados seleciona automaticamente a nova versão do módulo sem nenhuma configuração adicional. O grafo continua sendo executado sem interrupção e a nova versão do módulo é usada para processamento de dados subsequente.
Desenvolver módulos WASM personalizados
Para criar uma lógica de processamento de dados personalizada para seus grafos de fluxo de dados, desenvolva módulos WebAssembly no Rust ou Python. Os módulos personalizados permitem implementar lógica de negócios especializada, transformações de dados e análises que não estão disponíveis nos operadores internos.
Para diretrizes abrangentes de desenvolvimento, incluindo:
- Configurar o seu ambiente de desenvolvimento
- Criar operadores em Rust e Python
- Noções básicas sobre o modelo de dados e as interfaces
- Compilar e testar seus módulos
Consulte Desenvolver módulos WebAssembly para grafos de fluxo de dados.
Para obter informações detalhadas sobre como criar e configurar as definições de grafo YAML que definem seus fluxos de trabalho de processamento de dados, consulte Configurar definições de grafo WebAssembly.