Welcome to SOULs Serverless Application Framework!
SOULs はサーバーレスフルスタックフレームワークです。柔軟な Ruby GraphQL API と Worker はルーティングの必要がありません。 クラウド環境への自動デプロイ、CI/CD ワークフローを標準装備。開発者がビジネスロジックに集中し、楽しくコードが書けるような環境を目指しています。
SOULs バックエンドには API
と Worker
の 2 つのタイプがあります。
API
は主にデータをフロントエンドへ提供します。Worker
は主に タスク
の処理を行います
現在のバージョンでは SOULs API
と Worker
を Github Actions を使って Google Cloud Run へそれぞれデプロイします。
SOULs フレームワークでは Monorepo によって一つのパッケージでアプリケーションを管理します。
SOULs creates 2 types of framework.
- API - GraphQL (Ruby) - Simple API - Cloud Run
- Worker - Google Pub/Sub Messaging Worker API (Ruby) - Cloud Run
- Google Cloud Run
- Google Cloud SQL
- Google Cloud Pub/Sub
- Google Cloud Storage
- Google Cloud IAM
- Google Cloud Container Registry
- Google Firebase
- Google Cloud Scheduler
- Google Cloud VPC
- Google Cloud Nat
- Github Actions
Add this line to your application's Gemfile:
gem 'souls'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install souls
And Create Your APP
$ souls new app_name
$ cd apps/api/app_name
$ bundle
$ souls s
Check your GraphQL PlayGround
localhost:4000/playground
Gemfile
, Gemfile.lock
を最新のバージョンに自動更新します。
souls upgrade gemfile
除外したい gem
は config/souls.rb
内の
config.fixed_gems
の配列に追加します。
Souls.configure do |config|
config.app = "souls-api"
config.project_id = "souls-api"
config.region = "asia-northeast1"
config.endpoint = "/endpoint"
config.strain = "api"
config.fixed_gems = ["selenium-webdriver"]
config.workers = []
end
SOULs サーバーレスアプリケーションフレームワーク ドキュメントはこちらから
After checking out the repo, run bin/setup
to install dependencies. Then, run souls t
to run the tests. You can also run souls c
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/elsoul/souls. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the Apache-2.0 License.
Everyone interacting in the HotelPrice project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.