用途
Telnyx Networking - Go 是 Telnyx 提供的 Go 语言 SDK 技能,面向需要通过 Go 代码配置和管理 Telnyx 网络资源的开发者。其目标场景包括配置私有网络、WireGuard VPN 网关、互联网网关以及虚拟交叉连接(Virtual Cross Connects),并以 Go SDK 示例的形式给出具体调用方式。
安装与初始化
安装命令:
go get github.com/team-telnyx/telnyx-go
初始化客户端时,通过环境变量 TELNYX_API_KEY 提供 API 密钥:
import ( "context" "fmt" "os"
"github.com/team-telnyx/telnyx-go" "github.com/team-telnyx/telnyx-go/option" )
client := telnyx.NewClient( option.WithAPIKey(os.Getenv("TELNYX_API_KEY")), )
文档中所有示例均假设 client 已按上述方式初始化。
错误处理
所有 API 调用都可能因网络错误、速率限制(429)、校验错误(422)或认证错误(401)而失败。生产代码中应始终处理错误。文档给出的示例使用 errors.As 判断 *telnyx.Error,并针对不同状态码给出处理建议:422 表示校验错误,需检查必填字段与格式;429 表示被限流,应等待并使用指数退避重试;其他状态码打印错误信息;非 API 错误则视为网络错误,检查连通性后重试。常见错误码包括:401 无效 API 密钥、403 权限不足、404 资源未找到、422 校验错误、429 被限流。
分页
文档提示使用 ListAutoPaging() 进行自动迭代:
iter := client.Resource.ListAutoPaging(ctx, params) for iter.Next() { item := iter.Current() }
主要能力与 API 示例
AI 聚类(Clusters)
- 列出所有聚类:GET /ai/clusters,返回 bucket、created_at、finished_at、min_cluster_size、min_subcluster_size、status(pending、starting、running、completed、failed)、task_id。
- 计算新聚类:POST /ai/clusters,必填 bucket,可选 files、min_cluster_size、min_subcluster_size、prefix;返回 task_id。该操作启动后台任务,计算嵌入式存储桶中数据的聚类,以识别常见主题与模式。
- 获取聚类:GET /ai/clusters/{task_id},返回 bucket、clusters、status。
- 删除聚类:DELETE /ai/clusters/{task_id}。
- 获取聚类可视化:GET /ai/clusters/{task_id}/graph。
AI 集成(Integrations)
- 列出所有可用集成:GET /ai/integrations,返回 available_tools、description、display_name、id、logo_url、name、status(disconnected、connected)。
- 列出用户集成连接:GET /ai/integrations/connections,返回 allowed_tools、id、integration_id。
- 按 ID 获取用户集成连接:GET /ai/integrations/connections/{user_connection_id}。
- 删除集成连接:DELETE /ai/integrations/connections/{user_connection_id}。
- 按 ID 获取集成详情:GET /ai/integrations/{integration_id}。
全局 IP 允许端口
- 列出所有全局 IP 允许端口:GET /global_ip_allowed_ports,返回 first_port、id、last_port、name、protocol_code、record_type。
全局 IP 分配健康检查指标
- GET /global_ip_assignment_health,返回 global_ip、global_ip_assignment、health、timestamp。
全局 IP 分配(Global IP Assignments)
- 列出所有分配:GET /global_ip_assignments,返回 created_at、global_ip_id、id、is_announced、is_connected、is_in_maintenance、record_type、status(created、provisioning、provisioned、deleting)、updated_at、wireguard_peer_id。
- 创建分配:POST /global_ip_assignments。
- 获取分配:GET /global_ip_assignments/{id}。
- 更新分配:PATCH /global_ip_assignments/{id}。
- 删除分配:DELETE /global_ip_assignments/{id}。
全局 IP 分配用量指标
- GET /global_ip_assignments_usage,返回 global_ip、global_ip_assignment、received、timestamp、transmitted。
全局 IP 健康检查
- 列出所有健康检查类型:GET /global_ip_health_check_types,返回 health_check_params、health_check_type、record_type。
- 列出所有健康检查:GET /global_ip_health_checks,返回 created_at、global_ip_id、health_check_params、health_check_type、id、record_type、updated_at。
- 创建健康检查:POST /global_ip_health_checks。
- 获取健康检查:GET /global_ip_health_checks/{id}。
- 删除健康检查:DELETE /global_ip_health_checks/{id}。
全局 IP 延迟指标
- GET /global_ip_latency,返回 global_ip、mean_latency、percentile_latency、prober_location、timestamp。
全局 IP 协议
- 列出所有协议:GET /global_ip_protocols,返回 code、name、record_type。
全局 IP 用量指标
- GET /global_ip_usage,返回 global_ip、received、timestamp、transmitted。
全局 IP(Global IPs)
- 列出所有全局 IP:GET /global_ips,返回 created_at、description、id、ip_address、name、ports、record_type、updated_at。
- 创建全局 IP:POST /global_ips。
- 获取全局 IP:GET /global_ips/{id}。
- 删除全局 IP:DELETE /global_ips/{id}。
网络(Networks)
- 列出所有网络:GET /networks,返回 created_at、id、name、record_type、updated_at。
- 创建网络:POST /networks,必填 name,可选 created_at、id、record_type、updated_at。
- 获取网络:GET /networks/{id}。
适用场景
该技能适用于需要在 Go 应用中集成 Telnyx 网络编排能力的开发者,例如自动化创建与管理私有网络、配置 WireGuard 相关资源、管理全局 IP 及其分配与健康检查、查询延迟与用量指标等。
限制
资料未提供收费、价格、平台支持范围、性能指标或具体使用步骤之外的额外说明;上述未提及的内容暂未提供。