npm

npm’s 2019 JavaScript ecosystem survey analysis is now available!Get your copy here »

serverless-rust

0.3.4 • Public • Published

serverless rust Build Status npm

A ⚡ Serverless framework ⚡ plugin for Rustlang applications 🦀

📦 Install

Install the plugin with npm

$ npm i -D serverless-rust

💡 This serverless plugin assumes you are building Rustlang lambdas targetting the AWS Lambda "provided" runtime. The AWS Lambda Rust Runtime makes this easy.

Add the following to your serverless project's serverless.yml file

service: demo
provider:
  name: aws
  runtime: rust
plugins:
  # this adds informs servleress to use 
  # the serverless-rust plugin 
  - serverless-rust
# creates one artifact for each function 
package:
  individually: true
functions:
  test:
    # handler value syntax is `{cargo-package-name}.{bin-name}` 
    # or `{cargo-package-name}` for short when you are building a 
    # default bin for a given package. 
    handler: your-cargo-package-name
    events:
      http:
          path: /test
          method: GET

💡 The Rust Lambda runtime requires a binary named bootstrap. This plugin renames the binary cargo builds to bootstrap for you before packaging. You do not need to do this manually in your Cargo configuration.

🖍️ customize

You can optionally adjust the default settings of the dockerized build env using a custom section of your serverless.yaml configuration

custom:
  # this section allows for customization of the default 
  # serverless-rust plugin settings 
  rust:
    # flags passed to cargo 
    cargoFlags: '--features enable-awesome'
    # custom docker tag 
    dockerTag: 'some-custom-tag'

🎨 Per function customization

If your serverless project contains multiple functions, you may sometimes need to customize the options above at the function level. You can do this by defining a rust key with the same options inline in your function specficiation.

functions:
  test:
    rust:
      # function specific flags passed to cargo 
      cargoFlags: '--features enable-awesome'
    # handler value syntax is `{cargo-package-name}.{bin-name}` 
    # or `{cargo-package-name}` for short when you are building a 
    # default bin for a given package. 
    handler: your-cargo-package-name
    events:
      http:
          path: /test
          method: GET

🤸 usage

Every serverless workflow command should work out of the box.

invoke your lambdas locally

$ npx serverless invoke local -f hello -d '{"hello":"world"}'

deploy your lambdas to the cloud

$ npx serverless deploy

invoke your lambas in the cloud directly

$ npx serverless invoke -f hello -d '{"hello":"world"}'

view your lambdas logs

$ npx serverless logs -f hello

🏗️ serverless templates

0.2.*

0.1.*

Older versions targeted the python 3.6 AWS Lambda runtime and rust crowbar and lando applications

Doug Tangren (softprops) 2018

install

npm i serverless-rust

Downloadsweekly downloads

53

version

0.3.4

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability