Crates.io | tencent_scf |
lib.rs | tencent_scf |
version | 0.1.3 |
source | src |
created_at | 2021-02-01 21:29:14.4649 |
updated_at | 2021-02-02 01:49:27.77638 |
description | Custom runtime for Tencent cloud serverless compute function |
homepage | |
repository | https://github.com/johnmave126/tencent_scf |
max_upload_size | |
id | 349407 |
size | 73,731 |
:warning: DISCLAIMER: The author is NOT affiliated with Tencent and the project is NOT endorsed by Tencent. This project was developed solely out of personal use.
There is a well-known crate lambda_runtime that provides a runtime for rust as AWS Lambda. Recently I need to run some service on Tencent cloud and it is also well-known that Tencent Serverless Compute Function is simply a replica of AWS Lambda with a worse name. So I created this library with sligtly lighter dependencies than lambda_runtime
and slightly different design decisions. It shouldn't be very hard to adapt an AWS Lambda to a Tencent Serverless Compute Function although concrete APIs are a little bit different.
The code below creates a simple function that receives an event with a firstName
field and returns a message to the caller, adapted from lambda_runtime
. Compiling the code requires json
feature enabled.
use serde_json::{json, Value};
use tencent_scf::{convert::AsJson, make_scf, Context};
type Error = Box<dyn std::error::Error + Send + Sync + 'static>;
fn main() {
let func = make_scf(func);
tencent_scf::start(func);
}
fn func(event: Value, _: Context) -> Result<Value, Error> {
let first_name = event["firstName"].as_str().unwrap_or("world");
Ok(json!({ "message": format!("Hello, {}!", first_name) }))
}
The deployment is almost the same as Deploy AWS Lambda. User should try to follow that guide to create, compile and build the function. We outline the steps as follows:
boostrap
, just like AWS Lambda.x86_64-unknown-linux-musl
target should be used, just like AWS Lambda.bootstrap.zip
file from step 2.Licensed under either of:
at your option.