写点什么

开源软件包 ngrok-go 致力于让 Ingress 更容易地嵌入到 Go 应用中

  • 2023-03-29
    北京
  • 本文字数:898 字

    阅读完需:约 3 分钟

开源软件包ngrok-go致力于让Ingress更容易地嵌入到Go应用中

Ngrok-go是一个地道的(idiomatic)的 Go 软件包,它使 Go 应用程序能够通过 ngrok 的 ingress 即服务(ingress-as-a-service)平台安全地接收网络请求,就像监听本地端口一样。


ngrok-go 旨在简化网络 ingress 的创建,它负责处理网络栈中不同层的一些低级网络基元(primitive),这些基元目前需要由开发人员来设置,以启用网络 ingress。它们包括 DNS、TLS 证书、网络级 CIDR 策略、IP 与子网路由、负载均衡、VPN 和 NAT。


ngrok-go 可以看作一种将 ngrok 代理打包并嵌入 Go 应用程序的方式,从而为捆绑 ngrok 来创建网络 ingress 的应用消除了巨大的复杂性,例如物联网设备、CI/CD 流水线等。


ngrok-go 让开发人员只需一行代码就能将 Go 应用发布到互联网上,而无需设置 IP、证书、负载均衡器甚至端口等低级别的网络基元!


要通过 ngrok 将 ingress 嵌入 Go 应用,开发人员只需调用 ngrok-go 提供的ngrok.Listen原语即可。如果你的环境有ngrok authtoken的话,对Listen的调用将初始化与 ngrok 的安全和持久连接,并传输你所指定的配置需求,包括 URL、认证、IP 限制等,例如:


ngrok.Listen(ctx,        config.HTTPEndpoint(        config.WithDomain("my-app.ngrok.io"),        config.WithAllowCDIRString("192.30.252.0/22"),        config.WithCircuigBreaker(0.8),        config.WithCompression(),        config.WithOAuth("github")       ),        ngrok.WithAuthtokenFromEnv(),)
复制代码


调用Listen时指定的所有策略都由 ngrok 执行,它在边缘处拒绝所有未经授权的请求,这意味着只有有效的请求才能到达 Go 应用。


使用 ngrok-go 的另一个优势是它在 ingress 方面的“可移植性”。这意味着使用它的应用将以同样的方式运行,与底层平台无关,无论是裸机、虚拟机、AWS、Azure、Kubernetes 等均是如此。


虽然 ngrok 选择 Go 作为第一个支持的语言,但对其他语言的支持已经在进行中,包括RustJavaScript。对其他语言(如 Java、C#、Python 和 Ruby)的支持预计很快就会纳入路线图,这也会基于用户的反馈。


如果你有兴趣尝试,ngrok-go可以在GitHub上找到官方的入门指南是一个很好的起点。


原文链接:

Open-Source Package ngrok-go Aims to Make it Easier to Embed Ingress into Go Apps

2023-03-29 08:004718

评论

发布
暂无评论
发现更多内容

建议收藏!Harmony应用配置文件概述(Stage模型)

HarmonyOS开发者

HarmonyOS

Python数据科学入门

3D建模设计

Python 生成式AI

专业HTML文本编辑器 BBEdit激活版+注册序列号

mac大玩家j

文本编辑器 Mac软件

使用LlamaIndex构建自己的PandasAI

3D建模设计

人工智能 ChatGPT

文心一言 VS 讯飞星火 VS chatgpt (90)-- 算法导论8.3 3题

福大大架构师每日一题

福大大架构师每日一题

OpenHarmony—应用间HSP开发指导

OpenHarmony开发者

OpenHarmony

“智算聚芯力 津彩新未来”天津市人工智能计算中心200P上线仪式暨天津人工智能应用创新论坛成功举办

彭飞

昇腾 AI 创新大赛2023河北区域赛成功举办,22支优秀团队脱颖而出

彭飞

电气设计软件有哪些?EPLAN让你成为专业工程师

智造软件

EPLAN 电器辅助设计 电气设计

Python数据结构5步入门

3D建模设计

Python 数据工程

Numpy和Pandas简介

3D建模设计

Python 数据科学

App Tamer for Mac(CPU智能控制管理) v2.8.1激活版

mac

苹果mac Windows软件 App Tamer 优化管理软件

一文秒懂!腾讯云ES HTTPS 集群访问通信最佳实践

腾讯云大数据

ES

未来3-5年,前端开发往哪个方向发展更好就业?

互联网工科生

前端 前端开发 低代码

关于前端就业前景的一点看法

树上有只程序猿

前端 前端开发

购买国外站群服务器快速实现SEO优化效果

一只扑棱蛾子

站群服务器

为什么当下MES如此火热,各大制造业工厂都在推行?

万界星空科技

MES系统

基础设施SIG月度动态:「龙蜥大讲堂」基础设施系列专题分享完美收官,容器镜像构建 2.0 版本上线

OpenAnolis小助手

开源 容器 云原生 龙蜥社区 KeenTune

YouTube音频提取 4K YouTube to MP3 for Mac激活中文

胖墩儿不胖y

Mac软件 音频提取工具 音频处理软件

前端开发纷繁复杂,是否有更高效的开发方式?

高端章鱼哥

前端开发 低代码 低代码前端

议题征集中| KCD 2023 杭州站,共话云原生技术

OpenAnolis小助手

云原生 杭州 龙蜥社区 议题征集 KCD

算法AB实验平台进化历程和挑战

得物技术

后端 实验 企业号9月PK榜

工业互联网的破局密钥——低代码开发

力软低代码开发平台

喜讯!广通优云两大产品入选软博会“年度优秀创新软件产品推广目录”

广通优云

HTTPS的安全体现在什么地方?

巨量HTTP

https HTTP

夯实金融云基础设施底座,天翼云助力金融行业释放发展新活力

天翼云开发者社区

云计算 安全

Python 基础知识:语法、数据类型和控制结构

3D建模设计

Python 数据工程

电子行业云MES解决方案

万界星空科技

MES系统

NFT游戏模式开发,外包技术公司团队搭建

V\TG【ch3nguang】

开源软件包ngrok-go致力于让Ingress更容易地嵌入到Go应用中_开源_Sergio De Simone_InfoQ精选文章