NodeJs 有没有办法检测它当前是在 EC2 实例上运行还是在本地运行?我有一些功能会根据部署位置而变化。我可以检测到 IP 地址,但我想要更动态的东西,而不是绑定(bind)到特定的服务器配置。
最佳答案
我们可以打 EC2 Metadata endpoint判断是否有 EC2 实例。
此 curl 仅在 EC2 实例中有效
curl http://169.254.169.254/latest/meta-data/
图书馆 node-ec2-metadata公开了一种易于使用的方法,该方法在幕后调用此元数据服务。
var metadata = require("node-ec2-metadata");
metadata.isEC2().then(function (onEC2) {
console.log("Running on EC2? " + onEC2);
});
要记住的一点,直接来自文档(因为他们点击了 HEAD url 并在 500 毫秒后超时):
The initial call may take up to 500ms on a non-EC2 host, but the result is cached so subsequent calls provide a result immediately
关于node.js - NodeJs - 检测应用程序是在 AWS 上还是在本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66647568/