Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
33
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@Anharu

Rustで超簡単に無料でnowにデプロイできちゃう

NowというPaaSをご存知でしょうか。
コマンドラインにnowと打つだけで、デプロイが出来ちゃいます。
Rustがサポートされたので、実際にやって見ましょう。

Cargoを使う方法と、Cargoを使わない方法が用意されているようですが、普通Rustでプロジェクトを作るときはCargoを使うので、Cargoを使って、やって見ましょう

nowのインストール

npm i -g now

これだけ。npmかyarnでインストールしてくださいね。

nowのサインアップとログイン

https://zeit.co/signup でサインアップ

CLIで

now login

しましょう。

nowのプロジェクトを作る

cargo new now-rust-example

now-rust-exampleのところはなんでもいいです。

Cargo.tomlに依存パッケージを書く

Cargo.toml
[dependencies]
http = "0.1.16"
now_lambda = "0.1.2"

httpnow_lambdaを追加する。

src/main.rsを編集する

src/main.rs

use http::{header, StatusCode};
use now_lambda::{error::NowError, lambda, IntoResponse, Request, Response};
use std::error::Error;

fn handler(request: Request) -> Result<impl IntoResponse, NowError> {
    let uri = request.uri();
    let response = Response::builder()
        .status(StatusCode::OK)
        .header(header::CONTENT_TYPE, "text/html")
        .body(format!("Hello,World! This is lambda written by Rust. \n You made a request to the following URL: {}", uri))
        .expect("failed to render response");

    Ok(response)
}

// Start the runtime with the handler
fn main() -> Result<(), Box<dyn Error>> {
    Ok(lambda!(handler))
}

now.jsonで設定する

now.json
{
  "name": "now-rust-example",
  "version": 2,
  "builds": [
    {
      "src": "Cargo.toml",
      "use": "@now/rust"
    }
  ],
  "routes": [
    { "src": "/", "dest": "/now-rust-example"}
  ]
}

nameはなんでもお好きに。
routesで、//now-rust-exampleに割り当てることで
ルートパスで、rustのlambdaが実行されます。

いよいよ、Nowにデプロイ!!

now

はい、これだけ。

スクリーンショット 2019-03-14 14.55.22.png

こんな感じで、成功すると、
デプロイ先のURLが分かるので、それを見ると、
スクリーンショット 2019-03-15 7.29.59.png
Demo:
https://now-rust-example-nq2ylj821.now.sh

このように簡単にデプロイ出来ました!!

超簡単なんでやって見てください〜〜〜〜〜!

33
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
33
Help us understand the problem. What is going on with this article?