node-armclient
node-armclient
is a very simple client to interact with the Azure Resource Manager API.
npm install --save armclient
Usage
Initialization
ES5:
var ArmClient = require('armclient');
var client = ArmClient({
subscriptionId: '111111-2222-3333333',
auth: ArmClient.clientCredentials({
tenantId: '444444-555555-666666666',
clientId: '777777-888888-999999999',
clientSecret: 'aaaabbbbbccccc'
})
});
ES6:
import ArmClient, { clientCredentials } from 'armclient';
const client = ArmClient({
subscriptionId: '111111-2222-3333333',
auth: clientCredentials({
tenantId: '444444-555555-666666666',
clientId: '777777-888888-999999999',
clientSecret: 'aaaabbbbbccccc'
})
});
If you already have a token for the API (eg: through an OAuth2 consent flow), you can also initialize the client with that token:
import ArmClient, { tokenCredentials } from 'armclient';
const client = ArmClient({
subscriptionId: '111111-2222-3333333',
auth: ArmClient.tokenCredentials({
accessToken: 'abcdefg'
})
});
GET
An example of how you can get resources in your subscription and how you can specify the querystring:
client.get('/resourceGroups/lab/providers/Microsoft.Automation/automationAccounts', { 'api-version': '2015-10-31' })
.then((res) => {
console.log(res.body);
console.log(res.headers);
})
.catch((err) => {
console.log(err);
});
Or you can also specify the full path:
client.get('https://management.azure.com/subscriptions/111-222-333-444/resourceGroups/lab/providers/Microsoft.Automation/automationAccounts', { 'api-version': '2015-10-31' })
.then((res) => {
console.log(res.body);
console.log(res.headers);
})
.catch((err) => {
console.log(err);
});
POST/PUT/DELETE
For POST
/PUT
/DELETE
the syntax is the same but you also specify the body of the request (the payload you want to send to the API):
const payload = {
name: 'abc',
storageAccount: 'def'
};
client.post('/resourceGroups/lab/providers/Something/register', { 'api-version': '2015-10-31' }, payload)
.then((res) => {
console.log(res.body);
console.log(res.headers);
})
.catch((err) => {
console.log(err);
});
client.put('/resourceGroups/lab/providers/Something/register', { 'api-version': '2015-10-31' }, payload)
.then((res) => {
console.log(res.body);
console.log(res.headers);
})
.catch((err) => {
console.log(err);
});
client.del('/resourceGroups/lab/providers/Something/register', { 'api-version': '2015-10-31' }, payload)
.then((res) => {
console.log(res.body);
console.log(res.headers);
})
.catch((err) => {
console.log(err);
});
Provider
You can also create a client which is scoped to a Resource Group
and a Resource Provider
, eg:
client.provider('my-resource-group', 'Microsoft.Compute')
.put('/virtualMachines/myvm1', { 'api-version': '2015-01-01' }, payload)
.then((res) => {
console.log(res.body);
console.log(res.headers);
});