fbpx

Frequently Asked Questions

FAQ

Is faastRuby a framework on top of AWS Lambda, Azure Functions, or other serverless provider?

No. faastRuby Cloud is its own thing - a serverless FaaS platform built from the ground up, with focus on Ruby and Crystal.

Is faastRuby just a wrapper for OpenFaaS, OpenWhisk, Kubeless, etc?

No. faastRuby Cloud is its own thing - a serverless FaaS platform built from the ground up, with focus on Ruby and Crystal.

When I deploy my functions to faastRuby Cloud, where do they go?

We are currently hosted at Digital Ocean, and will be opening other regions very soon.

Is faastRuby an open source project? Where's the code?

faastRuby is a mix of closed and open source components. The Cloud platform is closed source, while the development tools (faastRuby CLI and faastRuby Local) are open source. The code for CLI and Local are in our Github Repository.

Is faastRuby another Ruby web framework?

No. faastRuby a Serverless Software Development Platform for Ruby and Crystal, made of 2 main components:

  • faastRuby Cloud - where you deploy your applications and functions to.
  • faastRuby Local - an SDK that allows you to develop and test rich web applications and APIs in your machine and deploy your app as a set of distributed functions to the platform. Basically all you have to do is write code. No Ops required.

Is faastRuby going to replace Ruby on Rails?

No. Rails is an opinionated Ruby framework for building Web applications, while faastRuby apps are built with pure Ruby functions. You can require some of the Gems you use in your Rails apps, but that's totally up to you.

Can I deploy my Rails / Sinatra / etc app to faastRuby Cloud?

faastRuby Cloud is a FaaS platform. It takes care of all the operational aspects of running function-based applications.

Since functions are the unit of deployment of faastRuby apps, it is not possible to build an application using Ruby on Rails or Sinatra and run it as-is on faastRuby. You can, however, require some of the libraries from those frameworks in your functions.

How do I sign up / create an account?

With the gem installed, run faastruby signup and follow the instructions.

How do I login?

To login, run faastruby login and enter your username and password. When you login, the CLI will store an access token in your machine. This token is used by the CLI to perform authenticated requests to the platform.

How do I logout?

To logout, run faastruby logout. Note that it will only log you out from the current machine.

How do I logout from all machines?

If you need to logout from all machines, run faastruby logout --all.

My API credentials got compromised. How do I invalidate them?

To invalidate the token stored in the current machine, simple logout. To invalidate all tokens, logout from all machines with --all.

Where are the API credentials stored in my machine?

Your credentials are stored inside the YAML file ~/.faastruby/credentials.yml.

How do I delete my account?

At this moment this is not possible. But this functionality is coming very soon.

How do I change my password?

Same answer as above.

I didn't receive the confirmation email. How do I send it again?

Please check your SPAM folder. Transactional emails are getting harder these days.

If you want to try sending another one, run faastruby confirm-account --email you@example.com.

If that doesn't work, please join our Slack and chat with us there!

How do I add Gems to my project when I am using faastRuby Local?

When you are using faastRuby Local to build apps, it might feel like your project is a monolith. That feeling might make you instinctively add a Gemfile inside of the root folder of your project, but it won't work.

Each function is its own thing - they are independent from each other. You must add a Gemfile to all functions that require Gems. For example, if you have a function inside functions/foo/bar that requires the Gem jwt, you must create a Gemfile for that function on functions/foo/bar/Gemfile with gem 'jwt'.

What is a Workspace?

Workspaces are isolated environments where you deploy your functions to. They are represented by an URL like https://projectName-environment-abs123.tor1.faast.cloud.

To deploy the same project to different environments, run faastruby deploy --env environment_name from within the project's root directory. If you are using faastRuby Local with Sync Mode enabled, you can switch the workspace that is being used by starting Local with the argument --env. For example:

~/myproject$ faastruby local --sync --env foo

That command will start Local sync your development environment with the cloud workspace https://myproject-foo-abc123.faast.cloud.

How do I delete a Workspace from the Cloud?

To delete a workspace by hand, run faastruby destroy-workspace WORKSPACE_NAME.For example: faastruby destroy-workspace myworkspace-stage-abc123

If your workspace was create through a project on Local, you can destroy that workspace from within the project's root directory with a single command:

faastruby down --env ENVIRONMENT_NAME

Example:

~/myproject$ faastruby down --env stage

What happens when I delete a cloud workspace? Will my local files be deleted as well?

When you delete a cloud workspace, all functions and static assets that were hosted in that workspace will be destroyed. There's no way to recover that data, so be careful.

Your local files are not deleted when you destroy a cloud workspace.

Can I port my AWS Lambda functions to faastRuby?

If you have Ruby functions on Lambda, you can absolutely port them to faastRuby by changing the entrypoint method.

On faastRuby, all functions are called by the method named handler, defined in a file called handler.rb (Ruby) or handler.cr (Crystal). This method takes a single argument: event. The event object has the following attributes:

  • event.body - the request body.
  • event.headers - the request headers.
  • event.context - data upload by users to the platform and available at runtime. Usually used for secrets.
  • event.query_params - the request query params.

Can I run SQLite on faastRuby Cloud?

No. Functions can't write to the disk. That makes it not possible to use SQLite.

What should I do about databases then?

We recommend using Redis as database for your functions. You can get a free account with 30MB at Redis Cloud. If you really need relational data, consider using something like Prisma.io for now.

All that said, we have plans to address database connections without 3rd party involvement - stay tuned.