4
5

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 3 years have passed since last update.

Serverless Frameworkの使い方

Last updated at Posted at 2021-01-03

Serverless Frameworkの使い方をまとめました。
今後何かいいTipsがあれば更新していこうかと思います。

基本コマンド

インストール

事前にnodejsをインストールしておくこと

npm install -g serverless

バージョン確認

sls --version

ログイン

sls login

AWSの認証情報の設定

sls config credentials --provider aws --key YOUR_KEY --secret YOUR_SECRET

更新のときは -o オプションを加える
-o はオーバーライトの意味

が、実際これは別にやらなくてもよい

テンプレート作成

node.jsのテンプレートを使用

sls create --template aws-nodejs

別フォルダにあるテンプレートを使用

sls create --template-path path/to/my/template/folder -p path/to/my/service -n my-new-service

Githubとかにあるテンプレートを使用

serverless install -u https://github.com/foo-bar.....

削除

sls remove

デプロイ

sls deploy -v

-v でプロセスを確認できる
作成も更新もこのコマンドで実行する

sls deploy --aws-profile devProfile

AWSの認証情報を指定してデプロイ

sls deploy function -f myFuncName

Lambda関数の更新には関数名を指定する場合
名前を指定する

sls deploy --config ./tmp/sample.yml

ファイル名を指定する場合

注意点として、実行したディレクトリの場所からテンプレートファイルの指示通りにファイルを探索するので、テンプレートファイルで別のファイルから読み取りを行っている場合、実行場所によってはパスの修正が必要となる。

【参考】
https://www.serverless.com/blog/quick-tips-for-faster-serverless-development

dry run

sls deploy --noDeploy

構文に誤りがないかチェック

追記

こちらのオプションは削除されました。

今後は package コマンドで確認するようです。

応用

外部ファイルを参照する

serverless.yml
resources:
  - ${file(./resources/s3.yml)}

【参考】
https://www.serverless.com/framework/docs/providers/aws/guide/variables/#multiple-configuration-files

コードチェック

※事前にPythonをインストール

pip install cfn-lint

以下のコマンドで確認

cfn-lint sample.yml

これでCloudFormationの構文に誤りがないかチェックができる

詳細はこちら
https://github.com/aws-cloudformation/cfn-python-lint

トラブルシューティング

バケットポリシーのバージョン表記

Version: 2012-10-17

シングルクォーテーションなしの場合
slsが読み違えて時刻に変換してしまうので、
以下のように変更する

Version: '2012-10-17'

resourcesフォルダ内のファイルを参照できない

ファイルパスが間違っている
変数を利用している場合、うまく参照できていない可能性がある

外部ファイルを読み込めない

各CloudFormationのファイルは、
Resourcesではじまるように記述しないといけない、以下例

Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:

Lambdaに不要なファイルがある

Serverless Framework用のフォルダ内に例えばREADME.mdがある状態でデプロイを行うと、README.mdも一緒にLambdaにアップロードされてしまいます。

それを回避するため、serverless.yml内に以下のような記述をする。

package:
  individually: true
  exclude:
     - README.md

Serverless Frameworkがわからなくなったら
立ち寄りたい、、、

そんな記事になれればと思います。

Thanks.

4
5
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
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?