SlideShare a Scribd company logo
1 of 35
Download to read offline
Azure
Azure Functions x LINE
Issei Hiraoka / @hoisjp
Cloud Solution Architect – Microsoft Japan
2019/07/31 25min; Azure Tech Lab #4
https://azure-tech-love.connpass.com/event/137321/
Azure Serverless in Action
平岡 一成 ひらおかいっせい
日本マイクロソフト株式会社 パートナー事業本部、パートナー技術統括本部
クラウドソリューションアーキテクト
担当領域
Azure Apps (Application Development)
Web, API Server, PaaS, OSS, Container, Cognitive Services, NoSQL
経歴
• 2004年より、エンジニアとしてWebアプリケーション開発・運用プロジェクトに従事。
• 2012年に国内最大手EC事業会社に入社。サービスを支えるバックエンドAPIの開発・運用を行うグループマネー
ジャを担当。大規模&高負荷システムの構築を得意とする。
• 2017年3月より現職。Azureパートナー向けの技術支援やPoC支援などを担当し、現在に至る。
自己紹介
@hoisjp
hoisjp
de:code 2019 CD07
AWS 技術者向け Azure サーバーレス
日本マイクロソフト株式会社
クラウドプラクティス技術本部 クラウドソリューションアーキテクト
平岡 一成
LinkedIn: hoisjp
Twitter: @hoisjp
https://www.microsoft.com/ja-
jp/events/decode/2019session/detail.aspx?sid=CD07
アジェンダ
前半戦 Serverless on Azure
• Azure Functions
• トリガー、バインドの利用方法
• 2つのホスティングプラン
後半戦 Azure Functions x LINE 連携で学ぶ サーバーレスシナリオ
• LINE への応答(シンプル)
• Azure Bot Service - Line Channel
• LINE への応答(非同期)
• LINE Front-end Framework (a.k.a. LIFF)
• LIFF starter for App Service
Serverless on Azure
前半戦
Microsoft Azure におけるサーバーレス コンポーネント
Azure Functions Logic Apps Azure Storage Cosmos DB Azure Active Directory
コンピューティング
ワークフロー
オーケストレーション
ストレージ データベース
セキュリティと
アクセス制御
Event Grid API Management Azure Stream Analytics Azure Bot Service Visual Studio
クラウド
メッセージング
API の管理 分析 Intelligence 開発者ツール
Azure Functions とは
サーバーを準備せずにコードを記述・実行できるた
め、プログラミングに集中できる
コードを実行した分だけ課金されるため、コストを
抑えることができる
Azure 上の様々なストレージに、少ないコードで読
み書きできる
業務要件に応じたスケーリングが可能
C# / F# / JavaScript / Java / Python などの言
語をサポートするため、開発者のこれまでのスキル
を活かすことができる
Azure Functions
イベント ドリブン型のサーバーレス コンピューティング
サーバーレス アプリケーションの例
Web アプリケーション アーキテクチャ IoT バック エンド
SaaS 統合 モバイル バック エンド
シングル ページ アプリから
Functions を呼び出し
Functions でユーザー 情報
に基づき、広告を決定
数百万のデバイスが Stream
Analytics にデータを送信
Azure Cosmos DB に
データを書き込み
Functions で
データを変換・構造化
OneDrive に
Excel ファイルを
保存
Functions で Microsoft Graph API
を使いコンテンツを分析
グラフを新規シート
に作成
写真を撮ったときに
Functions を呼び出し 画像を BLOB に保存
画像をモバイルに合わ
せたサイズに変換
ページが完成
Azure Functions 入門
Azure Functions のコンセプト
トリガーとバインディングを使ってAzure やその他の
サービスで発生したイベントに応答するコードを記述
コードの実行を発火させる
データの入出力用コードを単純化する機能
バインディングを用いたプログラミングモデル
関数アプリ
関数
関数
トリガーとバインドの定義
JavaScriptコード
関数アプリの構成
バインディング
拡張機能定義
{
"disabled": false,
"bindings": [
{
"queueName": "myqueue-items",
"connection": "StrgConnAppSetting",
"name": "myQueueItem",
"type": "queueTrigger",
"direction": "in" },
// …
{
"name": "myInputBlob",
"type": "blob",
"path": “work/{queueTrigger}",
"connection": "StrgConnAppSetting",
"direction": "in"
},
{
"name": "myOutputBlob",
"type": "blob",
"path": “work/{queueTrigger}-Copy",
"connection": "StrgConnAppSetting",
"direction": "out“
}
]
}
function.json トリガーとバインドの定義
module.exports = function(context, myQueueItem, myInputItem, myOutputItem) {
// ログ出力
context.log('Node.js Queue trigger function processed’,
context.bindings.myQueueItem);
// Blob の操作
context.bindings.myOutputBlob = context.bindings.myInputBlob;
// 終了
context.done();
};
index.js JavaScript コード
2. 複数のホスティングプラン
従量課金プラン App Service プラン
実行時にリソースが自動で割
り当てられる
専用環境で実行される
• スケーリング:自動で無制限
• VNET 接続 不可
• 実行時間:最大10分
• コールドスタートあり
• 料金:リソースの使用量と
実行回数に基づき計算
• スケーリング:ユーザが制御
数指定 or メトリックスベース
• VNET 接続 可能
• 実行時間:最大無制限
• 常時接続可(Always on)
• 料金:固定
(ユーザがコントロール可能)
アーキテクチャ
Azure App Service と WebJobs が基盤
参考:Ignite 2018 セッション Azure Functions Internals
App Service Dynamic Runtime
Hosting, CI, Deployment Slots, Remote Debugging, etc.
WebJobs Core
Programing model, common abstractions
WebJobs Extensions
Trigger, input and output bindings
Azure Functions Runtime (WebJobs Script)
Dynamic Compilation, Language abstractions, etc.
Language Runtime
V1 (C#, Node.js, F#, PHP, Python, etc.) / V2 (C#, Node.js, Java)
Code Config
配布用
サポートされるプログラミング言語とバージョン
言語 V1 V2
C# GA (.NET Framework 4.7) GA (.NET Core 2)
JavaScript GA (Node 6) GA (Node 8 / Node 10)
F# GA (.NET Framework 4.7) GA (.NET Core 2)
Java - GA (Java 8)
Python 試験段階 プレビュー (Python 3.6)
TypeScript 試験段階 GA (JavaScript へのトランスパイリングによ
る)
PHP 試験段階 -
バッチ (.cmd / .bat) 試験段階 -
Bash 試験段階 -
PowerShell 試験段階 プレビュー (PowerShell Core 6)
V1 では、1つの関数アプリ内で複数の言語が利用できました。 V2 では、1 つの関数アプリ内で 1 つの言語という制約があります。
配布用
言語ワーカーの実装は GitHub 上に公開
つまり、Issue や Pull Request の状況を確認できる
同様の課題が起きていないかわかる安心感
言語 URL
JavaScript https://github.com/Azure/azure-functions-nodejs-worker
Java https://github.com/Azure/azure-functions-java-worker
Python https://github.com/Azure/azure-functions-python-worker
PowerShell https://github.com/Azure/azure-functions-powershell-worker
配布用
Azure Functions x LINE
後半戦
イベント/メッセージングを扱うコンポーネントが多い
正しく使い分ける知識が必要
✔️
イベント/メッセージングサービスの使い分け
ポイントを以下に抜粋
Azure Event Grid、Event Hubs、Service Bus
Storage キューと Service Bus キューの比較
イベント/メッセージングサービスの使い分け(料金)
料金単価 5000万操作あたり
Queue Storage
General Purpose v1
(トランザクション最適)
キュー操作 (10,000 回あたり)
LRS、GRS、RA-GRS 共通で
¥0.0404
¥201.60
Queue Storage
General Purpose v2
(ストレージ最適)
キュー操作 (10,000 回あたり)
LRS、GRS、RA-GRS 共通で
¥0.448
¥2,240.00
Service Bus (Basic) 時間料金:0
100万回操作あたり:¥5.60
¥280.00
Service Bus (Standard) 時間料金 730時間:¥1,098.94
¥89.600/100 万操作
¥1,098.94 + 操作分
= ¥4,414.14
Event Grid 100万操作単位:¥67.20 ¥3,353.28
Event Grid - フルマネージド イベントルーティングサービス
Event Grid の概念
•イベント ソース
• イベントの発生場所
•イベント ハンドラー
• イベントの送信先
•トピック
• 発行元がイベントを送信する
エンドポイント
•イベント サブスクリプション
• イベントをルーティングする
エンドポイント
Media Service
Blob Storage
Azure
Subscription
Resource
Group
Event Hubs
IoT Hub
Service Bus
カスタム トピック
Logic Apps
Azure
Functions
Azure
Automation
Webhook
Queue
Storage
ハイブリッド
接続
Event Hubs
イベント ソース
イベント ハンドラー
Event Grid
トピック
イベント
サブスクリプション
https://docs.microsoft.com/ja-jp/azure/event-grid/overview
イベント/メッセージングサービスの使い分け
バインディング視点で見ると、(ドキュメント)
Type V1 V2 トリガー 入力バインド 出力バインド
Event Grid ✔️ ✔️ ✔️
Queue Storage ✔️ ✔️ ✔️ ✔️
Service Bus ✔️ ✔️ ✔️ ✔️
• Event Grid に出力バインドがサポートされていないので、
エンキューはライブラリが必要
• Azure CLI、PowerShell、REST、.NET、Java、Python、Node.js
LINE
Messaging
API
何かの処理
e.g.
QnA Maker,
Cognitive Service,
ML model,
etc
LINE への応答(シンプル)
一つの Functions で、1. Webhook を受け取る、2. 応答メッセージを送る
これでは課題がある。
Good?
Yeah!
HTTP
POST
HTTP
POST
POST https://api.line.me/v2/bot/message/reply
{
"replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"messages": [
{"type":"text", "text":"Yeah!" }
]
}
待たせてしまう
Azure Bot Service - Line Channel
https://docs.microsoft.com/ja-jp/azure/bot-service/bot-service-channel-connect-line?view=azure-bot-service-4.0
何かの処理
e.g.
QnA Maker,
Cognitive Service,
ML model,
etc
LINE
Messaging
API
Good?
Yeah!
HTTP
POST
HTTP
POST
Azure
Bot Service HTTP
POST https://api.line.me/v2/bot/message/reply
{
"replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA",
"messages": [
{"type":"text", "text":"Yeah!" }
]
}
Yeah!
Good?
Webサーバの
ように応答
LINE への応答(なるべく非同期)
Event Grid と Service Bus / Queue を挟んで、まずは LINE へすぐに応答する
Good?
Yeah!
HTTP
POST
EventGridClientHTTP
POST
即レスポンス!
後から応答メッセージ
LINE
Messaging
API
コードサンプル:https://github.com/hoisjp/azfunc-line-sample
LINE Front-end Framework (a.k.a. LIFF)
通常のブラウザから遷移しても・・・
e.g. https://ishiraok-liff-starter.azurewebsites.net
LINE app から表示すると・・・
e.g. line://app/1598355234-Lvd72yp5
LINE app のブラウザ
から
コンテキスト情報を
取得することができる
LIFF のバックエンドは何でもよい。当然 Azure でもよい。
line-liff-starter
1. App Service (Free Plan) に
ワンクリックでデプロイできるようにサンプルを用意
https://github.com/hoisjp/line-liff-starter
forked from line/line-liff-starter
2. または、静的ページをBlobでホスト
静的HTMLページ == HTTP ==> Azure Functions
さらなる情報はこちらを参考に。
Qiita: LINE の LIFF 開発超入門 : LIFF SDK を使った Web アプリの開発
LINE 連携 参考ドキュメント
Azure Bot Service :ボットを LINE に接続する
https://docs.microsoft.com/ja-jp/azure/bot-service/bot-service-channel-connect-
line?view=azure-bot-service-4.0
Messaging API リファレンス
https://developers.line.biz/ja/reference/messaging-api/
LIFF API リファレンス
https://developers.line.biz/ja/reference/liff/
NEW! コードサンプルが探しやすくなりました!
例:https://docs.microsoft.com/ja-jp/samples/browse/?products=azure-event-grid
• ワンクリックで Azure へデプロイ可能に
• もちろんそのままダウンロードも可能
• 直接GitHubのプロジェクトへ移動できるように
• インスタントサーチ(+製品と言語で)
例えば
まとめ
まとめ
前半戦 Serverless on Azure
• Azure Functions
• トリガー、バインドの利用方法
• 2つのホスティングプラン
後半戦 Azure Functions x LINE 連携で学ぶ サーバーレスシナリオ
• LINE への応答(シンプル)
• Azure Bot Service - Line Channel
• LINE への応答(非同期)
• LINE Front-end Framework (a.k.a. LIFF)
• LIFF starter for App Service
Microsoft Learn
Azure Functions のコースが追加されました!
https://docs.microsoft.com/ja-jp/learn/
• アカウント不要で 無料のサンドボックスを利用
サーバーレス アプリケーションの作成
• Azure Functions を使用したサーバーレス ロジック
の作成
• トリガーを使用して Azure 関数を実行する
• 入力バインディングと出力バインディングを使用して
Azure 関数を連結する
◼ 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、
ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。
◼ 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。
◼ すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複
写、レコーディング、その他)、および目的であっても禁じられています。
これらは著作権保護された権利を制限するものではありません。
◼ Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商
標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。
© 2019 Microsoft Corporation. All rights reserved.
Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。
その他、記載されている会社名および製品名は、一般に各社の商標です。

