Partilhar via


Problemas conhecidos: Operações do Azure IoT

Este artigo lista os problemas conhecidos das Operações do Azure IoT.

Problemas de implantação e desinstalação

  • Se preferir que não sejam feitas atualizações no cluster sem dar consentimento explícito, desative as atualizações do Arc quando habilitar o cluster. Isso se deve ao fato de que algumas extensões do sistema são atualizadas automaticamente pelo agente Arc. Para desativar as atualizações, inclua o sinalizador --disable-auto-upgrade como parte do az connectedk8s connect comando.

  • Se sua implantação falhar com o "code":"LinkedAuthorizationFailed" erro, isso significa que você não tem permissões Microsoft.Authorization/roleAssignments/write no grupo de recursos que contém seu cluster.

  • Editar diretamente os recursos personalizados SecretProviderClass e SecretSync em seu cluster Kubernetes pode quebrar o fluxo de segredos nas Operações IoT do Azure. Para quaisquer operações relacionadas a segredos, use a interface do usuário da experiência de operações.

  • Durante e após a implantação das Operações IoT do Azure, você poderá ver avisos sobre Unable to retrieve some image pull secrets (regcred) nos logs e eventos do Kubernetes. Esses avisos são esperados e não afetam a implantação e o uso das Operações do Azure IoT.

  • Se sua implantação falhar com a mensagem Error occurred while creating custom resources needed by system extensions, você encontrou uma falha esporádica conhecida que será corrigida em uma versão futura. Como solução alternativa, use o comando az iot ops delete com o sinalizador para excluir o --include-deps Azure IoT Operations do cluster. Quando as Operações do Azure IoT e suas dependências forem excluídas do cluster, tente novamente a implantação.

  • Se você implantar as Operações IoT do Azure no GitHub Codespaces, desligar e reiniciar o Codespace causará um This codespace is currently running in recovery mode due to a configuration error. problema. Atualmente, não há solução alternativa para o problema. Se você precisar de um cluster que ofereça suporte ao desligamento e à reinicialização, escolha uma das opções em Preparar seu cluster Kubernetes habilitado para Azure Arc.

Corretor MQTT

  • Os recursos do agente MQTT criados em seu cluster usando o Kubernetes não são visíveis no portal do Azure. Isso é esperado porque o gerenciamento de componentes do Azure IoT Operations usando o Kubernetes está em visualização e a sincronização de recursos da borda para a nuvem não é suportada no momento.

  • Não é possível atualizar o recurso Broker após a implantação inicial. Não é possível fazer alterações de configuração na cardinalidade, no perfil de memória ou no buffer de disco.

    Como solução alternativa, ao implantar o Azure IoT Operations com o comando az iot ops init , você pode incluir o --broker-config-file parâmetro com um arquivo de configuração JSON para o broker MQTT. Para obter mais informações, consulte Configuração avançada do broker MQTT e Configurar as principais configurações do broker MQTT.

  • Se um Broker tiver apenas uma réplica de back-end (backendChain.redundancyFactor está definido como 1), a atualização das Operações do Azure IoT poderá falhar. Atualize as Operações IoT do Azure somente se o Broker tiver mais de uma réplica de back-end.

  • Embora o diagnóstico do broker MQTT produza telemetria em seu próprio tópico, você ainda pode receber mensagens do autoteste quando se inscrever no # tópico.

  • A implantação pode falhar se os valores de cardinalidade e perfil de memória estiverem definidos como muito grandes para o cluster. Para resolver esse problema, defina a contagem de réplicas como 1 e use um perfil de memória menor, como low.

  • Não publique nem assine tópicos de investigação de diagnóstico que comecem com azedge/dmqtt/selftest. A publicação ou subscrição destes tópicos pode afetar as verificações de teste ou autoteste, resultando em resultados inválidos. Resultados inválidos podem ser listados em logs, métricas ou painéis de teste de diagnóstico. Por exemplo, você pode ver o problema Falha na verificação de caminho para o evento de teste com o tipo de operação 'Publicar' nos logs de teste de diagnóstico.

Gerenciamento de Rede em Camadas do Azure IoT (visualização)

  • Se o serviço de Gerenciamento de Rede em Camadas não obtiver um endereço IP durante a execução do K3S no host Ubuntu, reinstale o K3S sem o controlador de entrada traefik usando a --disable=traefik opção.

    curl -sfL https://get.k3s.io | sh -s - --disable=traefik --write-kubeconfig-mode 644
    

    Para obter mais informações, consulte Rede | K3s.

  • Se as consultas DNS não resolverem para o endereço IP esperado ao usar o serviço CoreDNS em execução no nível de rede filho, atualize para o Ubuntu 22.04 e reinstale o K3S.

