\Serverless/
Serverless
View Slide
Serverlessλ
.。oO(さっちゃんですよヾ(〃l _ l)ノ゙☆)
FaaS
FaaS(Function as a Service)
FaaS(函數 as a Service)
例へば AWS LambdaGoogle Cloud FunctionsAzure FunctionsIBM OpenWhisk 等
ServerlessPaaS、IaaS、BaaSとは何が違ふの?
ServerlessServerless Architectureshttp://martinfowler.com/articles/serverless.html
ServerlessFaaSはfull managedでstateless
ServerlessIf your PaaS can efficiently start instances in 20ms that run forhalf a second, then call it serverless.https://twitter.com/adrianco/status/736553530689998848
Serverless0.02秒でインスタンスを起動し0.5秒だけ動作するなら、そのPaaSはserverless。
Serverless(Erlangっぽいよね)
AWS Lambda対応⾔語は Python 2Node.jsJava 8
AWS Lambdaλを呼び出せるイベントはLambdaのHTTP API、AWS IoT、API Gateway、CloudWatchSchedule、CloudWatch Logs、CognitoのSync、DynamoDBの更新、Kinesis、S3の更新AWS SNS
AWS Lambdaλから使へるリソースはAWSの全部、AWS外のAPIで呼べるリソースも何でも
AWS Lambdaバージョン管理 → 函數バージョンにエイリアスを付けるLog → CloudWatchに吐く監視 → CloudWatchでAPI Gatewayでの認證 → 認證⽤のLambdaを呼ぶ
AWS LambdaフレームワークにはServerlessApex 等
Serverless Frameworkhttps://serverless.com/
Serverless FrameworkNearly 1.0(1.0.0-beta2)
Serverless Framework10,316☆stars on GitHub
Serverless Frameworkpluggable
Serverless Frameworkプロジェクト = 函數とイベントとリソースの集まり
Serverless FrameworkAWS LambdaGoogle Cloud FunctionsAzure FunctionsIBM OpenWhisk に対応してゐる
λとAPI Gatewayとの連携
λとAPI Gatewayとの連携Terraformでやる場合
λとAPI Gatewayとの連携API GatewayとLambdaの組み合はせでリリースするバージョンを制御する - c4se記:さっちゃんですよ☆ http://c4se.hatenablog.com/entry/2016/07/26/12250829,238⽂字Terraformのmoduleを書く - c4se記:さっちゃんですよ☆http://c4se.hatenablog.com/entry/2016/08/09/15261911,198⽂字
λとAPI Gatewayとの連携死
λとAPI Gatewayとの連携コードのデプロイ⼿順
λとAPI Gatewayとの連携最初のデプロイ:1. aws_lambda_alias.prodのfunction_versionを "$LATEST" にしておく。Lambda函數作成前で、publish_versionもしてゐずバージョンが未だ無い爲。2. LambdaとAPI Gatewayをデプロイ。3. API Gatewayをstagingステージにデプロイ。4. stagingで検証。5. Lambdaをpublish_versionして、Versionをメモする。6. aws_lambda_alias.prodのfunction_versionを 上でメモしたバージョンに書き換へる。7. Lambdaをデプロイ。8. API Gatewayをprodステージにデプロイ。API Gatewayの設定を更新した場合:1. API Gatewayをデプロイ。2. API Gatewayをstagingステージにデプロイ。3. stagingで検証。4. API Gatewayをprodステージにデプロイ。Lambdaの設定やコードを変更した場合:1. Lambdaをデプロイ。2. stagingで検証。3. Lambdaをpublish_versionして、Versionをメモする。4. aws_lambda_alias.prodのfunction_versionを 上でメモしたバージョンに書き換へる。5. Lambdaをデプロイ。
λとAPI Gatewayとの連携⼀⽅、Serverlessではs-function.json 2628⽂字
λとAPI Gatewayとの連携`sls deploy`
λとAPI Gatewayとの連携やりましたね!