Functions
Functions are units of execution in the AssemblyLift framework. They are grouped into services, and are themselves structured according to the chosen language (e.g with Rust each function is a Cargo crate).
Each function is compiled to a WebAssembly module, compatible with the AssemblyLift ABI.
Make a New Function
You can create a new function in an existing service with the make
command:
$ asml make function myservice.myfunction
where myservice
is the name of the service in which you would like to make the function named myfunction
.
Defining an API
AssemblyLift functions can be exposed via an HTTP API. When using the AWS Lambda backend, this API is deployed to Amazon API Gateway.
[service]
name = "myservice"
[api.functions.myfunction]
name = "myfunction"
http = { verb = "GET", path = "/" }
You define an API for a function using the http
field, which accepts verb
and path
.
Defining an Authorizer
AssemblyLift supports defining authorizers and attaching them per-function. Authorizers require an HTTP API to be defined for the function.
The Lambda backend currently supports IAM and JWT authorizers.
[service]
name = "myservice"
[api.functions.myfunction]
name = "myfunction"
http = { verb = "GET", path = "/" }
authorizer_id = "cognito"
[api.authorizers.cognito]
auth_type = "JWT"
audience = ["clientid"]
issuer = "https://cognito-idp.us-east-1.amazonaws.com/myuserpoolid"
Last updated
Was this helpful?