写点什么

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

评论

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

3D 纹理贴图基础知识

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

“Ladies In Tech 闪闪发光的她”分论坛圆满举办

开放原子开源基金会

开源

软件测试/测试开发丨常用测试策略与测试手段

测试人

软件测试 测试开发

可视化技术:数据可视化17个常用图表

2D3D前端可视化开发

大数据 数据分析 数据可视化 数据可视化工具 可视化大屏

从被动到主动,智能招聘为企业人效提升给出最优解

用友BIP

招聘

软件测试/测试开发丨Bug生命周期

测试人

软件测试 测试开发

半岛铁盒推出22.5W超级快充充电宝:双线快充,超能补量

科技热闻

SecGPT:全球首个网络安全开源大模型

云起无垠

杭州悦数成立「悦数图技术陆家嘴数据智能研究院」入驻上海「双城辉映」平台

悦数图数据库

图数据库

共话 AI for Science,2023和鲸社区年度科研闭门会圆满结束

ModelWhale

人工智能 数据科学 科研 AI4S

Flink CDC 3.0 正式发布,详细解读新一代实时数据集成框架

Apache Flink

大数据 flink 实时计算

企业门户平台:八项必备功能助力业务升级

天津汇柏科技有限公司

网站 企业

业务全面重塑,“人”要如何重塑?

用友BIP

人才管理

软件测试/测试开发|如何解决pip下载速度慢的问题

霍格沃兹测试开发学社

软件测试/测试开发|如何使用因果图法设计测试用例?

霍格沃兹测试开发学社

软件测试/测试开发丨Bug概念,定义,判定标准,严重程度,优先级

测试人

软件测试 测试开发

大模型热的冷思考

用友BIP

企业服务大模型

PON网络应用场景

小齐写代码

数字时代B2B订货平台,助力渠道业绩持续增长

赛博威科技

赛博威 经销商管理 订货平台

软件测试/测试开发丨测试用例的概念、组成、优先级、设计工具

测试人

软件测试 测试开发

什么是3D模型LOD:细节级别

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

什么是多边形网格以及如何编辑它?

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

六步走向无忧,华为云数据库高可用的秘密武器

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟

文心一言专业版年卡来啦!

飞桨PaddlePaddle

人工智能 文心一言

如何使用不同的纹理贴图制作逼真的 3D 图形?

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

我们不可能永远都在救火 ——Scrum中技术债务“偿还”指南

敏捷开发

项目管理 Scrum 敏捷开发 自动化测试 技术债务

软件测试/测试开发|如何使用场景法设计测试用例?

霍格沃兹测试开发学社

基于Flink SQL 和 Paimon 构建流式湖仓新方案

Apache Flink

大数据 flink 实时计算

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