https://a.storyblok.com/f/270183/208963/43a070d9a9/ngrok-featured.png

Introdução ao Ngrok no Node-RED

Publicado em April 20, 2021

Tempo de leitura: 6 minutos

Observação: algumas das ferramentas ou métodos descritos neste artigo podem não ter mais suporte ou estar desatualizados. Para obter conteúdo atualizado ou suporte, consulte nossas postagens mais recentes ou nossa Documentação

Se você está começando a se familiarizar com o mundo das APIs da Nexmo, é provável que já tenha se deparado com os webhooks. Isso é ótimo! Eles são uma maneira perfeita de receber notificações sobre eventos como SMS recebidos, confirmações de entrega e diversos eventos relacionados a chamadas de voz. Mas há um porém. Ao criar consumidores de webhooks, você precisa de uma URL acessível publicamente para configurar o serviço de API. Sem expor seu servidor à internet, não há como receber mensagens nos seus webhooks. Se você estiver desenvolvendo no localhost, é aí que entra o o Ngrok entra em cena.

O que é o Ngrok e por que você o usaria?

O Ngrok é um aplicativo multiplataforma que expõe seu servidor local a um endereço único subdomínio ngrok.io por meio de túneis seguros. Por padrão, ele cria pontos de extremidade tanto HTTP quanto HTTPS, tornando-se útil para testar integrações com serviços de terceiros ou APIs que exigem domínios SSL/TLS válidos.

Outra opção seria implantar seu código em um servidor remoto. Embora o uso desse tipo de serviço esteja ficando cada vez mais fácil, geralmente há algum custo e investimento de tempo envolvidos. Além disso, reimplantar seu código a cada dois minutos durante a depuração pode ser um pouco frustrante.

Para expor seu servidor local à internet com o ngrok, basta um único comando no terminal, depois de instalá-lo em sua máquina local. Leia o post do Aaron no blog para saber mais sobre essa opção.

An image showing the output of an ngrok tunnel in the Terminal

Caso prefira não sair do editor do Node-RED, você pode usar o ngrok para obter a mesma funcionalidade.

An image showing Ngrok layout in NodeRed

Depois de especificar a porta na qual o Node-RED fica à escuta (geralmente 1880), o cliente ngrok inicia uma conexão segura com o servidor ngrok e, a partir daí, qualquer pessoa pode enviar solicitações ao seu servidor local por meio do endereço do túnel ngrok.


Questões de segurança

Ao executar este nó, você estará expondo sua instalação do Node-RED à internet pública; portanto, é altamente recomendável que você definir uma senha de administrador no editor.


Configurando o Ngrok no Node-RED

Instale o node-red-contrib-ngrok Embalagem

Primeiro, você precisará instalar o ngrok no Node.js. Para isso, abra paleta “Gerenciar” no menu de hambúrguer do seu editor Node-RED, procure pelo node-red-contrib-ngrok pacote e clicar em “Instalar”. Após reiniciar o editor, o ngrok nó deve aparecer na paleta de nós.

Image showing managing the palette in NodeRed

Configurar o Ngrok

O ngrok nó recebe as cadeias de caracteres em ou off como entrada para iniciar/parar o túnel e gera o endereço do host do ngrok como msg.payload.

A maneira mais fácil de fazer isso é conectar dois inject nós como ngrok entrada do nó, um com a carga útil da string em e o outro com desligado. Para facilitar o uso, você também pode definir o Name nome desses nós de acordo com a função de cada um nas propriedades do nó, para que fique claro qual é a funcionalidade de cada um. Em seguida, para exibir o endereço do host na barra lateral de depuração, conecte um debug nó após ngrok.

Como última etapa antes de clicar em a implantação, abra as ngrok propriedades do nó e especifique o número da porta. No caso do Node-RED, o valor padrão é 1880. A região padrão do ngrok é os EUA, mas você também pode defini-la como Europa ou Ásia. Você também pode adicionar seu authtoken da conta do ngrok, caso tenha um. Não se preocupe se não tiver; basta pular esta etapa por enquanto. O nó exibirá um aviso informando que não está totalmente configurado, mas isso não é um problema.

An image of NodeRed showing how to set various properties for Ngrok

Está tudo pronto! Depois de clicar em “Implantar” e clicar no botão inject nó, acesse a URL exibida na área de depuração para encontrar seu editor do Node-RED em um endereço público.

Esse túnel ficará ativo por 8 horas e seu editor já está disponível publicamente na internet. Após 8 horas, você precisará reiniciar seu túnel e receberá outro subdomínio ngrok gerado aleatoriamente. Essa é uma ótima maneira de compartilhar rapidamente demonstrações locais ou Applications de prova de conceito, mas não se esqueça de que qualquer pessoa que souber a URL poderá modificar seu fluxo. Portanto, é altamente recomendável que você definir uma senha de administrador no editor.

