Azure
Don't know what a handler is? See the Architecture section.
This is a implementation that will return a function that expect to receive the following arguments: context and event, respectively.
function(context, event) {...}
Requirements
First, install the types for this adapter:
npm i --save-dev @azure/[email protected]
Customize
By default we use log property inside Context
as default logger for this library .
We detect when the log instance is created with createDefaultLogger and then
replace this instance with the instance inside Context
.
If you want to log using the original instance createDefaultLogger,
you can set the useContextLogWhenInternalLogger
option to false
for AzureHandlerOptions.
import { AzureHandler } from '@h4ad/serverless-adapter/handlers/azure';
const handler = new AzureHandler({
useContextLogWhenInternalLogger: false,
});
Usage
First, you need to configure your function.json
to be able to receive all requests from Azure.
{
"bindings": [
{
"authLevel": "anonymous",
"type": "httpTrigger",
"direction": "in",
"name": "req",
"route": "{*segments}"
},
{
"type": "http",
"direction": "out",
"name": "$return"
}
]
}
Then, you can import and call the method setHandler, as per the code below:
import { ServerlessAdapter } from '@h4ad/serverless-adapter';
import { AzureHandler } from '@h4ad/serverless-adapter/handlers/azure';
import { PromiseResolver } from '@h4ad/serverless-adapter/resolvers/promise';
import { HttpTriggerV4Adapter } from '@h4ad/serverless-adapter/adapters/azure';
import app from './app';
export default ServerlessAdapter.new(app)
.setHandler(new AzureHandler())
.setResolver(new PromiseResolver())
// continue to set the other options here.
// .setFramework(new ExpressFramework())
.addAdapter(new HttpTriggerV4Adapter())
.build();
Be careful when exporting the handler because in azure you must export default
and in DefaultHandler
you must export const handler
.
The above code will add support for Azure Http Trigger V4, to learn more about Http Trigger, see the adapter docs.
You MUST
use PromiseResolver to integrate with AzureHandler
, other resolvers didn't work with Azure.
Examples
You can see examples of how to use here.