Display Node.js and Twilio SDK versions
Sometimes, such as when you are migrating to the latest version of Node.js, you want to verify what version of Node.js your Functions are running on. The same can apply to the version of the Twilio Node.js SDK that you are using, since its version determines what functionality is available via the context.getTwilioClient helper.
The following code sample shows some helpful values that you can return or log for verification. To get started, follow the instructions below to create a Service and Function to host and execute the example.
Before you run any of the examples on this page, create a Function and paste the example code into it. You can create a Function in the Twilio Console or by using the Serverless Toolkit.
If you prefer a UI-driven approach, complete these steps in the Twilio Console:
- Log in to the Twilio Console and navigate to Develop > Functions & Assets. If you're using the legacy Console, open the Functions tab.
- Functions are contained within Services. Click Create Service to create a new Service.
- Click Add + and select Add Function from the dropdown.
- The Console creates a new protected Function that you can rename. The filename becomes the URL path of the Function.
- Copy one of the example code snippets from this page and paste the code into your newly created Function. You can switch examples by using the dropdown menu in the code rail.
- Click Save.
- Click Deploy All to build and deploy the Function. After deployment, you can access your Function at
https://<service-name>-<random-characters>-<optional-domain-suffix>.twil.io/<function-path>
For example:test-function-3548.twil.io/hello-world.
You can now invoke your Function with HTTP requests, configure it as the webhook for a Twilio phone number, call it from a Twilio Studio Run Function Widget, and more.
Copy and paste the following example code into your newly minted Function. Ensure that your Function is public, save your changes, and deploy the Service that contains this Function.
1exports.handler = (context, event, callback) => {2// PATH represents the relative path of this function3// This value does not include the domain name4const path = context.PATH;5const nodeVersion = process.version;6const twilioVersion = require('twilio/package.json').version;78console.log(`Function path: ${path}`);9console.log(`Node.js version: ${nodeVersion}`);10console.log(`Twilio SDK version: ${twilioVersion}`);1112return callback(null, {13status: 'complete',14path,15nodeVersion,16twilioVersion,17});18};
While running live logs (click Enable live logs in the Console), make a GET request to your Function using a tool such as curl or Postman. You will then see logs displaying the Function's path, as well as the versions of Node.js and the Twilio SDK. Your HTTP client will also receive the same data as JSON.
For example, a public Function named /versions would log the following (with different versions, depending on when you're reading this):
1Function path: /versions2Node.js version: v14.18.13Twilio SDK version: 3.72.0
It would also return the following JSON response:
1{2"status": "complete",3"path": "/versions",4"nodeVersion": "v14.18.1",5"twilioVersion": "3.72.0"6}
Info
This sample uses context.PATH to log the relative path of this Function. There are several other helpful, built-in process variables that you may wish to log as well.