Basic architecture

This section describes the basic architecture of SOULs Functions.

rspec

The big picture of SOULs Functions

SOULs use Google Cloud Functions.

Google Cloud Functions

  • No server provisioning, management or upgrades required
  • Automatic scaling according to load
  • Integrated monitoring, logging and debugging capabilities
  • Per-role and per-function levels of built-in security based on the principle of least privilege
  • Key networking features for hybrid and multi-cloud scenarios

By using Cloud Functions in SOULs, you can create applications not only with Ruby but also with Node.js , Python , and Go .

Runtime Versions
Ruby 2.7, 2.6
Node.js 16, 14, 12, 10
Python 3.9, 3.8, 3.7
Go 1.16, 1.13

Directory structure of SOULs Functions

Interactively with the souls create functions command

Select the runtime and version,

Automatically generate the files needed to deploy Cloud Functions.

$ souls create functions ${method_name}

SOULs Functions creates multiple Cloud Functions.

The function directory name is

cf-${Runtime}-${Function}

Runtime Version Function
Node.js 16 method1
Python 3.9 method2

The folders name will be

cf-node16-method1

cf-python39-method2

Once done,

It will be automatically generated if you need to go to the front CloudFuncion.

souls-app(Mother Dir)
├── apps
│   ├── api(API Dir)
│   ├── worker-mailer(Worker Dir)
│   ├── worker-scraper(Worker Dir)
│   ├── cf-node16-method1(Functions Dir)
│   ├── cf-python39-method2(Functions Dir)
│
├── config
├── github
├── sig
│    ├── api(RBS Dir)
│    ├── worker1(RBS Dir)
│    ├── worker2(RBS Dir)
│
├── Steepfile

SOULs Functions Command

Show SOULs Functions command list

souls functions help

$ souls functions help
Commands:
  souls functions all_url         # Get SOULs Functions All URL
  souls functions delete [name]   # Delete SOULs Functions
  souls functions deploy          # Deploy Cloud Functions
  souls functions describe        # Describe SOULs Functions
  souls functions dev             # Check SOULs Functions dev
  souls functions help [COMMAND]  # Describe subcommands or one specific subcommand
  souls functions url             # Get SOULs Functions URL

Create SOULs Functions