写点什么

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

评论

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

惟客数据“惟客云”升级:稳操胜“券”,助力商家精准营销

科技热闻

Dumpling 导出表内并发优化丨TiDB 工具分享

PingCAP

2021年度总结,欲望反光

程思扬

经验分享 #总结# 经验总结 盘点 2021

微信小程序获取位置信息

程思扬

小程序 小程序云开发 开发者 开发 小程序生态

React 中五种常见的使用样式

编程江湖

React

在线JSON转HTML,TABLE表格工具

入门小站

工具

一图解析MySQL执行查询全流程

华为云开发者联盟

MySQL 服务器 数据包 查询语句 应用层

甲方,你们愿意被乙方侮辱吗?

码农一米

云计算 云服务

“千言”开源数据集项目全面升级:数据驱动AI技术进步

百度大脑

人工智能

基于机器学习和TFIDF的情感分类算法,详解自然语言处理

华为云开发者联盟

自然语言处理 机器学习 算法 TFIDF 情感分类

Java开发之SSM框架整合配置知识分享

@零度

ssm JAVA开发

绥北人民法院:用宜搭打造“线上法庭”,让群众少跑腿

一只大光圈

低代码 数字化转型 法院 钉钉宜搭

Linux之目录结构

入门小站

【直播预告】全国人工智能大赛赛题讲解直播来啦!1月6日晚20点,不见不散!

OpenI启智社区

人工智能大赛

如何解决JDBC死链接导致NIFI线程假死

编程江湖

网络安全好学吗?手把手教你学metasploit 网络安全工程师学习资料汇总

学神来啦

VRAR产业峰会暨第二届华为VR开发应用大赛颁奖典礼在和平区成功举办!

华为云开发者联盟

云计算 5G AR 华为云 vr

安装VTK配置出现错误

Ayosh

qt

Stellantis集团将于2022CES展期间召开网络直播发布会

InfoQ_967a83c6d0d7

使用APICloud开发app的性能提升实践

YonBuilder低代码开发平台

android APP开发 APICloud 跨端开发 app性能

云计算厂商们,你们辜负了中国的用户

码农一米

云计算 云服务

百度飞桨EasyDL桌面版正式上线,没网也能训练AI!

百度大脑

人工智能

自创解法!setTimeout+Promise+Async输出顺序?简单的一匹!!

Sunshine_Lin

面试 前端 ES6 Promise Async

阿里巴巴集团副总裁贾扬清-一个AI开发者的奇幻漂流

大咖说

大数据培训:hadoop中shuffle过程面试题

@零度

大数据 hadoop Shuffle

多种网络设备的优缺点及网络故障的排除方法

恒生LIGHT云社区

故障 网络设备

带你认识传统语音识别技术

华为云开发者联盟

语音识别 语言模型 声学模型 隐马尔可夫链 WFST解码

Greenplum 内核源码分析 - 分布式事务 (五)

王凤刚(ginobiliwang)

源码分析 greenplum 分布式式事务

HBase 优化如何操作

编程江湖

HBase

前端培训:React Native 开发过程中遇到的坑

@零度

前端开发 ​React Native

docker

Docker jenkins pipeline

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