Guia de início rápido: publicar e assinar mensagens MQTT no namespace da grade de eventos com o portal do Azure

Neste artigo, você usa o portal do Azure para executar as seguintes tarefas:

  1. Criar um namespace de Grade de Eventos e habilitar o broker MQTT
  2. Criar subrecursos, como clientes, grupos de clientes e espaços de tópicos
  3. Conceder aos clientes acesso para publicar e assinar espaços de tópicos
  4. Publicar e receber mensagens entre clientes

Pré-requisitos

  • Criar uma conta gratuita do Azure Se você não tiver uma assinatura do Azure.
  • Leia a visão geral da Grade de Eventos antes de iniciar este tutorial, se você for novo na Grade de Eventos do Azure.
  • Verifique se a porta 8883 está aberta no firewall. O exemplo neste tutorial usa o protocolo MQTT, que se comunica pela porta 8883. Essa porta pode estar bloqueada em alguns ambientes de rede corporativa e educacional.
  • Você precisa de um certificado de cliente X.509 para gerar a impressão digital e autenticar a conexão do cliente.

Gerar certificado de cliente de exemplo e impressão digital

Se você ainda não tiver um certificado, poderá criar um certificado de exemplo usando a etapa CLI. Considere instalar manualmente para Windows.

Após uma instalação bem-sucedida do Step, você deve abrir um prompt de comando na pasta de perfil de usuário (Win+R tipo %USERPROFILE%).

  1. Para criar certificados raiz e intermediários, execute o seguinte comando. Lembre-se da senha, que precisa ser usada na próxima etapa.

    step ca init --deployment-type standalone --name MqttAppSamplesCA --dns localhost --address 127.0.0.1:443 --provisioner MqttAppSamplesCAProvisioner
    
  2. Use os arquivos de autoridade de certificação gerados para criar um certificado para o primeiro cliente. Certifique-se de usar o caminho correto para os arquivos cert e secrets no comando.

    step certificate create client1-authn-ID client1-authn-ID.pem client1-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  3. Para visualizar a impressão digital, execute o comando Step.

    step certificate fingerprint client1-authn-ID.pem
    
  4. Agora, crie um certificado para o segundo cliente.

    step certificate create client2-authn-ID client2-authn-ID.pem client2-authn-ID.key --ca .step/certs/intermediate_ca.crt --ca-key .step/secrets/intermediate_ca_key --no-password --insecure --not-after 2400h
    
  5. Para visualizar a impressão digital a ser usada com o segundo cliente, execute o comando Step.

    step certificate fingerprint client2-authn-ID.pem
    

Criar um espaço de nomes

  1. Inicie sessão no portal do Azure.

  2. Na barra de pesquisa, digite Namespaces de Grade de Eventos e selecione Namespaces de Grade de Eventos na lista suspensa.

    Screenshot of searching for Event Grid namespace on Azure portal.

  3. Na página Namespaces da Grade de Eventos, selecione + Criar na barra de ferramentas.

  4. Na página Criar namespace, siga estas etapas:

    1. Selecione a subscrição do Azure.

    2. Selecione um grupo de recursos existente ou selecione Criar novo e insira um nome para o grupo de recursos.

    3. Forneça um nome exclusivo para o namespace. O nome do namespace deve ser exclusivo por região porque representa uma entrada DNS. Não utilize o nome apresentado na imagem. Em vez disso, crie seu próprio nome - ele deve ter entre 3-50 caracteres e conter apenas os valores a-z, A-Z, 0-9 e -.

    4. Selecione um local para o namespace Grade de Eventos. Atualmente, o namespace Grade de Eventos está disponível apenas em regiões selecionadas.

      Screenshot showing Event Grid namespace create flow basics tab.

  5. Selecione Rever + criar na parte inferior da página.

  6. Na guia Revisão + criação da página Criar namespace, selecione Criar.

    Nota

    Para manter o QuickStart simples, você usará apenas a página Noções básicas para criar um namespace. Para obter etapas detalhadas sobre como configurar a rede, a segurança e outras configurações em outras páginas do assistente, consulte Criar um namespace.

  7. Depois que a implantação for bem-sucedida, selecione Ir para o recurso para navegar até a página Visão geral do namespace da grade de eventos do seu namespace.

  8. Na página Visão geral, você vê que o broker MQTT está no estado Desabilitado . Para habilitar o broker MQTT, selecione o link Desativado , ele irá redirecioná-lo para a página Configuração.

  9. Na página Configuração , selecione a opção Ativar broker MQTT e, em seguida, selecione Aplicar para aplicar as configurações.

    Screenshot showing Event Grid namespace configuration page to enable MQTT.

Criar clientes

  1. No menu à esquerda, selecione Clientes na seção do broker MQTT.

  2. Na página Clientes, selecione + Cliente na barra de ferramentas.

    Screenshot of the Clients page with Add button selected.

  3. Na página Criar cliente, insira um nome para o cliente. Os nomes de cliente devem ser exclusivos em um namespace.

  4. O nome de autenticação do cliente é padronizado para o nome do cliente. Para este tutorial, altere-o para client1-authn-ID. Você precisa incluir esse nome como Username no pacote CONNECT.

  5. Neste tutorial, você usa a autenticação baseada em impressão digital. Inclua a impressão digital do primeiro certificado de cliente na impressão digital primária.

    Screenshot of client 1 configuration.

  6. Selecione Criar na barra de ferramentas para criar outro cliente.

  7. Repita as etapas acima para criar um segundo cliente chamado client2. Altere o nome da autenticação para client2-authn-ID e inclua a impressão digital do segundo certificado de cliente na impressão digital primária.

    Screenshot of client 2 configuration.

    Nota

    • Para manter o QuickStart simples, você usará a correspondência de impressão digital para autenticação. Para obter etapas detalhadas sobre como usar a cadeia de certificados de CA X.509 para autenticação de cliente, consulte Autenticação de cliente usando cadeia de certificados.
    • Além disso, usamos o grupo de clientes padrão $all , que inclui todos os clientes no namespace para este exercício. Para saber mais sobre como criar grupos de clientes personalizados usando atributos de cliente, consulte Grupos de clientes.

