こんにちは、シタテルエンジニアの工です!
AWS Lambdaを触る機会がありましたので、ServerlessFrameworkと一緒にいじいじしてみました!
シリーズで、
Serverlessをインストール
AWSLambdaでSansanの名刺データを取得してみる
serverless-offlineでAWSLambdaをローカルで実行
なんかを書いていこうと思います!
さらっとAWSLamdaとServerlessFrameworkについて
AWS Lambdaとは
AWS Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを実行できるコンピューティングサービスです。
つまり、流行りのサーバーレス
てやつで、サーバーを準備しなくてよいので、ちょっとした処理の実行など大変助かります。
しかも、LambdaはNode.js (JavaScript)、Python、Java (Java 8 互換)、C# (.NET Core)、 Goに対応しています!
様々な言語に対応しているので学習コストもかからないのがいいですね。
シタテルでは、HubSpotとSansanのデータ同期や、SlackCommandでリリースPRを作るなどで使っています。
Serverlessとは
The Serverless Framework is an open-source CLI for building and deploying serverless applications.
つまり、サーバーレスアプリケーションの開発を手助けをしてくれるやつです!
AWS Lambda単体で開発してみるとわかるのですが、ローカルでの開発やビルド、デバッグやらが面倒です。
このServerless Frameworkを使えばそのあたりのもやもやを解消してくれます!
作ってみる
Serverless Framework - AWS Lambda Guide - Introduction こちらがAWS用のServerlessFramework公式ドキュメントです。 基本的にこちらの内容に沿って進めていきます、
今回は、Sansanの名刺データを取得してみます。
まずはServerlessFrameworkをインストール
$ npm install -g serverless
$ serverless -v
1.33.2
正しくバージョンが表示されていたら、インストール完了です!
Serviceを作る
Serviceはプロジェクトのようなもの。
今回は、nodejsで作っていきますので、aws-nodejs
を指定。
その他の言語を使いたい方はこちらを参考に。
$ serverless create --template aws-nodejs --path hello-sansan
実行すると
Serverless: Generating boilerplate...
Serverless: Generating boilerplate in "/Users/mogura/work/sitateru/lambda/hello-sansan"
_______ __
| _ .-----.----.--.--.-----.----| .-----.-----.-----.
| |___| -__| _| | | -__| _| | -__|__ --|__ --|
|____ |_____|__| \___/|_____|__| |__|_____|_____|_____|
| | | The Serverless Application Framework
| | serverless.com, v1.33.2
-------'
Serverless: Successfully generated boilerplate for template: "aws-nodejs"
このような構成で、Serviceができました!
hello-sansan
├── handler.js
└── serverless.yml
次は、実際に処理を書いていきます。
が、長くなりそうなので今回はここまでに。
おわりに
今回は、ServerlessFrameworkでserviceを作るところまでをやってみました。
次回は、実際にAWSLamdaでSansanから名刺データを取得するとことまでをやっていきます! 🚀