@serverless/tencent-flask

Tencent Cloud Flask Serverless Component

Usage no npm install needed!

<script type="module">
  import serverlessTencentFlask from 'https://cdn.skypack.dev/@serverless/tencent-flask';
</script>

README

Serverless Python Flask Tencent Cloud

Tencent Flask Serverless Component

简体中文 | English

Introduction

Tencent Flask Serverless Component, support Restful API deploy, not supportting Flask command.

Content

  1. Prepare
  2. Install
  3. Create
  4. Configure
  5. Deploy
  6. Remove

0. Prepare

Before using this component, you need create a flask project, then add Flask and werkzeug in requirements.txt. Like below:

Flask==1.0.2
werkzeug==0.16.0

Then create your API service entry file app.py, below is a example:

from flask import Flask, jsonify
app = Flask(__name__)

@app.route("/")
def index():
    return "Hello Flash"

@app.route("/users")
def users():
    users = [{'name': 'test1'}, {'name': 'test2'}]
    return jsonify(data=users)

@app.route("/users/<id>")
def user(id):
    return jsonify(data={'name': 'test1'})

1. Install

Install the Serverless Framework globally:

$ npm install -g serverless

2. Create

Just create the following simple boilerplate:

$ touch serverless.yml
$ touch .env           # your Tencent api keys

Add the access keys of a Tencent CAM Role with AdministratorAccess in the .env file, using this format:

# .env
TENCENT_SECRET_ID=XXX
TENCENT_SECRET_KEY=XXX
  • If you don't have a Tencent Cloud account, you could sign up first.

3. Configure

# serverless.yml

MyComponent:
  component: '@serverless/tencent-flask'
  inputs:
    region: ap-guangzhou
    functionName: flask-function
    code: ./
    functionConf:
      timeout: 10
      memorySize: 128
      environment:
        variables:
          TEST: vale
      vpcConfig:
        subnetId: ''
        vpcId: ''
    apigatewayConf:
      protocol: https
      environment: release

4. Deploy

$ sls --debug

 

5. Remove

$ sls remove --debug

More Components

Checkout the Serverless Components repo for more information.