Etapas adicionais

Embora seu túnel do ngrok esteja ativo e funcionando e tudo o que você fez até agora não exija que você tenha um Account no ngrok, talvez ainda valha a pena criar uma.

Se você optar por criar um account gratuito, poderá então se autenticar no ngrok no ngrok node, fornecendo seu authtoken e seu túnel não estará mais limitado a 8 horas. O nome do subdomínio continuará sendo gerado aleatoriamente, mas permanecerá o mesmo. Obtenha seu authtoken em https://dashboard.ngrok.com/auth e cole-o nas ngrok propriedades do nó.

An Ngrok display showing how to retrieve your AuthToken

O pacote inclui 1 processo ngrok online, 4 túneis por processo ngrok e 40 conexões por minuto. É uma ótima solução para demonstrações rápidas e necessidades simples de tunelamento.

Você também pode conferir os [planos de assinatura](https://dashboard.ngrok.com/billing/plan) pagos deles, caso esteja procurando por ainda mais recursos, incluindo subdomínios personalizados, nomes de host reservados, lista de IPs autorizados, maior número de processos/túneis/conexões etc.

Recursos úteis do Ngrok

Painel de controle

Essa interface web, executada localmente no seu computador, normalmente na [porta 4040](http://127.0.0.1:4040/), oferece informações valiosas sobre o seu túnel. Você pode verificar facilmente o status do seu túnel, detalhes sobre as solicitações que você fez por meio dele e as respostas recebidas, incluindo todo o conteúdo dos cabeçalhos. Certifique-se de examinar cuidadosamente tudo na seção guia “Inspecionar” , pois isso pode ser inestimável na depuração de interações com a API.

An image showing the Ngrok dashboard

Solicitações de repetição

O que há de melhor no painel? Você pode reproduzir as solicitações ou reproduzi-las com modificações. Por exemplo, se você tiver um fluxo que captura mensagens recebidas da SMS API da Nexmo, em vez de ter que enviar mais um SMS para acionar o webhook, basta simplesmente reproduzir a última solicitação de SMS recebida. Isso é muito útil!

A gif showing how to trigger webhooks in Ngrok

E agora, para onde vamos?

Neste tutorial, você aprendeu a expor seu servidor local à internet usando o Node-RED. Quer ver isso em ação? Escolha um dos nossos tutoriais do Node-RED e continue!

Se você acompanhou este tutorial, já tem um túnel em funcionamento; portanto, fique à vontade para pular a parte “Expondo seu servidor local à internet” .

  • [Envio de notificações em grupo com o Google Sheets e o Node-RED](https://developer.vonage.com/en/blog/sms-notifications-google-sheets-nodered-dr)

  • [Como criar um IVR usando o Node-RED e as APIs da Nexmo](https://developer.vonage.com/en/blog/interactive-voice-response-node-red-dr)

  • [Crie seu próprio correio de voz com o Node-RED e a Voice API da Nexmo](https://developer.vonage.com/en/blog/build-voicemail-node-red-voice-api-dr)

  • [Encaminhar uma chamada por meio de um proxy de voz com o Node-RED](https://developer.vonage.com/en/blog/forward-call-via-voice-proxy-node-red-dr)

  • [Como organizar uma teleconferência com o Node-RED](https://developer.vonage.com/en/blog/conference-call-node-red-dr)

  • [Verificar números de telefone com o Node-RED](https://developer.vonage.com/en/blog/verify-phone-numbers-with-node-red-dr)

  • [Como fazer chamadas telefônicas com conversão de texto em fala usando o Node-RED](https://developer.vonage.com/en/blog/make-text-to-speech-phone-calls-node-red-dr/)

  • [Como receber chamadas telefônicas com o Node-RED](https://developer.vonage.com/en/blog/receive-phone-calls-node-red-dr/)

  • [Como enviar mensagens SMS com o Node-RED](https://developer.vonage.com/en/blog/send-sms-messages-node-red-dr/)

  • [Como receber mensagens SMS com o Node-RED](https://developer.vonage.com/en/blog/receive-sms-messages-node-red-dr/)

Mais informações sobre o Ngrok

  • [Como funciona](https://ngrok.com/product)

  • [Documentação](https://ngrok.com/docs)

Compartilhar:

https://a.storyblok.com/f/270183/372x373/36054b72d0/julia-biro.png
Julia BiroRepresentante de Desenvolvedores

Julia está empenhada em capacitar outros desenvolvedores por meio da criação de tutoriais, guias e recursos práticos. Com experiência em divulgação e educação, ela busca tornar a tecnologia mais acessível e aprimorar a experiência geral dos desenvolvedores. É comum encontrá-la em eventos da comunidade local.