More Related Content

What's hot

なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on LinuxYasuaki Matsuda
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on AzureMasaki Yamamoto
 
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影gree_tech
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」Terui Masashi
 
本番運用で使うVisual Studio
本番運用で使うVisual Studio本番運用で使うVisual Studio
本番運用で使うVisual StudioKazuyuki Miyake
 
ReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったことReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったことkazuki matsumura
 
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)Madoka Chiyoda
 
Spring Boot + Netflix Eureka
Spring Boot + Netflix EurekaSpring Boot + Netflix Eureka
Spring Boot + Netflix Eureka心 谷本
 
Xamarin + Azure Mobile Appsの現実(第2章)
Xamarin + Azure Mobile Appsの現実(第2章)Xamarin + Azure Mobile Appsの現実(第2章)
Xamarin + Azure Mobile Appsの現実(第2章)Satoru Fujimori
 
Terraform×Rancherでマルチクラウドを一歩すすめる
Terraform×Rancherでマルチクラウドを一歩すすめるTerraform×Rancherでマルチクラウドを一歩すすめる
Terraform×Rancherでマルチクラウドを一歩すすめるShinya Mori (@mosuke5)
 
JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方Takuro Sasaki
 
現実的な「WordPress on Azure App Service」 クイックスタート
現実的な「WordPress on Azure App Service」 クイックスタート現実的な「WordPress on Azure App Service」 クイックスタート
現実的な「WordPress on Azure App Service」 クイックスタートKazuyuki Miyake
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスTakuro Sasaki
 
Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発Yasuaki Matsuda
 
Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具Kazuyuki Miyake
 
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話典子 松本
 
