SpinアプリをFermyon Cloudにデプロイする
Introduction
以前、Spinという、WASMを使うイベント駆動型フレームワークを紹介しました。
RustやGoで実装できるシンプルなフレームワークなのですが、
先日のアップデートでFermyon Cloudにデプロイできるようになってました。
※ Fermyon Cloudは2022/11月時点ではオープンベータです
FermyonはさきほどのSpinフレームワークの開発元であり、
Fermyon PlatformはSpinやSpin CLI、管理機能などの
関連するツールやサービスをまとめたプラットフォームです。
そして、Fermyon Platformをクラウドサービスとして
使えるようにしたものが、Fermyon Cloudです。
今回は、この前と同じくSpinをつかったアプリを作成し、
Fermyon Cloudにデプロイしてみます。
Environment
- MacBook Pro (13-inch, M1, 2020)
- OS : MacOS 13.0.1
- rust : 1.65.0
Setup
まずはspin cliをインストールして所定の位置へ移動しましょう。
% curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash % sudo mv spin /usr/local/bin/
0.6がインストールされていればOKです。
% spin --version spin 0.6.0 (12a5037 2022-10-21)
提供されているテンプレートのインストールをしておきます。
% spin templates install --git https://github.com/fermyon/spin
newコマンドでプロジェクトを作成します。
今回もhttp-rustを選択。
% spin new Pick a template to start your project with: http-c (HTTP request handler using C and the Zig toolchain) http-go (HTTP request handler using (Tiny)Go) http-grain (HTTP request handler using Grain) > http-rust (HTTP request handler using Rust) http-swift (HTTP request handler using SwiftWasm) http-zig (HTTP request handler using Zig) redis-go (Redis message handler using (Tiny)Go) redis-rust (Redis message handler using Rust)
このあとプロジェクト名やパスを設定します。
適当な名前(ここではspin-appと指定)を設定してあとはデフォルトで作成しましょう。
生成されたコードはそのままで、ビルドと起動をします。
% cd spin-app/ % spin build % spin up Serving http://127.0.0.1:3000 Available Routes: spin-app: http://127.0.0.1:3000 (wildcard)
curlで動作確認。問題なく動いてます。
% curl http://127.0.0.1:3000 Hello, Fermyon
Fermyon Cloudにデプロイ
↑のSpinアプリをFermyon Cloudにデプロイするのは簡単です。
下記のようにspin deployコマンドを実行するだけです。
% spin deploy Copy your one-time code: XXXXXXX <-コードが表示 ...and open the authorization page in your browser: https://cloud.fermyon.com/device-authorization <ーここで認証 Waiting for device authorization...
one-timeコードがコンソールに表示され、
認証用のURLが表示されます。
ブラウザでアクセスすると、↓のような画面が表示されるので、
Githubログインして認証しましょう。
認証に成功すると、デプロイが実行されて
Fermyon CloudでのURLが発行されます。
Device authorized! Uploading spin-app version 0.1.0+rxxxxxx... Deploying... Waiting for application to become ready........ ready Available Routes: spin-app: https://spin-app-xxxxxxxx.fermyon.app (wildcard)
こちらも問題なくアクセスできました。
% curl https://spin-app-xxxxxxxx.fermyon.app Hello, Fermyon
また、Fermyon cloudの画面右上からログインすると、
ダッシュボードにアクセスできます。
ここではデプロイしたアプリのステータスやログの確認ができます。
Summary
Spinアプリを簡単にデプロイして公開することができました。
最近はこういったWASM系のPaaSが増えてきてますね。
Fermyon Cloudをはじめ、WASM界隈の今後が楽しみです。