Skip to content

Instantly share code, notes, and snippets.

@fitzgeraldsteele
Last active November 12, 2019 18:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fitzgeraldsteele/248e2b7c9178258109de21a03847c546 to your computer and use it in GitHub Desktop.
Save fitzgeraldsteele/248e2b7c9178258109de21a03847c546 to your computer and use it in GitHub Desktop.
Simple node app to return data from Azure Metadata service
var express = require('express')
var app = express()
var os = require('os');
app.get('/', function (req, res) {
const request = require('request');
const options = {
url: 'http://169.254.169.254/metadata/instance?api-version=2019-03-11',
headers: {
'Metadata': 'true'
}
};
request(options, function (error, response, body) {
if (!error && response.statusCode == 200) {
var metadataObj = JSON.parse(body)
let ejs = require('ejs'),
html = ejs.render(
'<h2><%= metadataObj.compute.name %></h2> \
<p>Name: <%= metadataObj.compute.name %></p> \
<p>Private IP Address: <%= metadataObj.network.interface[0].ipv4.ipAddress[0].privateIpAddress %></p> \
<p>Resource id: <%= metadataObj.compute.resourceId %></p> \
<p>Scale set name: <%= metadataObj.compute.vmScaleSetName %></p></p> \
<p><pre><%= JSON.stringify(metadataObj, null, 2) %></pre></p>',
{ metadataObj: metadataObj }
)
res.send(html)
}
else {
console.log("Error " + response.statusCode)
}
})
})
app.get('/health', function (req, res) {
res.send('PONG!')
})
app.listen(3000, function () {
console.log('Hello world app listening on port 3000!')
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment