Movatterモバイル変換


[0]ホーム

URL:


Terui Masashi, profile picture
Uploaded byTerui Masashi
PDF, PPTX2,317 views

The Internal of Serverless Plugins

Serverless Meetup Tokyo #1http://serverless.connpass.com/event/40687/

Embed presentation

Download as PDF, PPTX
Masashi Terui @ marcy_teruiI’m a Developer and Cloud Architect.I’m a Remote-Multi-Worker at Section-9 / Serverworks Co., Ltd. / FreelanceI’m an author of the serverless deployment tool “Lamvery” and Serverless Plugins.I’m around 30 years old. I’m a father of my son and my daughter.https://willy.works/2
3
Agenda4Serverless PluginとはPluginの作り方・基本編Pluginの作り方・実例からみる応用編Pluginの作り方・Tipsおまけ・まとめ
5
ServerlessPlugin6Serverless Frameworkを拡張する、または挙動を置き換えるプラグイン本体と同じNode.js(v4以上)で記述されたnpm module大枠として以下の2つの役割を持つCommandの拡張・置き換え各CommandのLife Cycle EventsにHookして処理を行う
7
基本形8class PluginName {constructor(serverless, options) {this.serverless = serverless;this.options = options || {};this.provider = this.serverless.getProvider('aws');this.commands = {snip};this.hooks = {snip};}}module.exports = PluginName;対応するプロバイダを取得本体とやりとりするやつCommandの定義Life Cycle hookの定義おまじないCommand-line Options
Commands9this.commands = {command: {usage: 'Usage of the command',lifecycleEvents: ['initialize','execute',],options: {option: {usage: 'Usage of the option',shortcut: 'o',required: true,},},commands: {},},};Command名Life Cycle定義Command OptionsSub Commands※定義の書き方は一緒
Life Cycle Hooks10this.hooks = {'before:command:lifeCycle': () => BbPromise.bind(this).then(this.validate).then(this.beforeJob),‘command:subCommand:lifeCycle': () => BbPromise.bind(this).then(this.validate).then(this.job),'after:command:lifeCycle': () => BbPromise.bind(this).then(this.validate).then(this.afterJob),};Life Cycle Eventの前にHookLife Cycle EventにHookLife Cycle Eventの後にHook緑の下線部のメソッドに実際の処理を記述していく
11
12

Rollback13‘before:deploy:function’ にHookデプロイの直前にバックアップを取らせるLambda:PublishVersion -> Lambda:CreateAlias(UpdateAlias)‘rollback function’ コマンドを追加バックアップを取得してそれをアップロードするLambda:getFunction(Identifier=backupAlias)https://github.com/marcy-terui/serverless-rollback-function
14
Crypt15‘encrypt’,‘decrypt’ コマンドの追加KMSで暗号化された情報をJSONに吐き出して保存させる‘before:deploy:function’,’before:deploy:createDeploymentArtifacts’ にHook暗号化されたJSONからKMSで復号化するためのmoduleを一時的に配置moduleがデプロイパッケージに含まれる‘after:deploy:function’,’after:deploy:deploy’ にHook一時的に配置したmoduleを削除して元の状態に戻すhttps://github.com/marcy-terui/serverless-crypt
16
Tips17とにかくServerless Frameworkのソースコードを読みまくろう各コマンドは全て同じ方式で書かれているので色々参考になるわりとよくできてる感開発中はPJディレクトリで ‘npm link ./‘ しておくとデバッグしやすい‘npm install serverless’ すると開発中のPluginを実際に動かせる
18
おまけ①19Pluginが増えると管理が面倒本体に突っ込めるものは突っ込むServerless Teamはやさしい、レビューがとても丁寧‘rollback function’ はどう考えても本体でやってほしいのでプルリク中+1 オナシャス!!
https://github.com/serverless/serverless/pull/2672
おまけ②20これからはServerless Framework? Lamveryは?Lamveryも使ってますし、メンテも続けますFunction単位でGlue Codeを管理するには我ながら便利私的な使い分けGlue CodeをFunction単位で楽に良い感じで管理したい → LamveryMulti Functionでガッツリ → Serverless Framework(+Plugins)
おまけ③21正直、Serverless Frameworkの気に物足りない所はまだまだ一杯ある根本的にライブラリの依存関係がFunctionで独立してないMicro-servicesとは? (この辺は考えはあるようではある)Function毎でも全部でもない論理的なグループでのDeploy (+Rollback)全体の方のRollbackが引数でタイムスタンプ指定するとか・・・
「お前はいつ何をDeployしたか覚えているのか!?」と言いたいなどなど
22
まとめ23Pluginを作るのは簡単v1.0から本当に作りが良くなった(前がアレという話も・・・w)正直、まだまだ物足りないので色々作っていきたいアイデア次第で色々できるみんなでPlugin作ろう!!
24・・・
25
The Internal of Serverless Plugins

Recommended

PDF
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
PDF
ヘッドレスCMSとサーバーレス
PDF
サーバーレスでシステムを開発する時に⼤切な事
PDF
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
PPTX
Jaws days2017-ops jaws-2
PDF
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
PDF
Serverless Meetup Tokyo #1 オープニング
PDF
しみじみサーバーレス
PDF
What is Serverless?
PDF
Single Command Deployのための gradle-aws-plugin講座
PDF
今なぜサーバーレスなのか
PDF
AWSでアプリ開発するなら 知っておくべこと
PDF
Azure Load Testingを試してみた
PPTX
実践サーバレスアーキテクチャ
PDF
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
PDF
Getting Start for Azure Pipelines
PPTX
Serverless Framework 使ってる話(node.js)
PDF
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
PDF
Visual Studio 2019 新機能を時間のかぎりできるだけ!
PPTX
6リージョン同時75万接続のメッセージ配信基盤をCloudFormationとCapistranoで3日で構築した話
PPTX
クラウドサービス活用事例
PDF
Alibaba Cloud Serverless
PDF
Serverless Ninja Warriors [panel]
PPTX
Visual Studio 2019 Updates Pickup!
PDF
モバイルゲームにおけるAWSの泥臭い使い方
PPTX
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
PDF
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
PDF
Tune Up AWS Lambda
PDF
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
PDF
JAWS DAYS 2017「サーバーレスが切り拓く Eightのリアルタイム大規模データ分析」

More Related Content

PDF
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
PDF
ヘッドレスCMSとサーバーレス
PDF
サーバーレスでシステムを開発する時に⼤切な事
PDF
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
PPTX
Jaws days2017-ops jaws-2
PDF
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
PDF
Serverless Meetup Tokyo #1 オープニング
PDF
しみじみサーバーレス
クラウド環境におけるWebアプリケーションの正しい作り方(for Perl users)
ヘッドレスCMSとサーバーレス
サーバーレスでシステムを開発する時に⼤切な事
Serverless ArchitectureにおけるNoSQL Services 〜DynamoDBも良いけどSimpleDBも忘れないであげてください!!〜
Jaws days2017-ops jaws-2
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
Serverless Meetup Tokyo #1 オープニング
しみじみサーバーレス

What's hot

PDF
What is Serverless?
PDF
Single Command Deployのための gradle-aws-plugin講座
PDF
今なぜサーバーレスなのか
PDF
AWSでアプリ開発するなら 知っておくべこと
PDF
Azure Load Testingを試してみた
PPTX
実践サーバレスアーキテクチャ
PDF
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
PDF
Getting Start for Azure Pipelines
PPTX
Serverless Framework 使ってる話(node.js)
PDF
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
PDF
Visual Studio 2019 新機能を時間のかぎりできるだけ!
PPTX
6リージョン同時75万接続のメッセージ配信基盤をCloudFormationとCapistranoで3日で構築した話
PPTX
クラウドサービス活用事例
PDF
Alibaba Cloud Serverless
PDF
Serverless Ninja Warriors [panel]
PPTX
Visual Studio 2019 Updates Pickup!
PDF
モバイルゲームにおけるAWSの泥臭い使い方
PPTX
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する
What is Serverless?
Single Command Deployのための gradle-aws-plugin講座
今なぜサーバーレスなのか
AWSでアプリ開発するなら 知っておくべこと
Azure Load Testingを試してみた
実践サーバレスアーキテクチャ
私はこれでJSONをやめました〜あるいはAWSの設定をコード化するとはどういうことか〜
Getting Start for Azure Pipelines
Serverless Framework 使ってる話(node.js)
JAWS-UG Osaka 2013.11.02 Feel the Elesticity v2.0
Visual Studio 2019 新機能を時間のかぎりできるだけ!
6リージョン同時75万接続のメッセージ配信基盤をCloudFormationとCapistranoで3日で構築した話
クラウドサービス活用事例
Alibaba Cloud Serverless
Serverless Ninja Warriors [panel]
Visual Studio 2019 Updates Pickup!
モバイルゲームにおけるAWSの泥臭い使い方
AWS Step FunctionとLambdaでディープラーニングの訓練を全自動化する

Viewers also liked

PDF
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
PDF
Tune Up AWS Lambda
PDF
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
PDF
JAWS DAYS 2017「サーバーレスが切り拓く Eightのリアルタイム大規模データ分析」
PDF
Unlimited Frameworks
PDF
Serverless Meetup Tokyo #2 オープニング
PDF
20161111 java one2016-feedback
PDF
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
PDF
What's new with Serverless
PPTX
Introducing C# in AWS Lambda
PPTX
CRM分析サービス crm analyzer expressを 支えるサーバレスな色々
PDF
デモから見るOpenWhisk - Docker Action -
PDF
Introduction to AWS X-Ray
PDF
Serverless Revolution
PDF
AWSのサーバレス関連アップデートを10分で紹介します
PDF
Serverless Architecture on AWS(20151023版)
PDF
Serverless meetup02 openwhisk
PDF
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
PDF
Introducing Amazon Rekognition, Amazon Polly and Amazon Lex
PDF
スタートアップがグローバルなシステムを作るために、積極的にサーバーレスに取り組んでみた話 / Serverless Meetup Sapporo
Salesforce Einstein - SaaS企業のAI戦略とテクノロジ -
Tune Up AWS Lambda
Amazon Pinpoint - re:Invent Serverless Follow Up - 20161207
JAWS DAYS 2017「サーバーレスが切り拓く Eightのリアルタイム大規模データ分析」
Unlimited Frameworks
Serverless Meetup Tokyo #2 オープニング
20161111 java one2016-feedback
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
What's new with Serverless
Introducing C# in AWS Lambda
CRM分析サービス crm analyzer expressを 支えるサーバレスな色々
デモから見るOpenWhisk - Docker Action -
Introduction to AWS X-Ray
Serverless Revolution
AWSのサーバレス関連アップデートを10分で紹介します
Serverless Architecture on AWS(20151023版)
Serverless meetup02 openwhisk
20分でおさらいするサーバレスアーキテクチャ 「サーバレスの薄い本ダイジェスト」 #serverlesstokyo
Introducing Amazon Rekognition, Amazon Polly and Amazon Lex
スタートアップがグローバルなシステムを作るために、積極的にサーバーレスに取り組んでみた話 / Serverless Meetup Sapporo

More from Terui Masashi

PDF
Reliability Engineering for Enterprise Serverless
PDF
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
PDF
ついに解禁!Amazon Aurora徹底検証!
PDF
AWS運用監視ノウハウ CloudWatch 〜作ってからが本番です!〜
PDF
[Deep Dive]Infra寄りのDevがお送りするRDS for Aurora徹底検証
PDF
Mroongaを選んだ理由と
ちょっと嬉しかった話
PDF
初心から一週間で作ってみた Kinesis Client Library for Go
PDF
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PDF
Lambda(Python)のデプロイについて考えたというか作った
PDF
Google App Engine for PHPとそのローカル開発環境について
PDF
Multi Cloud Design Pattern(Beta)
PDF
マルチクラウド #とは
PDF
Infrastructure as Codeってなんだったっけ?
PDF
R○Sに学ぶイマドキのMySQL構築運用
PDF
Cloud Vsion APIによるGUIの検証自動化
PDF
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
PDF
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
PDF
あなたはインフラエンジニアですか?
 いいえ、私はソフトウェアエンジニアです。
PDF
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
PDF
Googleの○○にありがとう
Reliability Engineering for Enterprise Serverless
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
ついに解禁!Amazon Aurora徹底検証!
AWS運用監視ノウハウ CloudWatch 〜作ってからが本番です!〜
[Deep Dive]Infra寄りのDevがお送りするRDS for Aurora徹底検証
Mroongaを選んだ理由と
ちょっと嬉しかった話
初心から一週間で作ってみた Kinesis Client Library for Go
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
Lambda(Python)のデプロイについて考えたというか作った
Google App Engine for PHPとそのローカル開発環境について
Multi Cloud Design Pattern(Beta)
マルチクラウド #とは
Infrastructure as Codeってなんだったっけ?
R○Sに学ぶイマドキのMySQL構築運用
Cloud Vsion APIによるGUIの検証自動化
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
IoTにおけるクラウドインフラからサーバサイドまでの概要的な話
あなたはインフラエンジニアですか?
 いいえ、私はソフトウェアエンジニアです。
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
Googleの○○にありがとう

The Internal of Serverless Plugins


[8]ページ先頭

©2009-2025 Movatter.jp