Azure Arcで「どこでも」Azureサービスを利用可能に!
Azure Arcで「どこでも」Azureサービスを利用可能に!Azure Arcで「どこでも」Azureサービスを利用可能に!
Azure Arcで「どこでも」Azureサービスを利用可能に!Masahiko Ebisuda
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application土岐 孝平
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれYasuaki Matsuda
 
Azure bastion ignite the tour @tokyo 2019
Azure bastion   ignite the tour @tokyo 2019Azure bastion   ignite the tour @tokyo 2019
Azure bastion ignite the tour @tokyo 2019Yoshimasa Katakura
 

What's hot (20)

なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
 
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
 
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
PythonとYAMLでGCPをDeploy!「Google Cloud Deployment Manager」
 
本番運用で使うVisual Studio
本番運用で使うVisual Studio本番運用で使うVisual Studio
本番運用で使うVisual Studio
 
ReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったことReactでCMSを作ったときにハマったこと
ReactでCMSを作ったときにハマったこと
 
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
若手エンジニア向けカンファレンス #BitValley2020 登壇資料 (オタ駆動開発)
 
Spring Boot + Netflix Eureka
Spring Boot + Netflix EurekaSpring Boot + Netflix Eureka
Spring Boot + Netflix Eureka
 
Xamarin + Azure Mobile Appsの現実(第2章)
Xamarin + Azure Mobile Appsの現実(第2章)Xamarin + Azure Mobile Appsの現実(第2章)
Xamarin + Azure Mobile Appsの現実(第2章)
 
Terraform×Rancherでマルチクラウドを一歩すすめる
Terraform×Rancherでマルチクラウドを一歩すすめるTerraform×Rancherでマルチクラウドを一歩すすめる
Terraform×Rancherでマルチクラウドを一歩すすめる
 
JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方JAWSUG初心者支部 AWSの勉強の仕方
JAWSUG初心者支部 AWSの勉強の仕方
 
現実的な「WordPress on Azure App Service」 クイックスタート
現実的な「WordPress on Azure App Service」 クイックスタート現実的な「WordPress on Azure App Service」 クイックスタート
現実的な「WordPress on Azure App Service」 クイックスタート
 
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップスScraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
 
Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発Visual Studio 2017 で Azure Functions の開発
Visual Studio 2017 で Azure Functions の開発
 
Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具Face APIで開発する時に使っている7つの道具
Face APIで開発する時に使っている7つの道具
 
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話
Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話Azure Appservice WebAppsでWordPressサイトを構築すると運用が劇的にラクになる話
Azure Appservice WebAppsでWordPressサイトを構築すると 運用が劇的にラクになる話
 
Azure Arcで「どこでも」Azureサービスを利用可能に!
Azure Arcで「どこでも」Azureサービスを利用可能に!Azure Arcで「どこでも」Azureサービスを利用可能に!
Azure Arcで「どこでも」Azureサービスを利用可能に!
 
SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
 
Azure bastion ignite the tour @tokyo 2019
Azure bastion   ignite the tour @tokyo 2019Azure bastion   ignite the tour @tokyo 2019
Azure bastion ignite the tour @tokyo 2019
 

Similar to 20190731 Azure Functions x Line at Azure Tech Lab #4

Smart store servlerless-20191030-40min
Smart store servlerless-20191030-40minSmart store servlerless-20191030-40min
Smart store servlerless-20191030-40minMicrosoft Azure Japan
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Microsoft Azure Japan
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architectureIssei Hiraoka
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションMasahiko Ebisuda
 
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcServerless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcMasahiro NAKAYAMA
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS AzureIssei Hiraoka
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みShinichiro Arai
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践de:code 2017
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化Takeshi Fukuhara
 
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループIssei Hiraoka
 
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントTrainocate Japan, Ltd.
 
Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門Osamu Monoe
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)kekekekenta
 
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.Takeshi Fukuhara
 
Circle of Code with Cloud Foundry
Circle of Code with Cloud FoundryCircle of Code with Cloud Foundry
Circle of Code with Cloud FoundryTomohiro Ichimura
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Takeshi Fukuhara
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発Naoki (Neo) SATO
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識Minoru Naito
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践真吾 吉田
 

