资讯详情

google-api-nodejs-client 中 Network Security API(networksecurity)模块使用指南

📅 2026/10/15 2:03:28 | 华诺云谱 👁 阅读
google-api-nodejs-client 中 Network Security API(networksecurity)模块使用指南
后端【免费下载链接】google-api-nodejs-clientGoogles officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included.项目地址https://gitcode.com/gh_mirrors/go/google-api-nodejs-client点击查看免费下载本文以 src/apis/networksecurity/README.md 为核心骨架结合该模块在 google-api-nodejs-client 仓库中的实际源码v1.ts、v1beta1.ts、index.ts、package.json与 Discovery 文档discovery/networksecurity-v1.json系统讲解googleapis/networksecurity的安装方式、支持状态、资源 API 结构、认证方式与常见调用模式。读完本文你将能够独立完成该包的安装、初始化、鉴权并掌握 Address Groups、TLS 策略、安全配置等核心资源的调用方法同时理解为何官方建议新项目优先考虑google-cloud/network-security而非本模块。一、模块定位与支持状态Support statusnetworksecurity是 Network Security API 的官方 Node.js 客户端封装位于仓库的 src/apis/networksecurity 目录下其底层服务域名为https://networksecurity.googleapis.com/见 discovery/networksecurity-v1.json 中的baseUrl。根据模块自带的 README该库当前处于维护模式maintenance mode它仍会持续发布供已有存量应用的开发者继续使用官方明确不建议新项目使用本模块如果你正在构建新应用或对旧应用做现代化改造请改用google-cloud/network-security库。官方认为后者更快、更易用、维护更好。从仓库的实际代码看这一判断有充分的依据本模块的v1.ts与v1beta1.ts是由 Discovery 文档自动生成的代码两个文件头部均标注THIS FILE IS AUTO-GENERATED每个方法都通过googleapis-common的createAPIRequest走统一的通用请求管线而google-cloud/network-security是 Google Cloud 的专用客户端库拥有更贴近领域模型的 API 设计与更积极的维护节奏。因此决策建议新项目 → 使用google-cloud/network-security存量项目迁移成本高、或需要在统一googleapis全家桶中管理 API → 可继续使用本模块。二、安装与版本信息2.1 安装命令模块 README 给出的标准安装命令为$ npm install googleapis/networksecurity该包也可通过主仓库的googleapis统一入口使用见下文“快速上手”。从 package.json 可以看到当前版本为21.1.0其关键元数据如下mainbuild/index.jstypesbuild/index.d.ts包同时提供 CommonJS 与 TypeScript 类型定义engines.node22.0.0即要求 Node.js 22 或更高版本这一要求在 CHANGELOG.md 中被标记为破坏性变更引入dependencies仅依赖googleapis-common ^9.0.0负责认证、请求管线等公共基础设施licenseApache-2.0。2.2 版本演进与破坏性变更从 CHANGELOG.md 可追踪该模块的演进脉络21.1.02026-10API 例行更新21.0.02026-09破坏性变更将最低 Node 版本提升至 2220.0.02026-09破坏性变更同样提升最低 Node 版本至 22。这意味着升级到 v21 及以上的用户需要确保运行环境满足 Node 22 的硬性要求否则包将无法正常工作。三、快速上手初始化与认证模块的 index.ts 定义了三种使用入口工厂函数networksecurity(version)按版本字符串v1/v1beta1返回对应的Networksecurity客户端实例选项对象networksecurity(options)传入{version, auth, ...}类型的Options后返回实例统一入口通过主包googleapis的google.networksecurity(v1)获取实例该用法在 v1.ts 的类注释中给出了示例。同时index.ts还导出了authAuthPlus实例、networksecurity_v1、networksecurity_v1beta1以及googleapis-common的各类公共类型GlobalOptions、MethodOptions、BodyResponseCallback等方便 TypeScript 用户做类型推导与自定义请求配置。3.1 最小可用示例v1以下代码来自 v1.ts 中资源方法的标准example注释展示了完整的初始化、鉴权与调用链路const {google} require(googleapis); const networksecurity google.networksecurity(v1); async function main() { // 使用 Application Default CredentialsADC认证 const auth new google.auth.GoogleAuth({ // 作用域可指定为数组或单个以空格分隔的字符串 scopes: [https://www.googleapis.com/auth/cloud-platform], }); // 获取 auth client并将其绑定到后续所有调用 const authClient await auth.getClient(); google.options({auth: authClient}); // 发起 API 调用此处为获取 location 信息 const res await networksecurity.projects.locations.get({ name: projects/my-project/locations/my-location, }); console.log(res.data); } main().catch(e { console.error(e); throw e; });3.2 认证方式与作用域该 API 只暴露一个 OAuth 2.0 作用域见 discovery/networksecurity-v1.json 的auth.oauth2.scopes作用域含义https://www.googleapis.com/auth/cloud-platform查看、编辑、配置和删除你的 Google Cloud 数据并可查看 Google 账户的邮箱地址也就是说所有方法都要求cloud-platform级别的授权。官方推荐的本地开发认证流程为$ gcloud auth application-default login该步骤同样出现在 v1.ts 各方法的示例注释中。除 ADC 外v1.ts的StandardParameters还支持OAuth2Client、JWT服务账号、ComputeGCE 元数据、UserRefreshClient、BaseExternalAccountClient、API Key 等多种凭证类型你可以按场景选择。四、资源 API 全貌从源码结构理解调用层级4.1 顶层资源organizations 与 projects在 v1.ts 中Networksecurity类的构造函数实例化了两个顶层资源organizations→Resource$Organizationsv1.tsprojects→Resource$Projectsv1.ts两者都挂载了locations子资源。organizations适用于企业组织级organizations/{org}/locations/{location}/...的资源配置projects适用于项目级projects/{project}/locations/{location}/...的资源配置。4.2 locations 下的子资源清单v1从 v1.ts 中Resource$Projects$Locations的字段列表可见Network Security API v1 在 locations 下提供了 22 类资源资源对象用途依据方法注释与 Schema 描述addressGroups地址组供防火墙策略引用的 IP/DNS 集合authorizationPolicies授权策略定义服务如何授权入站连接authzPolicies新版授权策略AuthzPolicybackendAuthenticationConfigs后端认证配置clientTlsPolicies客户端 TLS 策略dnsThreatDetectorsDNS 威胁检测器firewallEndpointAssociations防火墙端点关联firewallEndpoints防火墙端点gatewaySecurityPolicies网关安全策略含rules子资源interceptDeploymentGroups/interceptDeployments拦截intercept部署组与部署interceptEndpointGroupAssociations/interceptEndpointGroups拦截端点组及其关联mirroringDeploymentGroups/mirroringDeployments镜像mirroring部署组与部署mirroringEndpointGroupAssociations/mirroringEndpointGroups镜像端点组及其关联operations长时运行操作LRO管理sacAttachments/sacRealmsSAC 附件与领域securityProfileGroups/securityProfiles安全配置文件组与安全配置文件serverTlsPolicies服务端 TLS 策略tlsInspectionPoliciesTLS 检查策略urlListsURL 列表提示v1beta1版本v1beta1.ts除以上资源外还额外提供ratelimitPolicies限流策略若你需要限流能力可选用google.networksecurity(v1beta1)。每个资源类都遵循统一的“驼峰命名 同名方法”模式例如addressGroups对应Addressgroups类中的addItems、cloneItems、create、delete、get、list、patch、removeItems等方法见 v1.ts 起。五、核心资源实战Address Groups地址组Schema$AddressGroupv1.ts定义了地址组资源的结构其字段包括字段类型说明namestring资源名格式为projects/{project}/locations/{location}/addressGroups/{addressGroup}typestring必填地址组类型取值为IPv4或IPV6capacitynumber必填地址组的容量上限itemsstring[]地址项列表IP 或 DNSpurposestring[]地址组支持的用途labelsmap资源标签descriptionstring资源描述createTime/updateTimestring输出字段创建/更新时间selfLinkstring输出字段服务端定义的完整 URL5.1 创建地址组以下完整示例来自 v1.ts 的create方法注释可直接复制运行const res await networksecurity.projects.locations.addressGroups.create({ // 必填。要创建的 AddressGroup 资源的短名称。 // 长度 1-63 个字符仅允许字母、数字、连字符和下划线且不能以数字开头。例如 authz_policy。 addressGroupId: my-address-group, // 必填。AddressGroup 的父资源格式为 projects/{project}/locations/{location} parent: projects/my-project/locations/my-location, // 可选。请求 ID用于幂等重试有效 UUID不支持全零 UUID requestId: 3d1d5f0e-9b6a-4c1e-8f2a-000000000000, requestBody: { name: projects/my-project/locations/my-location/addressGroups/my-address-group, type: IPv4, capacity: 100, items: [198.51.100.1, 198.51.100.2], description: 生产环境防火墙白名单地址组, }, }); console.log(res.data);注意create属于长时运行操作LRO从 v1.ts 的类型签名可见其返回类型为Schema$Operation而非直接的AddressGroup。你需要轮询返回的Operation.name来确认创建完成。5.2 向地址组增删条目增加条目addressGroups.addItems请求体字段为items必填的待添加条目列表与requestId可选用于幂等重试见 v1.ts删除条目addressGroups.removeItems请求体同样包含items与requestId对应Schema$RemoveAddressGroupItemsRequest见 v1.ts。两者都需要传入完整资源路径addressGroup参数格式projects/{project}/locations/{location}/addressGroups/{addressGroup}且同为 LRO 操作。5.3 查询与更新get按name读取单个地址组list按parent分页列出地址组支持pageSize、pageToken、filter、orderBy等标准查询参数patch局部更新配合updateMask指定要修改的字段delete删除地址组。六、长时运行操作LRO与 Operation 结构Network Security API 的创建、更新、删除类方法大多返回Schema$Operationv1.ts其关键字段为字段说明name服务端分配的操作名形如projects/{project}/locations/{location}/operations/{unique_id}donefalse表示操作仍在进行true表示已完成此时可查看error或responseerror失败或取消时的错误结果Schema$Statusmetadata服务相关的操作元数据如Schema$OperationMetadata含createTime、endTime、verb、target等见 v1.tsresponse成功响应体对应的operations资源v1.ts提供三个方法get查询操作状态cancel取消进行中的操作请求体可为空对象{}delete删除已完成的操作记录。一个典型的长操作轮询模式const op await networksecurity.projects.locations.addressGroups.create({...}); // 轮询直到 done true let result await networksecurity.projects.locations.operations.get({ name: op.data.name, }); while (!result.data.done) { await new Promise(r setTimeout(r, 5000)); result await networksecurity.projects.locations.operations.get({ name: op.data.name, }); } console.log(result.data.response);七、其他重要资源一览AuthorizationPolicy授权策略定义服务如何授权入站连接action取值为ALLOW或DENY见 v1.ts。该资源本身不改变配置需挂载到目标 HTTPS 代理或端点配置选择器后生效。SecurityProfile / SecurityProfileGroup安全配置通过securityProfiles.create与securityProfiles.list见 v1.ts管理安全配置文件可组合 TLS 检查、威胁防护等能力组织级资源位于organizations.locations.securityProfiles。ClientTlsPolicy / ServerTlsPolicy客户端/服务端 TLS 策略管理双向 TLSmTLS相关的客户端与服务器证书策略serverTlsPolicies.create/list见 v1.ts。FirewallEndpoint 系列防火墙端点及其与 VPC 的关联firewallEndpoints、firewallEndpointAssociations支持在组织级与项目级创建与管理。UrlListsURL 列表资源供防火墙/安全策略引用。DnsThreatDetectorsDNS 威胁检测器提供get、list、patch等方法。这些资源在代码中均表现为projects.locations.resource.method(params)的调用形式方法参数的类型Params$...与方法返回类型Schema$...都由生成器在 v1.ts 与 v1beta1.ts 中给出TypeScript 用户可获得完整的 IDE 提示与编译期校验。八、项目规范License、贡献与问题反馈按模块 README 的约定本库遵循以下项目规范LicenseApache 2.0完整许可证文本见仓库根目录的 LICENSE。模块自身也通过package.json的license: Apache-2.0字段声明贡献欢迎提交 Pull Request官方建议先开一个 Issue 讨论再动手详细规范见 CONTRIBUTING.md问题反馈开发相关问题可到 StackOverflow 的google-api-nodejs-client标签下提问发现 bug 请通过 Issues 提交并提供可复现的示例代码规范模块内置gts fix自动修复与gts check静态检查脚本使用 Google TypeScript Style可通过npm run compiletsc -p .本地编译npm run webpack打包浏览器可用版本。九、总结googleapis/networksecurity是 Network Security API 的官方维护模式客户端适合已有存量应用继续使用它通过 index.ts 暴露v1与v1beta1两个版本覆盖地址组、授权策略、TLS 策略、安全配置、防火墙端点等丰富的网络安全管理能力。若你正开始一个新项目请优先评估官方推荐的google-cloud/network-security库若你维护既有代码或希望与googleapis全家桶统一集成本模块仍是一个可靠的选择——只需注意其 Node.js 22 的运行环境要求并掌握本文所述的 ADC 认证、资源层级调用与 LRO 轮询模式即可。赞分享后端【免费下载链接】google-api-nodejs-clientGoogles officially supported Node.js client library for accessing Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT (Service Tokens) is included.项目地址https://gitcode.com/gh_mirrors/go/google-api-nodejs-client点击查看免费下载相关推荐使用 google-api-nodejs-client 的 backupdr 模块调用 Google Backup and DR Service API使用 google api nodejs client 的 backupdr 模块调用 Google Backup and DR Service API 导读后端google-api-nodejs-client 中的 certificatemanager 模块使用 Node.js 管理 Google Certificate Manager 证书google api nodejs client 中的 certificatemanager 模块使用 Node.js 管理 Google Certifica后端google-api-nodejs-client 中 appsactivityDrive Activity API客户端使用指南google api nodejs client 中 appsactivityDrive Activity API客户端使用指南 导读 appsactivi后端上一篇GPT4Free项目中的图像生成API参数传递问题解析下一篇5分钟解决黑苹果音频难题AppleALC实战指南与深度配置创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