Conector para OPC UA

  • As definições de ativos do Registro de Dispositivo do Azure permitem que você use números na seção de atributos, enquanto o supervisor do OPC espera apenas cadeias de caracteres.

  • Quando você adiciona um novo ativo com um novo perfil de ponto de extremidade de ativo ao broker OPC UA e aciona uma reconfiguração, a opc.tcp implantação dos pods muda para acomodar as novas montagens secretas para nome de usuário e senha. Se a nova montagem falhar por algum motivo, o pod não será reiniciado e, portanto, o fluxo antigo para os ativos configurados corretamente também será interrompido.

  • O nome da entidade e o URI do aplicativo devem corresponder exatamente ao certificado fornecido. Como não há validação cruzada, quaisquer erros podem fazer com que os servidores OPC UA rejeitem o certificado do aplicativo.

  • Fornecer um novo certificado de instância de aplicativo OPC UA inválido após uma instalação bem-sucedida do AIO pode levar a erros de conexão. Para resolver o problema, exclua suas instâncias do Azure IoT Operations e reinicie a instalação.

Simulador PLC OPC

Se você criar um ponto de extremidade de ativo para o simulador de PLC OPC, mas o simulador de PLC OPC não estiver enviando dados para o broker MQTT, execute o seguinte comando para definir autoAcceptUntrustedServerCertificates=true o ponto de extremidade do ativo:

ENDPOINT_NAME=<name-of-you-endpoint-here>
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
-n azure-iot-operations \
--type=merge \
-p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'

Atenção

Não use essa configuração em ambientes de produção ou pré-produção. Expor seu cluster à Internet sem autenticação adequada pode levar a acesso não autorizado e até mesmo ataques DDOS.

Você pode corrigir todos os seus pontos de extremidade de ativos com o seguinte comando:

ENDPOINTS=$(kubectl get AssetEndpointProfile -n azure-iot-operations --no-headers -o custom-columns=":metadata.name")
for ENDPOINT_NAME in `echo "$ENDPOINTS"`; do \
kubectl patch AssetEndpointProfile $ENDPOINT_NAME \
   -n azure-iot-operations \
   --type=merge \
   -p '{"spec":{"additionalConfiguration":"{\"applicationName\":\"'"$ENDPOINT_NAME"'\",\"security\":{\"autoAcceptUntrustedServerCertificates\":true}}"}}'; \
done

Se o simulador de PLC OPC não estiver enviando dados para o broker MQTT depois de criar um novo ativo, reinicie o pod do simulador OPC PLC. O nome do pod se parece com aio-opc-opc.tcp-1-f95d76c54-w9v9c. Para reiniciar o pod, use a k9s ferramenta para matar o pod ou execute o seguinte comando:

kubectl delete pod aio-opc-opc.tcp-1-f95d76c54-w9v9c -n azure-iot-operations

Fluxos de Dados

  • Os recursos personalizados de fluxo de dados criados em seu cluster não são visíveis na interface do usuário da experiência de operações. Isso é esperado porque o gerenciamento de componentes do Azure IoT Operations usando o Kubernetes está em visualização e a sincronização de recursos da borda para a nuvem não é suportada no momento.

  • A autenticação X.509 para pontos de extremidade Kafka personalizados ainda não é suportada.

  • A desserialização e validação de mensagens usando um esquema ainda não é suportada. A especificação de um esquema na configuração de origem permite apenas que o portal de experiência de operações exiba a lista de pontos de dados, mas os pontos de dados não são validados em relação ao esquema.

  • A criação de um segredo X.509 no portal de experiência de operações resulta em um segredo com dados codificados incorretamente. Para contornar esse problema, crie os segredos de várias linhas por meio do Cofre da Chave do Azure e selecione-o na lista de segredos no portal de experiência de operações.

  • Ao conectar várias instâncias de Operações IoT ao mesmo namespace MQTT da Grade de Eventos, podem ocorrer falhas de conexão devido a conflitos de ID do cliente. As IDs de cliente são atualmente derivadas de nomes de recursos de fluxo de dados e, ao usar padrões de Infraestrutura como Código (IaC) para implantação, as IDs de cliente geradas podem ser idênticas. Como solução temporária, adicione aleatoriedade aos nomes de fluxo de dados em seus modelos de implantação.

  • Quando a conexão de rede é interrompida, os fluxos de dados podem encontrar erros ao enviar mensagens devido a um ID de produtor incompatível. Se você tiver esse problema, reinicie seus pods Dataflows.