Similar to 20190731 Azure Functions x Line at Azure Tech Lab #4 (20)

Smart store servlerless-20191030-40min
Smart store servlerless-20191030-40minSmart store servlerless-20191030-40min
Smart store servlerless-20191030-40min
 
Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編Smart Store サーバーレスアーキテクチャ編
Smart Store サーバーレスアーキテクチャ編
 
20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
 
Azure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーションAzure Stack Hybrid DevOpsデモンストレーション
Azure Stack Hybrid DevOpsデモンストレーション
 
Serverless Architecture Overview #cdevc
Serverless Architecture Overview #cdevcServerless Architecture Overview #cdevc
Serverless Architecture Overview #cdevc
 
20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
 
MicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組みMicrosoftのOSSへの取り組み
MicrosoftのOSSへの取り組み
 
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
 
.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化.NETアプリケーションのクラウド最適化
.NETアプリケーションのクラウド最適化
 
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
 
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイントG tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
G tech2016 デジタルトランスフォーメーションを牽引するAzure+OSSのスキル習得ポイント
 
Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門Web サーバー管理者のための Azure App Service 再入門
Web サーバー管理者のための Azure App Service 再入門
 
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)Microsoft Azure の概要と最近のアップデート(2016年6月25日)
Microsoft Azure の概要と最近のアップデート(2016年6月25日)
 
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
Microsoft Azure Stack Overview and Roadmap - March 7th, 2019.
 
Circle of Code with Cloud Foundry
Circle of Code with Cloud FoundryCircle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
 
Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法Azure Monitor Logで実現するモダンな管理手法
Azure Monitor Logで実現するモダンな管理手法
 
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
[Java Festa in 札幌 2012] Windows Azure を活用した Windows 8 アプリケーション開発
 
今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識今改めて学ぶ Microsoft Azure 基礎知識
今改めて学ぶ Microsoft Azure 基礎知識
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
Serverless for VUI
Serverless for VUIServerless for VUI
Serverless for VUI
 

More from Issei Hiraoka

GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CDIssei Hiraoka
 
Infra as Code in Azure
Infra as Code in AzureInfra as Code in Azure
Infra as Code in AzureIssei Hiraoka
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
 
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringVisual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringIssei Hiraoka
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェストIssei Hiraoka
 
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020Issei Hiraoka
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Issei Hiraoka
 
20201015 Azure PaaS Update at Microsoft Ignite 2020
20201015 Azure PaaS Update at Microsoft Ignite 202020201015 Azure PaaS Update at Microsoft Ignite 2020
20201015 Azure PaaS Update at Microsoft Ignite 2020Issei Hiraoka
 
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft20201008 GitHub at Microsoft
20201008 GitHub at MicrosoftIssei Hiraoka
 
Azure Update Summary (App) 202008
Azure Update Summary (App) 202008Azure Update Summary (App) 202008
Azure Update Summary (App) 202008Issei Hiraoka
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis
20191031 Arakawa Camera on Azure CDN for Typhoon HagibisIssei Hiraoka
 
20190626 Get Started Azure Container Registry
20190626 Get Started Azure Container Registry20190626 Get Started Azure Container Registry
20190626 Get Started Azure Container RegistryIssei Hiraoka
 
de:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショーde:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショーIssei Hiraoka
 
20190522 Azure Tech Lab Build 2019 recap
20190522 Azure Tech Lab Build 2019 recap20190522 Azure Tech Lab Build 2019 recap
20190522 Azure Tech Lab Build 2019 recapIssei Hiraoka
 
DevOps on Azure Kubernetes
DevOps on Azure KubernetesDevOps on Azure Kubernetes
DevOps on Azure KubernetesIssei Hiraoka
 
App Service x Jenkins 20171003
App Service x Jenkins 20171003App Service x Jenkins 20171003
App Service x Jenkins 20171003Issei Hiraoka
 
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門Issei Hiraoka
 

More from Issei Hiraoka (18)

GitHub Actions で CI/CD
GitHub Actions で CI/CDGitHub Actions で CI/CD
GitHub Actions で CI/CD
 
Infra as Code in Azure
Infra as Code in AzureInfra as Code in Azure
Infra as Code in Azure
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringVisual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
 
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
 
20201015 Azure PaaS Update at Microsoft Ignite 2020
20201015 Azure PaaS Update at Microsoft Ignite 202020201015 Azure PaaS Update at Microsoft Ignite 2020
20201015 Azure PaaS Update at Microsoft Ignite 2020
 
20201008 GitHub at Microsoft
20201008 GitHub at Microsoft20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
 
Azure Update Summary (App) 202008
Azure Update Summary (App) 202008Azure Update Summary (App) 202008
Azure Update Summary (App) 202008
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis
 
20190626 Get Started Azure Container Registry
20190626 Get Started Azure Container Registry20190626 Get Started Azure Container Registry
20190626 Get Started Azure Container Registry
 
de:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショーde:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショー
 
