Microsoft Azure SDK for Node.js
This project provides a Node.js package that makes it easy to consume and manage Microsoft Azure Services.
Features
Getting Started
Install from npm
We provide both fine-grained modules for different Microsoft Azure services which you can install separately, and an all-up module which contains everything.
Notice: we haven't provided fine-grained modules for every supported Microsoft Azure services yet. This will come soon.
Install the all-up module
npm install azure
Install the fine-grained modules
- Storage:
npm install azure-storage
- Core management:
npm install azure-mgmt
- Compute management:
npm install azure-mgmt-compute
- Web Site management:
npm install azure-mgmt-website
- Virtual Network managment:
npm install azure-mgmt-vnet
- Storage Account management:
npm install azure-mgmt-storage
- SQL Database management:
npm install azure-mgmt-sql
- Service Bus management:
npm install azure-mgmt-sb
Usage
Storage
For using Storage Blobs, Tables, Files, and Queues visit the Microsoft Azure Storage SDK for Node.js ReadMe file.
Service Bus Queues
Service Bus Queues are an alternative to Storage Queues that might be useful in scenarios where more advanced messaging features are needed (larger message sizes, message ordering, single-operaiton destructive reads, scheduled delivery) using push-style delivery (using long polling).
The createQueueIfNotExists method can be used to ensure a queue exists:
var serviceBusService = azure.createServiceBusService();
serviceBusService.createQueueIfNotExists('taskqueue', function(error){
if(!error){
}
});
The sendQueueMessage method can then be called to insert the message into the queue:
var serviceBusService = azure.createServiceBusService();
serviceBusService.sendQueueMessage('taskqueue', 'Hello world!', function(
if(!error){
// Message sent
}
});
It is then possible to call the receiveQueueMessage method to dequeue the message.
var serviceBusService = azure.createServiceBusService();
serviceBusService.receiveQueueMessage('taskqueue', function(error, serverMessage){
if(!error){
}
});
Service Bus Topics
Service Bus topics are an abstraction on top of Service Bus Queues that make pub/sub scenarios easy to implement.
The createTopicIfNotExists method can be used to create a server-side topic:
var serviceBusService = azure.createServiceBusService();
serviceBusService.createTopicIfNotExists('taskdiscussion', function(error){
if(!error){
}
});
The sendTopicMessage method can be used to send a message to a topic:
var serviceBusService = azure.createServiceBusService();
serviceBusService.sendTopicMessage('taskdiscussion', 'Hello world!', function(error){
if(!error){
}
});
A client can then create a subscription and start consuming messages by calling the createSubscription method followed by the receiveSubscriptionMessage method. Please note that any messages sent before the subscription is created will not be received.
var serviceBusService = azure.createServiceBusService(),
topic = 'taskdiscussion',
subscription = 'client1';
serviceBusService.createSubscription(topic, subscription, function(error1){
if(!error1){
serviceBusService.receiveSubscriptionMessage(topic, subscription, function(error2, serverMessage){
if(!error2){
}
});
}
});
Notification Hubs
Notification hubs allow you to send notifications to WNS, APNS, GCM, and MPNS receivers.
To create a notification hub, use the method createNotificationHub.
var serviceBusService = azure.createServiceBusService();
serviceBusService.createNotificationHub('hubName', function (err) {
if (!err) {
}
});
To send notification using native format to the notification hub use the methods of the wns, apns, gcm, mpns objects. For a full reference on WNS method templates, check http://msdn.microsoft.com/en-us/library/windows/apps/hh779725.aspx.
To send template (cross-platform) notifications use the send method on the NotificationHubService class.
var notificationHubService = azure.createNotificationHubService('hubName');
notificationHubService.wns.sendTileSquarePeekImageAndText01(
null,
{
image1src: 'http://foobar.com/dog.jpg',
image1alt: 'A dog',
text1: 'This is a dog',
text2: 'The dog is nice',
text3: 'The dog bites',
text4: 'Beware of dog'
},
function (error) {
if (!error) {
}
});
notificationHubService.apns.send(
null,
{
alert: 'This is my toast message for iOS!',
expiry: expiryDate
},
function (error) {
if (!error) {
}
});
notificationHubService.gcm.send(
null,
{
data: { message: 'Here is a message' }
},
function (error) {
if (!error) {
}
});
notificationHubService.mpns.sendToast(
null,
{
text1: 'A dog',
text2: 'This is a dog'
},
function (error) {
if (!error) {
}
});
notificationHubService.send(
null,
{
message: 'This is my template notification',
goesTo: 'all registrations irrespective of the platform'
},
function (error) {
if (!error) {
}
});
To create registrations (for both native and template notifications), use the creation methods in the wns, apns, gcm, mpns. To retrieve, update and delete existing registrations, use the following methods in NotificationHubService: getRegistration, listRegistrations, listRegistrationsByTag, updateRegistration, and deleteRegistration.
Service Runtime
The Service Runtime allows you to interact with the machine environment where the current role is running. Please note that these commands will only work if your code is running in a worker role inside the Azure emulator or in the cloud.
The isAvailable method lets you determine whether the service runtime endpoint is running on the local machine. It is good practice to enclose any code that
uses service runtime in the isAvailable callback.
azure.RoleEnvironment.isAvailable(function(error, available) {
if (available) {
}
});
The getConfigurationSettings method lets you obtain values from the role's .cscfg file.
azure.RoleEnvironment.getConfigurationSettings(function(error, settings) {
if (!error) {
}
});
The getLocalResources method lets you find the path to defined local storage resources for the current role. For example, the DiagnosticStore
resource which is defined for every role provides a location for runtime diagnostics and logs.
azure.RoleEnvironment.getLocalResources(function(error, resources) {
if(!error){
}
});
The getCurrentRoleInstance method lets you obtain information about endpoints defined for the current role instance:
azure.RoleEnvironment.getCurrentRoleInstance(function(error, instance) {
if (!error && instance['endpoints']) {
}
});
The getRoles method lets you obtain information about endpoints in role instances running on other machines:
azure.RoleEnvironment.getRoles(function(error, roles) {
if(!error){
}
});
Need Help?
Learn More
Contribute