Skip to main content

Functions Framework Quick Start

This article introduces using the @cloudbase/functions-framework framework for development, which provides a more concise functional programming experience.

Prerequisites

Before you begin, make sure you have:

  • Have Node.js installed (v18 or later versions recommended)
  • Have a Tencent Cloud account with CloudBase service activated
  • Have basic knowledge of Node.js development

Step 1: Create a Project Directory

Create a new directory named my-web-function and go to the directory:

mkdir my-web-function
cd my-web-function

Step 2: Initialize Project Configuration

`package.json File:

{
"name": "my-web-function",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"@cloudbase/functions-framework": "^1.14.0"
}
}

Step 3: Write Sample Code

`index.js File:

exports.main = async function(event, context) {
const { method, path, headers, body } = event;

// Handle different HTTP methods
switch (method) {
case 'GET':
return {
statusCode: 200,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
message: 'Hello from Web Function',
path,
timestamp: new Date().toISOString()
})
};

case 'POST':
return {
statusCode: 201,
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
message: 'Data received',
data: JSON.parse(body || '{}')
})
};

default:
return {
statusCode: 405,
body: JSON.stringify({ error: 'Method not allowed' })
};
}
};

Step 4: Write a Startup Script

Create the scf_bootstrap file:

#!/bin/bash
node node_modules/@cloudbase/functions-framework/bin/tcb-ff.js --port=9000 --logDirname=/tmp/logs --interceptOutput=false --extendedContextKey=X-Cloudbase-Context
Note

The scf_bootstrap file must have executable permissions. On Linux/macOS systems, use the chmod +x scf_bootstrap command to set the permissions.

Step 5: Deploy to CloudBase HTTP cloud function

Prepare Deployment Files

Ensure your project directory contains the following files:

my-web-function/
|-- scf_bootstrap
├── package.json
└── index.js

Deploy via the Console

  1. Log in to the CloudBase Console
  2. Select your environment and go to the [Cloud Function] page
  3. Click [New Cloud Function]
  4. Select [HTTP cloud function]
  5. Fill in the function name (for example: helloworld)
  6. Select runtime: Node.js 18.x
  7. Select the [Local upload] method
  8. Package the project files into a zip file and upload it
  9. Click [OK] to complete the deployment

Deploy via CLI (Coming Soon)

Package the Project

If you need to package manually, you can use the following command:

# Create zip package
zip -r helloworld.zip package.json index.js

Step 7: Access Your Application

After successful deployment, you can refer to Web Client Invocation to configure custom domain access for

Next Steps