What Is An Azure Function?
- On demand via an http (HttpTrigger)
- Periodically (TimerTrigger)
- Trigger by blob storage, queue or event hub creation
Learn more : Create Your First Azure Function.
This is the default source code for a Http triggered function.
module.exports = function(context, req) {
context.log('Node.js HTTP trigger function processed a request. RequestUri=%s',
req.originalUrl);
if (req.query.name || (req.body && req.body.name)) {
context.res = {
status: 200,
body: "Hello " + (req.query.name || req.body.name) };
}
else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body" };
}
context.done();
};
Code Structure
Here is my attempt to write a Azure Function and build some re-usable code.
function AzureFunctionBaseClass(context, req) {
this._context = context;
this._req = req;
this.__terminate = function(m, status) {
this._context.res = { status: status, body: m };
this._context.done();
}
this.succeed = function(m) { this.__terminate(m , 200); }
this.fail = function(m) { this.__terminate(m , 400); }
this.getQueryString = function() { return this._req.query; }
this.getBody = function() { return this._req.body; }
this.log = function(s) { this._context.log('[log]%s', s); }
this.getParameter = function(n) { return this.getQueryString()[n]; }
this.run = function() {
var s = "Inherited run "+(new Date());
this.log(s);
this.succeed(s);
}
this.__init__ = function() {
this.log("__init__ running");
}
}
AzureFunctionBaseClass.create = function(functionType, context, req) {
var l = new AzureFunctionBaseClass(context, req);
functionType.call(l, context, req);
l.__init__();
return l;
}
function MyAzureFunction(context, req) {
this.run = function() {
var s = "Hello " + this.getParameter("name");
this.log(s);
this.succeed(s);
}
}
module.exports = function(context, req) {
AzureFunctionBaseClass.create(MyAzureFunction, context, req).run();
}
How to call the Lambda Function from CURL.exe
C:\Tools\PortableGit\bin>curl.exe -i -X GET "https://blankfunction.azurewebsites.net/api/HttpTrigger NodeJS1?code=btguk5d3qu2dbvphut20c6jemi9745qootvk9pwwb61fo8byb98ugt79drusztwfjtahu6p3nmi&name=Freddy " HTTP/1.1 200 OK Cache-Control: no-cache Pragma: no-cache Content-Length: 12 Content-Type: text/plain; charset=utf-8 Expires: -1 Server: Microsoft-IIS/8.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Set-Cookie: ARRAffinity=1d89995dbeffc7cc6215c40b5a2e03653fa822c763f464b0126bbb6bc29cc2d8;Path=/;Doma in=blankfunction.azurewebsites.net Date: Wed, 13 Apr 2016 12:54:59 GMT Hello Freddy C:\Tools\PortableGit\bin>
Nice blog. concepts are really arranged very neat in the manner.
ReplyDeleteMicrosoft Windows Azure Training in Chennai | Certification | Online Course Training | Microsoft Windows Azure Training in Bangalore | Certification | Online Course Training | Microsoft Windows Azure Training in Hyderabad | Certification | Online Course Training | Microsoft Windows Azure Training in Online | Certification | Online Course Training