20190522 Azure Tech Lab Build 2019 recap
20190522 Azure Tech Lab Build 2019 recap20190522 Azure Tech Lab Build 2019 recap
20190522 Azure Tech Lab Build 2019 recap
 
DevOps on Azure Kubernetes
DevOps on Azure KubernetesDevOps on Azure Kubernetes
DevOps on Azure Kubernetes
 
App Service x Jenkins 20171003
App Service x Jenkins 20171003App Service x Jenkins 20171003
App Service x Jenkins 20171003
 
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 

Recently uploaded (9)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 

20190731 Azure Functions x Line at Azure Tech Lab #4

  • 1. Azure Azure Functions x LINE Issei Hiraoka / @hoisjp Cloud Solution Architect – Microsoft Japan 2019/07/31 25min; Azure Tech Lab #4 https://azure-tech-love.connpass.com/event/137321/ Azure Serverless in Action
  • 2. 平岡 一成 ひらおかいっせい 日本マイクロソフト株式会社 パートナー事業本部、パートナー技術統括本部 クラウドソリューションアーキテクト 担当領域 Azure Apps (Application Development) Web, API Server, PaaS, OSS, Container, Cognitive Services, NoSQL 経歴 • 2004年より、エンジニアとしてWebアプリケーション開発・運用プロジェクトに従事。 • 2012年に国内最大手EC事業会社に入社。サービスを支えるバックエンドAPIの開発・運用を行うグループマネー ジャを担当。大規模&高負荷システムの構築を得意とする。 • 2017年3月より現職。Azureパートナー向けの技術支援やPoC支援などを担当し、現在に至る。 自己紹介 @hoisjp hoisjp
  • 3. de:code 2019 CD07 AWS 技術者向け Azure サーバーレス 日本マイクロソフト株式会社 クラウドプラクティス技術本部 クラウドソリューションアーキテクト 平岡 一成 LinkedIn: hoisjp Twitter: @hoisjp https://www.microsoft.com/ja- jp/events/decode/2019session/detail.aspx?sid=CD07
  • 4. アジェンダ 前半戦 Serverless on Azure • Azure Functions • トリガー、バインドの利用方法 • 2つのホスティングプラン 後半戦 Azure Functions x LINE 連携で学ぶ サーバーレスシナリオ • LINE への応答(シンプル) • Azure Bot Service - Line Channel • LINE への応答(非同期) • LINE Front-end Framework (a.k.a. LIFF) • LIFF starter for App Service
  • 6. Microsoft Azure におけるサーバーレス コンポーネント Azure Functions Logic Apps Azure Storage Cosmos DB Azure Active Directory コンピューティング ワークフロー オーケストレーション ストレージ データベース セキュリティと アクセス制御 Event Grid API Management Azure Stream Analytics Azure Bot Service Visual Studio クラウド メッセージング API の管理 分析 Intelligence 開発者ツール
  • 7. Azure Functions とは サーバーを準備せずにコードを記述・実行できるた め、プログラミングに集中できる コードを実行した分だけ課金されるため、コストを 抑えることができる Azure 上の様々なストレージに、少ないコードで読 み書きできる 業務要件に応じたスケーリングが可能 C# / F# / JavaScript / Java / Python などの言 語をサポートするため、開発者のこれまでのスキル を活かすことができる Azure Functions イベント ドリブン型のサーバーレス コンピューティング
  • 8. サーバーレス アプリケーションの例 Web アプリケーション アーキテクチャ IoT バック エンド SaaS 統合 モバイル バック エンド シングル ページ アプリから Functions を呼び出し Functions でユーザー 情報 に基づき、広告を決定 数百万のデバイスが Stream Analytics にデータを送信 Azure Cosmos DB に データを書き込み Functions で データを変換・構造化 OneDrive に Excel ファイルを 保存 Functions で Microsoft Graph API を使いコンテンツを分析 グラフを新規シート に作成 写真を撮ったときに Functions を呼び出し 画像を BLOB に保存 画像をモバイルに合わ せたサイズに変換 ページが完成
  • 10. Azure Functions のコンセプト トリガーとバインディングを使ってAzure やその他の サービスで発生したイベントに応答するコードを記述 コードの実行を発火させる データの入出力用コードを単純化する機能
  • 12. { "disabled": false, "bindings": [ { "queueName": "myqueue-items", "connection": "StrgConnAppSetting", "name": "myQueueItem", "type": "queueTrigger", "direction": "in" }, // … { "name": "myInputBlob", "type": "blob", "path": “work/{queueTrigger}", "connection": "StrgConnAppSetting", "direction": "in" }, { "name": "myOutputBlob", "type": "blob", "path": “work/{queueTrigger}-Copy", "connection": "StrgConnAppSetting", "direction": "out“ } ] } function.json トリガーとバインドの定義
  • 13. module.exports = function(context, myQueueItem, myInputItem, myOutputItem) { // ログ出力 context.log('Node.js Queue trigger function processed’, context.bindings.myQueueItem); // Blob の操作 context.bindings.myOutputBlob = context.bindings.myInputBlob; // 終了 context.done(); }; index.js JavaScript コード
  • 14. 2. 複数のホスティングプラン 従量課金プラン App Service プラン 実行時にリソースが自動で割 り当てられる 専用環境で実行される • スケーリング:自動で無制限 • VNET 接続 不可 • 実行時間:最大10分 • コールドスタートあり • 料金:リソースの使用量と 実行回数に基づき計算 • スケーリング:ユーザが制御 数指定 or メトリックスベース • VNET 接続 可能 • 実行時間:最大無制限 • 常時接続可(Always on) • 料金:固定 (ユーザがコントロール可能)
  • 15. アーキテクチャ Azure App Service と WebJobs が基盤 参考:Ignite 2018 セッション Azure Functions Internals App Service Dynamic Runtime Hosting, CI, Deployment Slots, Remote Debugging, etc. WebJobs Core Programing model, common abstractions WebJobs Extensions Trigger, input and output bindings Azure Functions Runtime (WebJobs Script) Dynamic Compilation, Language abstractions, etc. Language Runtime V1 (C#, Node.js, F#, PHP, Python, etc.) / V2 (C#, Node.js, Java) Code Config 配布用
  • 16. サポートされるプログラミング言語とバージョン 言語 V1 V2 C# GA (.NET Framework 4.7) GA (.NET Core 2) JavaScript GA (Node 6) GA (Node 8 / Node 10) F# GA (.NET Framework 4.7) GA (.NET Core 2) Java - GA (Java 8) Python 試験段階 プレビュー (Python 3.6) TypeScript 試験段階 GA (JavaScript へのトランスパイリングによ る) PHP 試験段階 - バッチ (.cmd / .bat) 試験段階 - Bash 試験段階 - PowerShell 試験段階 プレビュー (PowerShell Core 6) V1 では、1つの関数アプリ内で複数の言語が利用できました。 V2 では、1 つの関数アプリ内で 1 つの言語という制約があります。 配布用
  • 17. 言語ワーカーの実装は GitHub 上に公開 つまり、Issue や Pull Request の状況を確認できる 同様の課題が起きていないかわかる安心感 言語 URL JavaScript https://github.com/Azure/azure-functions-nodejs-worker Java https://github.com/Azure/azure-functions-java-worker Python https://github.com/Azure/azure-functions-python-worker PowerShell https://github.com/Azure/azure-functions-powershell-worker 配布用
  • 18. Azure Functions x LINE 後半戦
  • 21. イベント/メッセージングサービスの使い分け(料金) 料金単価 5000万操作あたり Queue Storage General Purpose v1 (トランザクション最適) キュー操作 (10,000 回あたり) LRS、GRS、RA-GRS 共通で ¥0.0404 ¥201.60 Queue Storage General Purpose v2 (ストレージ最適) キュー操作 (10,000 回あたり) LRS、GRS、RA-GRS 共通で ¥0.448 ¥2,240.00 Service Bus (Basic) 時間料金:0 100万回操作あたり:¥5.60 ¥280.00 Service Bus (Standard) 時間料金 730時間:¥1,098.94 ¥89.600/100 万操作 ¥1,098.94 + 操作分 = ¥4,414.14 Event Grid 100万操作単位:¥67.20 ¥3,353.28
  • 22. Event Grid - フルマネージド イベントルーティングサービス Event Grid の概念 •イベント ソース • イベントの発生場所 •イベント ハンドラー • イベントの送信先 •トピック • 発行元がイベントを送信する エンドポイント •イベント サブスクリプション • イベントをルーティングする エンドポイント Media Service Blob Storage Azure Subscription Resource Group Event Hubs IoT Hub Service Bus カスタム トピック Logic Apps Azure Functions Azure Automation Webhook Queue Storage ハイブリッド 接続 Event Hubs イベント ソース イベント ハンドラー Event Grid トピック イベント サブスクリプション https://docs.microsoft.com/ja-jp/azure/event-grid/overview
  • 23. イベント/メッセージングサービスの使い分け バインディング視点で見ると、(ドキュメント) Type V1 V2 トリガー 入力バインド 出力バインド Event Grid ✔️ ✔️ ✔️ Queue Storage ✔️ ✔️ ✔️ ✔️ Service Bus ✔️ ✔️ ✔️ ✔️ • Event Grid に出力バインドがサポートされていないので、 エンキューはライブラリが必要 • Azure CLI、PowerShell、REST、.NET、Java、Python、Node.js
  • 24. LINE Messaging API 何かの処理 e.g. QnA Maker, Cognitive Service, ML model, etc LINE への応答(シンプル) 一つの Functions で、1. Webhook を受け取る、2. 応答メッセージを送る これでは課題がある。 Good? Yeah! HTTP POST HTTP POST POST https://api.line.me/v2/bot/message/reply { "replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA", "messages": [ {"type":"text", "text":"Yeah!" } ] } 待たせてしまう
  • 25. Azure Bot Service - Line Channel https://docs.microsoft.com/ja-jp/azure/bot-service/bot-service-channel-connect-line?view=azure-bot-service-4.0 何かの処理 e.g. QnA Maker, Cognitive Service, ML model, etc LINE Messaging API Good? Yeah! HTTP POST HTTP POST Azure Bot Service HTTP POST https://api.line.me/v2/bot/message/reply { "replyToken":"nHuyWiB7yP5Zw52FIkcQobQuGDXCTA", "messages": [ {"type":"text", "text":"Yeah!" } ] } Yeah! Good? Webサーバの ように応答
  • 26. LINE への応答(なるべく非同期) Event Grid と Service Bus / Queue を挟んで、まずは LINE へすぐに応答する Good? Yeah! HTTP POST EventGridClientHTTP POST 即レスポンス! 後から応答メッセージ LINE Messaging API コードサンプル:https://github.com/hoisjp/azfunc-line-sample
  • 27. LINE Front-end Framework (a.k.a. LIFF) 通常のブラウザから遷移しても・・・ e.g. https://ishiraok-liff-starter.azurewebsites.net LINE app から表示すると・・・ e.g. line://app/1598355234-Lvd72yp5 LINE app のブラウザ から コンテキスト情報を 取得することができる
  • 28. LIFF のバックエンドは何でもよい。当然 Azure でもよい。 line-liff-starter 1. App Service (Free Plan) に ワンクリックでデプロイできるようにサンプルを用意 https://github.com/hoisjp/line-liff-starter forked from line/line-liff-starter 2. または、静的ページをBlobでホスト 静的HTMLページ == HTTP ==> Azure Functions さらなる情報はこちらを参考に。 Qiita: LINE の LIFF 開発超入門 : LIFF SDK を使った Web アプリの開発
  • 29. LINE 連携 参考ドキュメント Azure Bot Service :ボットを LINE に接続する https://docs.microsoft.com/ja-jp/azure/bot-service/bot-service-channel-connect- line?view=azure-bot-service-4.0 Messaging API リファレンス https://developers.line.biz/ja/reference/messaging-api/ LIFF API リファレンス https://developers.line.biz/ja/reference/liff/
  • 30. NEW! コードサンプルが探しやすくなりました! 例:https://docs.microsoft.com/ja-jp/samples/browse/?products=azure-event-grid • ワンクリックで Azure へデプロイ可能に • もちろんそのままダウンロードも可能 • 直接GitHubのプロジェクトへ移動できるように • インスタントサーチ(+製品と言語で)
  • 33. まとめ 前半戦 Serverless on Azure • Azure Functions • トリガー、バインドの利用方法 • 2つのホスティングプラン 後半戦 Azure Functions x LINE 連携で学ぶ サーバーレスシナリオ • LINE への応答(シンプル) • Azure Bot Service - Line Channel • LINE への応答(非同期) • LINE Front-end Framework (a.k.a. LIFF) • LIFF starter for App Service
  • 34. Microsoft Learn Azure Functions のコースが追加されました! https://docs.microsoft.com/ja-jp/learn/ • アカウント不要で 無料のサンドボックスを利用 サーバーレス アプリケーションの作成 • Azure Functions を使用したサーバーレス ロジック の作成 • トリガーを使用して Azure 関数を実行する • 入力バインディングと出力バインディングを使用して Azure 関数を連結する
  • 35. ◼ 本書に記載した情報は、本書各項目に関する発行日現在の Microsoft の見解を表明するものです。Microsoftは絶えず変化する市場に対応しなければならないため、 ここに記載した情報に対していかなる責務を負うものではなく、提示された情報の信憑性については保証できません。 ◼ 本書は情報提供のみを目的としています。 Microsoft は、明示的または暗示的を問わず、本書にいかなる保証も与えるものではありません。 ◼ すべての当該著作権法を遵守することはお客様の責務です。Microsoftの書面による明確な許可なく、本書の如何なる部分についても、転載や検索システムへの格納または挿入を行うことは、どのような形式または手段(電子的、機械的、複 写、レコーディング、その他)、および目的であっても禁じられています。 これらは著作権保護された権利を制限するものではありません。 ◼ Microsoftは、本書の内容を保護する特許、特許出願書、商標、著作権、またはその他の知的財産権を保有する場合があります。Microsoftから書面によるライセンス契約が明確に供給される場合を除いて、本書の提供はこれらの特許、商 標、著作権、またはその他の知的財産へのライセンスを与えるものではありません。 © 2019 Microsoft Corporation. All rights reserved. Microsoft, Windows, その他本文中に登場した各製品名は、Microsoft Corporation の米国およびその他の国における登録商標または商標です。 その他、記載されている会社名および製品名は、一般に各社の商標です。