GCP 元数据: Node.js 客户端
从谷歌云平台环境获取元数据
各版本的更改一览表载于 变化。 。 。 .
更多信息,请访问Cloud APIs的客户端库,包括老年人 Google APIs 客户端图书馆, in 客户端图书馆解释。 。 。 .
目录 :
快速启动
安装客户端库
npm install gcp-metadata
使用客户端库
const gcpMetadata = require('gcp-metadata');
async function quickstart() {
// check to see if this code can access a metadata server
const isAvailable = await gcpMetadata.isAvailable();
console.log(`Is available: ${isAvailable}`);
// Instance and Project level metadata will only be available if
// running inside of a Google Cloud compute environment such as
// Cloud Functions, App Engine, Kubernetes Engine, or Compute Engine.
// To learn more about the differences between instance and project
// level metadata, see:
// https://cloud.google.com/compute/docs/storing-retrieving-metadata#project-instance-metadata
if (isAvailable) {
// grab all top level metadata from the service
const instanceMetadata = await gcpMetadata.instance();
console.log('Instance metadata:');
console.log(instanceMetadata);
// get all project level metadata
const projectMetadata = await gcpMetadata.project();
console.log('Project metadata:');
console.log(projectMetadata);
}
}
quickstart();
检查是否可用的元数据服务器
const isAvailable = await gcpMetadata.isAvailable();
访问所有元数据
const data = await gcpMetadata.instance();
console.log(data); // ... All metadata properties
访问特定属性
const data = await gcpMetadata.instance('hostname');
console.log(data); // ...Instance hostname
const projectId = await gcpMetadata.project('project-id');
console.log(projectId); // ...Project ID of the running instance
访问有相对路径的嵌入属性
const data = await gcpMetadata.instance('service-accounts/default/email');
console.log(data); // ...Email address of the Compute identity service account
访问带有查询参数的特定属性
const data = await gcpMetadata.instance({
property: 'tags',
params: { alt: 'text' }
});
console.log(data) // ...Tags as newline-delimited list
使用自定义信头的访问
await gcpMetadata.instance({
headers: { 'no-trace': '1' }
}); // ...Request is untraced
照顾大量有价值的财产
在某些情况下,元数据服务返回的价值财产数目可能是:
太大不能作为 JavaScript 数字来代表 。 在这种情况下,我们返回
这些值为: BigNumber 对象(来自 大数.js 图书馆)。 数字
符合 JavaScript 数字范围的文本将作为正常数字返回
数值.
const id = await gcpMetadata.instance('id');
console.log(id) // ... BigNumber { s: 1, e: 18, c: [ 45200, 31799277581759 ] }
console.log(id.toString()) // ... 4520031799277581759
环境变量
-
GCE_METADATA_HOST: 提供替代主机或IP来进行针对的搜索(例如,您正在通过自定义代理服务器连接).例如:
export GCE_METADATA_HOST='169.254.169.254' -
DETECT_GCP_RETRIES: 数字表示在元数据检索中应尝试的重试次数. -
DEBUG_AUTH: 发送调试日志 -
METADATA_SERVER_DETECTION:配置想要的元数据服务器可用性检查行为.assume-present:不要试图浏览元数据服务器,但假设它存在none: 不要尝试浏览元数据服务器, 但不要尝试使用它bios-only:将BIOS探测器的结果作为犬科(不要倒回平平)ping-only:跳过BIOS探测器,直接去接
样本
样本在 samples/ 目录。 每个样本 README.md 有运行样本的指示.
| 样本 | 源代码 | 试试看 |
|---|---|---|
| 快速启动 | 源代码 | ![]() |
这个 GCP 元数据节点.js 客户端 API 参考 文档 还包含样品.
支持的节点.js版本
我们的客户端图书馆跟着 节点.js发布时间表。 。 。 . 图书馆兼容所有当前 活动 财务报告和审定财务报表 维修 版本 节点.js. 如果你在使用"节点"(Node.js)的报废版本,我们建议你更新 尽快到积极支持的LTS版本.
Google 的客户端库支持在 a 上的 Node.js runtimes 的遗留版本 以下列警告为依据:
- 后遗症版本不进行连续整合测试.
- 一些安全补丁和特性不能被后移植.
- 依赖关系不能不断更新.
设有针对Node.js的一些报废版本的客户端图书馆,以及
可以通过 npm 安装 秒数。 。 。 .
立面遵循命名惯例 legacy-(version)。 。 。 .
譬如说, npm install gcp-metadata@legacy-8 安装客户端库
用于兼容Node.js 8的版本.
版本
这个图书馆跟随 语义版本。 。 。 .
这个图书馆被认为是 稳定。代码表面不会改变向后兼容的方式 除非绝对必要(例如,由于关键的安全问题)或 大量贬值期。 问题和要求 稳定 图书馆 以最高优先处理.
更多信息 : 谷歌云平台启动阶段
捐款
欢迎捐款! 见 贡献指南。 。 。 .
请注意: README.md,则 samples/README.md, (中文(简体) ),
和该寄存器中的各种配置文件(包括 .nycrc 财务报告和审定财务报表 tsconfig.json(中文(简体) )
从中央模板生成。 要编辑这些文件之一, 请编辑
输入模板
目录。 。 。 .
许可证
Apache 版本 2.0
见 自由主义
