¿Hay alguna forma en NodeJs de detectar si se está ejecutando actualmente en una instancia EC2 o si se está ejecutando localmente? Tengo algunas funciones que cambian según el lugar donde se implementan. Puedo detectar la dirección IP pero quiero algo más dinámico, no vinculado a configuraciones de servidor específicas.
Podríamos alcanzar el punto final de metadatos de EC2 para determinar la instancia de EC2 o no.
Este curl funciona solo dentro de una instancia EC2
curl http://169.254.169.254/latest/meta-data/Library node-ec2-metadata expone un método fácil de usar que llama a este servicio de metadatos en segundo plano.
var metadata = require("node-ec2-metadata"); metadata.isEC2().then(function (onEC2) { console.log("Running on EC2? " + onEC2); });Punto a tener en cuenta, directamente desde los documentos (ya que golpean la URL HEAD y el tiempo de espera después de 500 ms):
La llamada inicial puede demorar hasta 500 ms en un host que no sea EC2, pero el resultado se almacena en caché para que las llamadas posteriores proporcionen un resultado de inmediato.