Criar espaços de tópico

  1. No menu à esquerda, selecione Espaços de tópico na seção do broker MQTT.

  2. Na página Espaços de tópico, selecione + Espaço de tópico na barra de ferramentas.

    Screenshot of Topic spaces page with create button selected.

  3. Forneça um nome para o espaço de tópico, na página Criar espaço de tópico.

  4. Selecione + Adicionar modelo de tópico.

    Screenshot of Create topic space with the name.

  5. Insira contosotopics/topic1 o modelo de tópico e selecione Criar para criar o espaço de tópico.

    Screenshot of topic space configuration.

Configurando o controle de acesso usando associações de permissão

  1. No menu à esquerda, selecione Ligações de permissão na seção Broker MQTT.

  2. Na página Ligações de permissão, selecione + Vinculação de permissão na barra de ferramentas.

    Screenshot that shows the Permission bindings page with the Create button selected.

  3. Configure a associação de permissão da seguinte maneira:

    1. Forneça um nome para a associação de permissão. Por exemplo, contosopublisherbinding.

    2. Para Nome do grupo de clientes, selecione $all.

    3. Em Nome do espaço de tópico, selecione o espaço de tópico criado na etapa anterior.

    4. Conceda a permissão do Editor ao grupo de clientes no espaço do tópico.

      Screenshot showing creation of first permission binding.

  4. Selecione Criar para criar a associação de permissão.

  5. Crie mais uma vinculação de permissão (contososubscriberbinding) selecionando + Vinculação de permissão na barra de ferramentas.

  6. Forneça um nome e conceda $all grupo de clientes Subscriber acesso ao ContosoTopicSpace, conforme mostrado.

    Screenshot showing creation of second permission binding.

  7. Selecione Criar para criar a associação de permissão.

Conectando os clientes ao EG Namespace usando o aplicativo MQTTX

  1. Para publicar / assinar mensagens MQTT, você pode usar qualquer uma de suas ferramentas favoritas. Para fins de demonstração, publicar / assinar é mostrado usando o aplicativo MQTTX, que pode ser baixado de https://mqttx.app/.

    Screenshot showing MQTTX app left rail to add new client.

  2. Configurar client1 com

    • Nome como client1 (este valor pode ser qualquer coisa)

    • ID do cliente como client1-session1 (ID do cliente no pacote CONNECT é usada para identificar o ID da sessão para a conexão do cliente)

    • Nome de usuário como client1-authn-ID. Esse valor deve corresponder ao valor de Nome de Autenticação do Cliente que você especificou quando criou o cliente no portal do Azure.

      Importante

      O nome de usuário deve corresponder ao nome de autenticação do cliente nos metadados do cliente.

  3. Atualize o nome do host para MQTT hostname na página Visão geral do namespace.

    Screenshot showing Event Grid namespace overview page, which has MQTT hostname.

  4. Atualize a porta para 8883.

  5. Alterne SSL/TLS para ON.

  6. Alterne SSL Secure para ON, para garantir a validação do certificado de serviço.

  7. Selecione Certificado como Autoassinado.

  8. Forneça o caminho para o arquivo de certificado do cliente.

  9. Forneça o caminho para o arquivo de chave do cliente.

  10. O restante das configurações pode ser deixado com valores padrão predefinidos.

    Screenshot showing client 1 configuration part 1 on MQTTX app.

  11. Selecione Conectar para conectar o cliente ao broker MQTT.

  12. Repita as etapas acima para conectar o segundo cliente cliente2, com as informações de autenticação correspondentes, conforme mostrado.

    Screenshot showing client 2 configuration part 1 on MQTTX app.

    Screenshot showing client 2 configuration part 2 on MQTTX app.

Publicar/assinar usando o aplicativo MQTTX

  1. Depois de conectar os clientes, para client2, selecione o botão + Nova assinatura .

  2. Adicionar contosotopics/topic1 como tópico e selecione Confirmar. Você pode deixar os outros campos com valores padrão existentes.

    Screenshot showing subscription topic configuration on MQTTX app.

  3. Selecione client1 no trilho esquerdo.

  4. Para client1, na parte superior da caixa de composição da mensagem, digite contosotopics/topic1 como o tópico a ser publicado.

  5. Escreva uma mensagem. Você pode usar qualquer formato ou um JSON, conforme mostrado.

  6. Selecione o botão Enviar .

    Screenshot showing message publishing on the topic in MQTTX app.

  7. A mensagem deve ser vista como publicada no cliente 1.

    Screenshot showing message published on the topic in MQTTX app.

  8. Mude para client2. Confirme se client2 recebeu a mensagem.

    Screenshot showing the message received by the subscribing client on MQTTX app.

Próximos passos