LoginSignup
34
15

More than 5 years have passed since last update.

Serverless Framework v1.26.0リリースノート

Last updated at Posted at 2018-01-30

Serverless Frameworkv1.26.0がリリースされました。その内容を機能毎にまとめています。

Shared API

新たにShard APIという機能がリリースされました。これは既存のCloudFormation StackでデプロイされているAPI Gatewayを別のStackから参照することで、既存のAPIの配下に新たにAPIリソースを追加するという機能です。

Serverless Framework、というかCloudFormationには1つのStackにつき、200個までしかリソースが上げられないという制限があります。そしてAPI Gatewayのエンドポイントを大量に作ってその制限に引っかかるケースが多いようです。これに対応するための機能となります。

具体的には以下のようにprovider配下に参照したいAPI Gatewayの情報を定義することで機能が使えるようになります。

serverless.yml

service: service-b
provider: 
  apiGateway:
    restApiId: xxxxxxxxxx # REST API resource ID. Default is generated by the framework
    restApiRootResourceId: xxxxxxxxxx # Root resource, represent as / path

functions:
  create:
    handler: posts.createComment
    events:
      - http:
          method: post
          path: /posts/{id}/comments

AWS Go support

Go用のスターターテンプレートがFramework内部に内包されました。複数functionにも対応できるようにディレクトリ毎にmain.goを分離するような仕組みとなっています。

使いたい場合は以下のコマンドで出来ます。

$ serverless create -t aws-go 
$ serverless create -t aws-go -p service-path

serverless.js configuration file support

Frameworkの設定は、serverless.ymlで記述しますが、今回serverless.jsという形式の設定ファイルをサポートしました。

要は設定ファイル内にJavaScriptを直接記述できるので、動的な値を取得して設定値とするといったことが可能になります。例えばShard APIの機能を使うにはAPI GatewayのID情報をserverless.yml内にハードコーディングしなければなりません。しかし、serverless.jsを使うことで動的にその部分を処理することが可能となります。

具体的には以下のようにmodule.exportsに設定値のJsonを渡す形になります。

serverless.js

- JavaScriptコード -

module.exports = {
  provider:
    name: "aws"
  ....
}

logRetentionInDays config

serverless.ymlのproviderセクションにCloudWatchLogsのログ保持期間のデフォルト値を設定できるようになりました。今まではデフォルト値が30日でその設定を上書きしたい場合は以下のようにresourcesセクションで上書きをしていたかもしれません。

serverless.yml
resources:
  Resources:
    WriteDashPostLogGroup:
      Type: AWS::Logs::LogGroup
      Properties:
        RetentionInDays: "10"

しかし、これからは以下の設定で済みます。

serverless.yml
provider:
  logRetentionInDays: 10

serverless createコマンドへの--template-pathオプションの追加

このオプションを使うことでローカルにあるServerless projectをコピーして新規プロジェクトがセットアップできます。以下のような形です。

serverless create --template-path /usr/local/src/sls-project --path my-service

Java用にPOJO input typeへの対応

Javaを使用する際にPOJO (Plain Old Java Object) 型が可能となりました。
具体的にはAWSのドキュメントを参照: https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/java-programming-model-req-resp.html

34
15
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
34
15