LoginSignup
0
0

More than 5 years have passed since last update.

serverless frameworkを触ってみた。~AWS編~

Last updated at Posted at 2018-11-01

きっかけ

Microsoftが提供するOpenHackという研修を受け、Serverless技術の手軽さが想像以上だったため。
研修はAzureでしたが、お仕事ではAWSなのでまずはLambdaから。

serverlessを使ってみる。

研修時(Azure Functions)はVS Codeのアドインで開発しており、
Lambdaの場合は何が良いか探したらserverlessにたどり着きました。ほんと便利ですね。これ。

  1. プロジェクト作成

以下の様なコマンドを実行すればプロジェクトフォルダを作ってくれます。

node.js版
serverless create -t aws-nodejs --path nodejs
Python版
serverless create -t aws-python3 --path lambda-python

ちなみに生成されるソースはこんな感じです。

handler.js版
'use strict';

module.exports.hello = async (event, context) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'Go Serverless v1.0! Your function executed successfully!',
      input: event,
    }),
  };

  // Use this code if you don't use the http event with the LAMBDA-PROXY integration
  // return { message: 'Go Serverless v1.0! Your function executed successfully!', event };
};

2. デプロイ

以下コマンドでデプロイしてくれます。

serverless deploy

オプションを付けた方がFunctionだけデプロイするため早いそうな。慣れるまでは全部デプロイするで良いと思います。お値段変わらないし。

serverless deploy function -f Function名

注意点

以下コマンドでクレデンシャルを登録するのですが、システム環境変数に登録してある場合そちらの値が優先されます。
※リージョン情報は設定ファイルの内容が優先されます。

serverless config credentials --provider aws --key key --secret secret

IAMユーザにCloudFormationの権限が必要です。付けていないと以下のようなエラーが出ます。

  Serverless Error ---------------------------------------

  User: arn:aws:iam:::user/ is not authorized to perform: cloudformation:CreateStack on resource: arn:aws:cloudformation:us-east-1::stack//*

3. 試し実行

以下実行するだけでコンソール上に結果が出ます。

serverless invoke -f hello -l

想像より圧倒的にハードルが低かったです。

続く。

0
0
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
0
0