【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

评论

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

如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?

java易二三

程序员 面试 计算机

LED显示屏在高温的状态下工作影响有多大

Dylan

企业 常识 LED显示屏 户外LED显示屏 led显示屏厂家

Mybatis-plus的批量插入真的不能用吗?

这我可不懂

MySQL Mybatis-Plus

活动回顾|阿里云 Serverless 技术实战与创新成都站回放&PPT下载

Serverless Devs

负载均衡 Serverless 云原生 弹性计算 FC

一款介于无代码和低代码之间的数据可视化平台

高端章鱼哥

低代码 应用开发 JNPF 数据可视化平台

晋级榜单揭晓!华秋第九届硬创大赛-华南分赛区路演成功举办

华秋电子

PoseiSwap:通过 RWA 的全新叙事,反哺 Nautilus Chain 生态

西柚子

NFTScan | 07.24~07.30 NFT 市场热点汇总

NFT Research

NFT\

三分钟白话RocketMQ系列—— 核心概念

互联网工科生

分布式 RocketMQ 消息中间件

IIOT -IPQ9574+IPQ8074-High Performance Router Motherboard-Support Wi-Fi 6 and Powerful Quad-Core Processor

wifi6-yiyi

wifi6 WiFi7

聆心智能“超拟人”模型升级,助力AI实现“走心”突破

硬科技星球

MySQL事务隔离机制与实现原理详解(MySQL专栏启动)

java易二三

MySQL 数据库 程序员 计算机

Flink SQL 优化实战 - 维表 JOIN 优化

腾讯云大数据

流计算 Oceanus

建设数字工厂:MRP物料需求计划的逻辑原理与配置方法

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

需求太多处理不过来?MoSCoW模型帮你

敏捷开发

项目管理 需求处理 MoSCoW模型 排序优先级

数据库行业需要什么样的人才?高校老师这样说

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

如何在远距离传输大型文件时避免网络延迟和数据丢失

镭速

远距离传输大型文件 传输效率

聆心智能Open Day发布CharacterGLM,共创超拟人大模型全“心”未来

硬科技星球

ACM图灵大会开幕,王海峰解读文心大模型3.5最新进展

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

MegEngine Python 层模块串讲(下)

MegEngineBot

深度学习 开源

生态伙伴 | 华秋硬创联合长虹创投,共同打造更优生态系统

华秋电子

一文带你入门网络协议

高端章鱼哥

数据 网络协议 网络 协议

工程项目管理软件有哪些?

优秀

项目管理软件 工程管理

码力全开!请查收HDC.Together 2023亮点日程

HarmonyOS开发者

HarmonyOS

⻜桨⼤模型推理部署⾼性能优化

Baidu AICLOUD

大模型推理 AI 框架

低代码平台技术分享官丨日志实时隔离,助力高效发布

inBuilder低代码平台

低代码 低代码平台

ShareSDK 国内平台登陆返回参数

MobTech袤博科技

前端 APP开发 分享工具

IPD(集成产品开发)与传统项目管理的区别

禅道项目管理

项目管理 IPD

PoseiSwap:通过 RWA 的全新叙事,反哺 Nautilus Chain 生态

BlockChain先知

低代码平台实际解决了哪些问题?

互联网工科生

软件开发 低代码 低代码平台 JNFP

远距离传输大型文件:如何应对不同地区的网络环境和带宽约束

镭速

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