ベトナム語バージョン: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