AssemblyLift
HomeRepo
v0.2
v0.2
  • Welcome to AssemblyLift
  • Learn AssemblyLift
    • Getting Started
    • Services
    • Functions
      • Rust Functions
    • How to Build
    • How to Deploy
  • Resources
    • The Lexicon
    • Tutorial: Build a "todo list" backend with AssemblyLift
Powered by GitBook
On this page
  • Make a New Function
  • Defining an API
  • Defining an Authorizer

Was this helpful?

  1. Learn AssemblyLift

Functions

PreviousServicesNextRust Functions

Last updated 4 years ago

Was this helpful?

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 .

service.toml
[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.toml
[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"

Amazon API Gateway