写点什么

开源软件包 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:004903

评论

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

官宣|Apache Paimon 毕业成为顶级项目,数据湖步入实时新篇章!

Apache Flink

Apache 大数据 flink paimon

ETLCloud中多并行分支运行的设计技巧

RestCloud

ETL 数据集成 多并行分支

小小开发板承载万千创新可能,小熊派的云上奇遇记

华为云开发者联盟

物联网 华为云 华为云开发者联盟 先锋开发者云上说 企业号2024年4月PK榜

做AI产品经理的三年,聊聊我的心得

京东零售技术

人工智能 产品经理 企业号 4 月 PK 榜

基于ChatGPT打造安全脚本工具流程

不在线第一只蜗牛

安全 ChatGPT

搞定了 6 种分布式ID,分库分表哪个适合做主键?

程序员小富

Java 分库分表 spring-boot

NL2SQL进阶系列(5):论文解读业界前沿方案(DIN-SQL、C3-SQL、DAIL-SQL)、新一代数据集BIRD-SQL解读

汀丶人工智能

自然语言处理 大模型 NL2SQL

库存领域核心能力--库存预占 建设实践

京东科技开发者

微服务架构下如何通过弱依赖原则保障系统高可用

京东科技开发者

Disk Drill for Mac(数据恢复软件) v5.5.1515中文激活版

iMac小白

Disk Drill for Mac Disk Drill下载 Disk Drill mac

系统logo及版权信息是否支持自定义配置 ?

开放签开源电子签章

版权保护 产品管理

App测试中,强制等待和隐式等待谁更强?

霍格沃兹测试开发学社

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

汀丶人工智能

大模型 text2sql NL2SQL

SSD 价格已经翻番,还要不要继续选择全闪?

XSKY星辰天合

EC 分布式全闪 三副本

SD-WAN解决电商企业海外业务网络难题

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

利用SD-WAN技术优化企业网络

Ogcloud

网络 SD-WAN sdn 企业组网 SD-WAN组网

「布道师系列文章」解析 AutoMQ 对象存储中的文件存储格式

AutoMQ

大数据 kafka 云原生 知乎 AutoMQ

中科院院士:借鉴美国超级计算机安腾 探索我国技术新路径

Geek_2d6073

软件测试学习笔记丨显式等待的高级使用

测试人

软件测试 自动化测试 测试开发

去中心化交易所开发 AI策略交易

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

国际标准图查询语言 GQL 正式发布,悦数图数据库业界首家原生支持

最新动态

市场份额第一!博睿数据持续领跑中国APM市场

博睿数据

可观测性 IT IT 运维 市场份额

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