90
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Serverless Framework コマンド チートシート

Posted at

以下はAWSの場合に基づく。
基本的には 2019年4月現在、AWSが一番多機能。他環境(Azure等)では当該CLIコマンドがない場合がある。

用語とか。

  • Service: 複数のLambda関数とAPI GatewayとかをまとめたServerless Framework 上の概念。Serverless Service。
  • Function: Lambda関数のこと。
  • Serverless registry: プラグインとテンプレートの登録サービス。以下単にレジストリと言う。

CLIコマンド一覧

初回作成系

  • sls create Servelessサービスを新規作成。
    • -t(レジストリ登録template名), -p(独自templateのディレクトリパス), -u(同左URL), のいずれかを指定するとそれのコピーを新規作成。
  • sls install GitHubから npm install 的にプラグインをインストール

deploy系: デプロイ

  • sls deploy デプロイ。LambdaとかAPI Gatewayに設定される。
    • デプロイ前には自動で webpack & パッケージ化する。
  • sls deploy function 指定した名前のLambda関数だけをデプロイする。
  • sls deploy list デプロイしたServerless Serviceのリストを表示
  • sls deploy list functions デプロイしたLambda関数と、そのバージョン一覧を表示
  • sls package パッケージ(zip化)する。デプロイはしない。
  • sls webpack webpackする。パッケージはしない。

invoke系: 実行

  • sls invoke 実行する。 実際にデプロイ済みのLambda関数を実行する
  • sls invoke local ローカル環境で実行。nodeのバージョンやインストール済みライブラリ等、localでは様々な差異があることに留意。

plugin系

  • sls plugin コレ自体は機能なしの起点コマンド
  • sls plugin install npm install のようにプラグインを導入
    • 例えばAWSの他機能(DynamoやSQSやら)の設定連携する機能や、
      serverless-plugin-warmup という「CloudWatchイベントで5分ごとにLambda叩くことでウォームアップ状態を維持」とか、
      serverless-offline というオフライン用のAPI Gateway立てるやつとか…
      そういうカスタムもpluginで可能。
  • sls plugin uninstall サービスからプラグインを削除&アンインストール
  • sls plugin list リポジトリ上の全プラグインが出る。AWSで作ったらAzure用プラグインとかは出ない。
  • sls plugin search --query sqs とか、指定したクエリに一致するやつ検索

info/log系

  • sls info 現在のサービスの情報を表示。serverless.yml見れば分かる情報のほかに、API GatewayのURLなど。
  • sls logs -f [関数名] Lambdaの実行ログを、CloudWatchから取得。
  • sls metrics メトリクスを表示。関数の実行概要。多分CloudWatchメトリクスそのまま。
  • sls print serverless.yml ファイルを表示する。普通にエディタで開くのと何が違う?というと、${opt:stage, "dev"} などの変数解決済みなこと。

remove/rollback系

  • sls remove デプロイ済みのサービスを削除する。全削除。
  • sls rollback --timestamp で指定した日以前のサービスに戻す。
  • sls rollback function Lambda関数のロールバック。こっちは日付でなく--versionでバージョン指定。

config系

  • sls config コレ自体は機能なしの起点コマンド。
  • sls config credentials AWSのIAMの秘密鍵等を設定。デフォルトはaws-cliがあればそれを使う。
  • sls slstats 統計情報の追跡を有効/無効にする。 sls slstats --disable で追跡されなくなる。--enableで逆。

即始めるチートシート

$ npm install -g serverless

# 作成。 テンプレート指定は、aws-nodejs の代わりに aws-nodejs-typescript 等も。
#  使用可能なテンプレートは serverless create --help コマンドで一覧が出る
$ serverless create --template aws-nodejs --path my-service
$ cd my-service

# デプロイ
$ serverless deploy -v

一旦作ってから aws console を見るほうが早い。
CloudFormationから見ると良い。

serverless sls コマンドの違い

同じです。sls が短縮形なだけ。

雑感

構成管理をコードに出来る/分散しがちなAWSの設定を一括管理、というのは嬉しい反面、今までと設定内容が違う・S3ほかあちこちにファイル作られてしまう…など既存サービスと混在するとややこしくなりがち。

詳しい使い方

Serverless Frameworkの使い方まとめ とか見ると良いかと。

90
74
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
90
74

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?