QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

评论

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

《面试1v1》java注解

JavaPub

Java 面试 注解

关于商品推荐方法及系统的思考

zhengzai7

推荐系统 本质

区块链开发平台——以太坊概念及业务流程

TiAmo

区块链 智能合约 以太坊

高效运营新纪元:智能化华为云Astro低代码重塑组装式交付

华为云PaaS服务小智

云计算 软件开发 华为云 华为开发者大会2023

《深入浅出Java虚拟机 — JVM原理与实战》带你攻克技术盲区,夯实底层基础 —— 吃透class字节码文件技术基底和实现原理(核心结构剖析)

洛神灬殇

Java JVM 深入理解JVM 挖掘底层原理

我和“华为云”有个约会

YG科技

使用华为云开发者插件一键部署应用到ECS

YG科技

数字化转型与架构-规划篇|“百变”流程图

数字随行

数字化转型

强化学习是否言过其实?

高端章鱼哥

强化学习 计算机程序

华为开发者大会:软件开发小白的华为云云上初体验

YG科技

Nginx+Uwsgi+Django+Mysql部署项目

zhengzai7

MySQL Linux mysqldump 数据备份

智慧化考虑运用数据、信息、知识及反馈机制提升微表情识别准确度

zhengzai7

人工智能 DIKW

机器学习之PyTorch和Scikit-Learn第2章 为分类训练简单机器学习算法

Alan

人工智能 机器学习 PyTorch scikit-learn 多层感知机

适配各类大模型应用!手把手教你选择 Zilliz Cloud 实例类型

Zilliz

Milvus Zilliz 向量数据库 zillzicloud

Git代码管理、提交、问题、仓库创建与管理

zhengzai7

git 代码管理

详解:瓴羊QuickBI为什么是国内口碑最佳的BI工具

对不起该用户已成仙‖

从Vue到无限可能:数智时代下的低代码快速开发之旅

快乐非自愿限量之名

架构 Vue 低代码 数智化

Weblogic控制台数据源密码的脚本化修改

zhengzai7

Shell 密码 控制台 weblogic 数据源

微服务架构在前端开发中的应用

没有用户名丶

华为云出品《IDEA-Plugin-开发手册》电子书——学完即会场景设计

华为云PaaS服务小智

开发者 华为云 编程学习 华为开发者大会2023

2023-07-13:如果你熟悉 Shell 编程,那么一定了解过花括号展开,它可以用来生成任意字符串。 花括号展开的表达式可以看作一个由 花括号、逗号 和 小写英文字母 组成的字符串 定义下面几条语

福大大架构师每日一题

福大大架构师每日一题

插件界的全家桶!对接华为云能力就用它了!

YG科技

深入C++常用的三个智能指针

芯动大师

linux环境用mysqldump定时备份Mysql数据

zhengzai7

MySQL mysqldump

大模型的“第一性原理”:技术创新与社会价值的接轨

脑极体

大模型

Docker学习路线4:Docker基础知识

小万哥

Java c++ Go Docker 容器

weblogic基本概念、安装、创建域、服务器、数据源、部署应用

zhengzai7

weblogic

基础推荐算法概述

zhengzai7

推荐系统 推荐算法

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