Easily deploy koa applications to Tencent Cloud's serverless infrastructure using this Serverless Framework Component. Your application will auto-scale, never charge you for idle time, and require little-to-zero administration.
$ npm install -g serverless
Just create serverless.yml
and .env
files
$ touch .env # your Tencent API Keys
$ touch app.js
$ touch serverless.yml
Add the access keys of a Tencent CAM Role with AdministratorAccess
in the .env
file, using this format:
# .env
TENCENT_SECRET_ID=123
TENCENT_SECRET_KEY=123
- If you don't have a Tencent Cloud account, you could sign up first.
Initialize a new NPM package and install koa:
npm init # then keep hitting enter
npm i --save koa # install koa
create your koa app in app.js
:
const koa = require('koa');
const app = koa();
app.use(async (ctx, next) => {
if (ctx.path !== '/') return next();
ctx.body = 'Hello from Koa';
});
// don't forget to export!
module.exports = app;
# serverless.yml
koa:
component: '@serverless/tencent-koa'
inputs:
region: ap-shanghai
$ sls --debug
DEBUG ─ Resolving the template's static variables.
DEBUG ─ Collecting components from the template.
DEBUG ─ Downloading any NPM components found in the template.
DEBUG ─ Analyzing the template's components dependencies.
DEBUG ─ Creating the template's components graph.
DEBUG ─ Syncing template state.
DEBUG ─ Executing the template's components graph.
DEBUG ─ Compressing function KoaComponent_7xRrrd file to /Users/dfounderliu/Desktop/temp/code/.serverless/KoaComponent_7xRrrd.zip.
DEBUG ─ Compressed function KoaComponent_7xRrrd file successful
DEBUG ─ Uploading service package to cos[sls-cloudfunction-ap-shanghai-code]. sls-cloudfunction-default-KoaComponent_7xRrrd-1572512568.zip
DEBUG ─ Uploaded package successful /Users/dfounderliu/Desktop/temp/code/.serverless/KoaComponent_7xRrrd.zip
DEBUG ─ Creating function KoaComponent_7xRrrd
DEBUG ─ Created function KoaComponent_7xRrrd successful
DEBUG ─ Starting API-Gateway deployment with name koa.TencentApiGateway in the ap-shanghai region
DEBUG ─ Using last time deploy service id service-n0vs2ohb
DEBUG ─ Updating service with serviceId service-n0vs2ohb.
DEBUG ─ Endpoint ANY / already exists with id api-9z60urs4.
DEBUG ─ Updating api with api id api-9z60urs4.
DEBUG ─ Service with id api-9z60urs4 updated.
DEBUG ─ Deploying service with id service-n0vs2ohb.
DEBUG ─ Deployment successful for the api named koa.TencentApiGateway in the ap-shanghai region.
koa:
region: ap-shanghai
functionName: KoaComponent_7xRrrd
apiGatewayServiceId: service-n0vs2ohb
url: http://service-n0vs2ohb-1300415943.ap-shanghai.apigateway.myqcloud.com/release/
36s › koa › done
You can now visit the output URL in the browser, and you should see the koa response.
$ sls remove --debug
DEBUG ─ Flushing template state and removing all components.
DEBUG ─ Removed function KoaComponent_MHrAzr successful
DEBUG ─ Removing any previously deployed API. api-kf2hxrhc
DEBUG ─ Removing any previously deployed service. service-4ndfl6pz
13s › koa › done
Checkout the Serverless Components repo for more information.