1.2.2 • Published 2 years ago

@cchandragiri/runtime-handler v1.2.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

runtime-handler

Runtime Handler that bootstraps all Functions lambda requests

Scaffolding

See runtime-handler.json.

application (object)

An object to the Runtime Handler lambda function that bootstraps the RuntimeHandler app.

paths (object)

Path to all directories. Currently these are:

  • files: Private asset files not open to the public.
  • public: Public asset files open to the public.
  • handlers: Path to all handlers. Each handler would live in a folder in this directory.
  • app: Root path to the app directory where RuntimeHandler app would live.

dependencies (object)

Contains all node_modules dependencies.

handlers (objects)

A key/value pair of url path to handler file path. The format is:

{
    "url/path": {
        "path": "folderName/fileName.functionName"
    },
    "url/path": "path/to/public/asset/file"
}

If the value is a string, then we treat this as a public asset file (for example to a CSS file or an HTML file). If the value is an object, then we treat this as a handler.

The path is relative to the paths.handlers.

Here is a simple example:

{
    "incoming_call": {
        "type": "simple",
        "path": "ivr/index.handler"
    },
    "incoming_message": {
        "type": "advanced",
        "path": "sms/index.handler"
    },
    "index.html": "myApp.html"
}

There are two handler paths: /incoming_call and /incoming_message:

// URL /incoming_call to file path /var/www/handlers/ivr/index.js
exports.handler = function (event, context, callback) {
    // Do cool things
}

// URL /incoming_message to file path /var/www/handlers/sms/index.js
exports.handler = function (context, request, response) {
    // Do even cooler things
}

The public/static path index.html refers to the file /var/www/files/myApp.html.

Release Process

  1. Change the version in the package.json of runtime-handler (this repo).
  2. Create a release here: https://build.corp.twilio.com/job/serverless.runtime-handler.master/
  3. Use the release-runtime-handler script (included in this repo) to put this version in S3.
  4. Redeploy serverless-packager (force redeploy) so that the hosts are restarted and pull the new version from S3. Verify that it was successful by checking in /mnt/runtime-handlers on the packager hosts. You should see the version number as a directory name, and you can verify that the proper changes are in that version.
  5. Reach out to toolkit team to release the new version of Runtime-handler from their side.
  6. Deployments with the new version will succeed after the step 4.