ベトナム語バージョン:https://vtitech.vn/tim-hieu-ve-serverless-framework/
こんにちは、VTIジャパンのクアンです!この投稿に、Serverlessフレームワークという1つのserverlessアプリを開発ためのフレームワークを勉強しましょう!
Serverlessフレームワークとは?
ServerlessはNode.jsから開発の無料なオープンソースフレームワークです。Serverlessは、AWS Lambdaでアプリを開発するためのフレームワークです。
私にとって、Serverlessは軽くて使いやすいです。なぜなら、新しいServerlessプロジェクトを初期化後、serverless.yml
ファイルやソースコードのみ編集します。他のサーバーなフレームワークに比べて、ファイルはより少ないです。
インストールやCLI
インストール
Node.jsから開発したフレームワークですから、もちろんServerlessはnpm
によって管理されます。なので、簡単な方法はnpm
です。
npm install -g serverless
参考の分に、Serverlessのドキュメントリンクは他のインストール方法があります。私の意見は、現代のIT開発はNodeJSは大切ですから、やはりNodeJSは一番良い方法です。
CLI
- 新しいServerlessプロジェクトを初期化
serverless
- ディスプレイ
serverless deploy
- ファンクション
hello
を呼び出す
serverless invoke -f hello
# 呼び出してログを見る
serverless invoke -f hello --log
- ログをフェッチ
serverless logs -f hello
# Tail logs
serverless logs -f hello --tail
- 削除
serverless remove
このコマンドを実行して、全てのAWSリソースは完全に消されます。
例のserverless.ymlファイル
serverless.yml
は、何のAWSサービスを使う、何のファンクションを呼び出す設定ファイルです。この小目、以下の参考リンクNo. 2によってやったserverless.yml
を分析しましょう!
service: language-corrector
frameworkVersion: '3'
provider:
name: aws
stage: dev
region: ap-northeast-1
profile: Gryqhon
runtime: python3.8
ecr:
images:
gingerit:
path: ./
apiGateway:
apiKeys:
- free:
- language-corrector-free
- paid:
- language-corrector-paid
usagePlan:
- free:
quota:
limit: 100
offset: 1
period: MONTH
throttle:
burstLimit: 1
rateLimit: 1
- paid:
quota:
limit: 1000
offset: 1
period: MONTH
throttle:
burstLimit: 200
rateLimit: 100
functions:
gingerit:
timeout: 10
memorySize: 256
image:
name: gingerit
events:
- http:
path: language_corrector
method: post
cors: false
async: false
private: false
まずは、
- service: ディスプレイしたいサービスの名前です。
- frameworkVersion: バージョンを設定する。optionalです。
- provider: デプロイクラウドプラットフォームです。デフォルトはAWSです。Google CloudとかAzureとか設定できます。
- functions: デプロイしたいfunctionたち。
provider
の分:
- name: クラウドプラットフォームによって、
aws
とかgoogle
とかazure
とかです。 - runtime: サービスの言語。例えば
nodejs14.x
とかpython3.8
とかです。 - region: optionalです。デフォルトは
us-east-1
です。日本にデプロイしたいですから、ap-northeast-1
を選びます。 - profile: optionalです。特別なcredentialsを使うのためです。
- 後は
ecr
とかapiGateway
のような他のサービス。
provider
の分:
- function名、この例は
gingerit
です。 - それから、
image
とかhandler
の設定です。 - オプショナル設定:
timeout
、memorySize
。 event
はLambdaのトリガーです。 この例は、API Gatewayを使いますから、http
です。 AWS SAMを似てます。
Leave a Reply