SlideShare a Scribd company logo
Visual Studio 2017 で
Azure Functions の開発
CLR/H #clrh106 ~ オータムフェストを楽しもう ~
2017/09/09
Yasuaki Matsuda
自己紹介
札幌在住、.NET系の開発がお仕事
JAZUG札幌支部のスタッフ
2016年~2017年 Microsoft MVP Award を受賞
カテゴリはMicrosoft Azure
Blog:http://vnext-y-blog.azurewebsites.net/
Twitter:@DarkCrash3
Facebook:vnext.y
GitHub:darkcrash
Mvp:profile
Copyright© 2015, JAZUG All Rights Reserved.
2
3
JAZUG 札幌支部(きたあず)
■正式名称
Japan Azure User Group 札幌支部 / 略称:きたあず
■活動概要
Cloudにちょっと興味のあるゆるふわな方から実ビジネスで
使用される方まで学べる勉強会を開催しています。
■Webサイト
http://kitaazu.azurewebsites.net/
きたあずちゃん
(@kitaazu_chan)
今日のお伝えしたいこと
Visual Studio 2017 でパワーアップしたAzure Functions の開発
環境
C#テンプレート、コンパイル、ローカルデバッグ
デプロイ
リモートデバッグ
Azure Functions とCognitive Service 、 Power BIを使いリアル
タイムでツイートを可視化する。
(いっぱいツイートしておいてください)
Copyright© 2015, JAZUG All Rights Reserved.
4
Visual Studio 2017
概要
Copyright© 2015, JAZUG All Rights Reserved.
5
Visual Studio 2017
Copyright© 2015, JAZUG All Rights Reserved.
6
Visual Studio 2017
Copyright© 2015, JAZUG All Rights Reserved.
7
Visual Studio 2017 Installer
Copyright© 2015, JAZUG All Rights Reserved.
8
Microsoft Azure
概要
Copyright© 2015, JAZUG All Rights Reserved.
9
Microsoft Azure
Microsoft が提供している
パブリッククラウドサービス
42
11
https://azure.microsoft.com/ja-jp/regions/
Copyright© 2015, JAZUG All Rights Reserved.
12
Copyright© 2015, JAZUG All Rights Reserved.
13
Azure Functions
概要
Copyright© 2015, JAZUG All Rights Reserved.
14
Azure Functions
2016/11/15 GA!
サーバーレス
課金は、実行・リソース
単位となる
実装が必要
テンプレートがある
Copyright© 2015, JAZUG All Rights Reserved.
15
サーバーレスといってる部分
サーバーのインスタンスが常駐しない
何かのトリガーで実際に動く(プロセスが起動する)
Http Webhook Timer Blob Queue EventHub
トリガー、入力、出力は管理される
Functionsはその入出力に実装をするという感じ
起動に時間がかかるので、
応答速度を求めるものには向いていない
Copyright© 2015, JAZUG All Rights Reserved.
16
Azure Functions の価格
Copyright© 2015, JAZUG All Rights Reserved.
17詳しくは公式を参照してね
https://azure.microsoft.com/ja-jp/pricing/details/functions/
Azure Functions の価格リソース使用量
Copyright© 2015, JAZUG All Rights Reserved.
18詳しくは公式を参照してね
https://azure.microsoft.com/ja-jp/pricing/details/functions/
Functions では、ギガバイト秒 (GB 秒) 単位での実際のリソー
ス使用量に基づいて課金されます。実際のリソース使用量は、
平均メモリ サイズ (GB) に関数の実行にかかった時間 (秒) を乗
じて計算されます。関数によって使用されたメモリは、128
MB 単位で切り上げて測定されます。最大メモリ サイズは
1,536 MB です。実行時間は 100 ミリ秒単位で切り上げて計算
されます。1 つの関数の実行の最小実行時間は 100 ミリ秒、最
小メモリは 128 MB です。Functions の価格には、月間
400,000 GB 秒の無料提供が含まれています。
実際に作ってみる
Timer Trigger
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
20
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
21
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
22
CRON式
{second} {minute} {hour} {day} {month} {day-of-week}
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
23
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
24
そのままデバッグで
はエラー
Local.settings.jsonに
設定する
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
25
ローカルのストレー
ジエミュレータを利
用する設定
もしくは実際にスト
レージアカウントを
作成し、Keyを設定す
る
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
26
破棄されたオブジェ
クトにアクセスでき
ません。.
ポートをバインドで
きないので、
VisualStudioを管理者
で起動する
Visual Studio 2017 のテンプレート
Copyright© 2015, JAZUG All Rights Reserved.
27
無事に開始!
Azure へのデプロイ
Visual Studio 2017 から
Copyright© 2015, JAZUG All Rights Reserved.
28
Visual Studio 2017 からAzureにDeploy
Copyright© 2015, JAZUG All Rights Reserved.
29
Visual Studio 2017 からAzureにDeploy
Copyright© 2015, JAZUG All Rights Reserved.
30
Visual Studio 2017 からAzureにDeploy
Copyright© 2015, JAZUG All Rights Reserved.
31
Visual Studio 2017 からAzureにDeploy
Copyright© 2015, JAZUG All Rights Reserved.
32
Visual Studio 2017 からAzureにDeploy
Copyright© 2015, JAZUG All Rights Reserved.
33
Visual Studio 2017 からAzureにDeploy
Copyright© 2015, JAZUG All Rights Reserved.
34
リモートデバッグ
Copyright© 2015, JAZUG All Rights Reserved.
35
リモートデバッグ
サーバーエクスプローラー
もしくはCloud Explorer
から、デバッガーのアタッチ
Copyright© 2015, JAZUG All Rights Reserved.
36
リモートデバッグ
少し時間がかかる…
ダイアログが出て進捗状況が表示される
このとき、Releaseでビルドしている場合は以下のダイアログ
が表示される。Debugでデプロイしなおす必要がある
Copyright© 2015, JAZUG All Rights Reserved.
37
リモートデバッグ
直接「*.pubxml」を書き換えると手っ取り早い
Copyright© 2015, JAZUG All Rights Reserved.
38
リモートデバッグ
リモートデバッグで
変数を書き換え
ポータルのログが
異なる結果となっている
ことを確認できる
Azureで動いているものが
書き変わったと
Copyright© 2015, JAZUG All Rights Reserved.
39
スケールアウトと
スケールアップ
多数の操作でどうなるか
スケールアウトとスケールアップ
Triggerによって自動的に開始される。並列で動作する。
よって、スケーリングを意識する場面がない。
スケーリングからも解放!
実装は、128MB 100ms単位でカウントされていることを意識
しておけばいいと思われる
メモリ、時間共に切り上げ
Copyright© 2015, JAZUG All Rights Reserved.
41
Azure Functions の使い方
Functions を含むアーキテクチャ 1
Copyright© 2015, JAZUG All Rights Reserved.
43
https://azure.microsoft.com/ja-jp/solutions/architecture/mobile-app-social-with-authentication/
Azure Functions を使用して、サー
バーレスなバックグラウンド処理を行
います。たとえば、コンテナーに新し
い BLOB が追加されると、Azure
Functions によって自動的にサイズ
が変更されます。別の Azure
Functions は、バックグラウンドの複
数の画像を削除するために、キュー
のメッセージをリッスンすることがで
きます。
Functions を含むアーキテクチャ 2
Copyright© 2015, JAZUG All Rights Reserved.
44
https://azure.microsoft.com/ja-jp/solutions/architecture/mobile-app-social-with-authentication/
Azure Functions は、Web サイトからユーザー クリックスト
リーム データを取り込んで、Azure Cosmos DB から既存の
ユーザー履歴を読み取ります。これらのデータはその後、
Machine Learning Web サービスを通して実行されるか、
Redis Cache でコールド スタート データと一緒に使用されて、
製品アフィニティ スコアを取得します。
製品アフィニティ スコアは、パーソナライズされたプランのロ
ジックと一緒に使用され、ユーザーに提案すべき最も関連性
の高いプランを決定します。
Event Grid Preview
サーバーレスの味方
Copyright© 2015, JAZUG All Rights Reserved.
45
Event Grid Preview
2017/8/16のBlogでアナウンスされたサービス
https://azure.microsoft.com/ja-jp/blog/introducing-azure-event-grid-an-event-service-for-modern-applications/
記事にあるように、サーバーレス向け (Functions, Logic Apps)
AMQPを実装するEvent Hubとは異なり、シンプルなWeb API、Web
Hookを利用する
送信側、受信側を1対多、多対1などにできる。
イベントのフィルター処理、再配信、高速(数百万イベント/秒)
シンプルなこともあってリソースをあまり使わない
100万回あたり、30.60- 無料枠 100,000回の操作
Preview中は半額(上記)
Copyright© 2015, JAZUG All Rights Reserved.
46
ちょっと作ってみたもの
Demonstration
Power BI のストリーミングデータセットへ
Copyright© 2015, JAZUG All Rights Reserved.
47
Copyright© 2015, JAZUG All Rights Reserved.
48
Power BI のストリーミングデータセット
Copyright© 2015, JAZUG All Rights Reserved.
49
初回構成
Copyright© 2015, JAZUG All Rights Reserved.
50
Functions
(Event Hub)
Twitter
Power BI
(ストリーミングデータセット)
Dashboard
Text Analytics
Translator Text
(API + Swagger)
Stream AnalyticsLogic App
(Per 15 sec)
Event Hub Event Hub
反省
5日で、サブスクリプションを
使い切ってしまった。
センチメントを出したいがために、
テキスト翻訳・分析のやりすぎ
Logic Apps のアクション数は、
1ツイートで2回。15000ツイート
0.0816- × 15,000 × 2Act = 2,448-
これも思っていたより、かかっていた
肝心なFunctions一番使ってない結果・・
Copyright© 2015, JAZUG All Rights Reserved.
51
そもそも
Dash Board 出したい
Functions 使えていない
Cognitive API呼びすぎ
Event Hub 使うほどじゃない
Stream Analytics 必要?
Copyright© 2015, JAZUG All Rights Reserved.
52
再構成
Copyright© 2015, JAZUG All Rights Reserved.
53
Timer Trigger
(Per 5 sec)
Twitter
(API + Tweetinvi)
Power BI
(ストリーミングデータセット)
Dashboard
Text Analytics
Translator Text
(API + Swagger)
Push
(Web API)
Power BI ストリーミングデータセット
詳しいことは
17:00 #5 "Power BI をシステムやアプリ開発と一緒に使うなら
… ~リアルタイムストリーミングの使い方~“
清水 優吾(しみず ゆうご)さん
で聞いてみましょう!
Copyright© 2015, JAZUG All Rights Reserved.
54
きたあず、JAZUGについて
きたあずサイト
https://kitaazu.azurewebsites.net/
きたあずFacebookグループ
https://www.facebook.com/groups/jazugsapporo/
Jazug Facebook グループ
https://www.facebook.com/groups/jazug/
Copyright© 2015, JAZUG All Rights Reserved.
55
ご清聴ありがとうございました
Copyright© 2015, JAZUG All Rights Reserved.
56

More Related Content

PPTX
Azure Functions あれこれ
PPTX
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
PPTX
なるほどわかった!App Service on Linux
PDF
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
PPTX
Azure DevOps で始めるスタートダッシュ
PDF
Ignite 2021 振り返り(DevOps)
PDF
はじめよう Azure Functions
PPTX
Deploy to Azure by ??? Azure Repos or GitHub
Azure Functions あれこれ
Azure のポータル画面で、AI フレーバな BOT の作成ハンズオン
なるほどわかった!App Service on Linux
20181201 Azure Storage 静的 Web サイト ホスティング #きたあず #jazug
Azure DevOps で始めるスタートダッシュ
Ignite 2021 振り返り(DevOps)
はじめよう Azure Functions
Deploy to Azure by ??? Azure Repos or GitHub

What's hot (20)

PDF
Azure DevOpsとセキュリティ
PDF
Azure DevOps Management in Organization
PPTX
What's new Azure DevOps in //Build 2019
PPTX
Running Kubernetes on Azure
PPTX
ぱぱっと理解するSpring Cloudの基本
PDF
Introduce TFSUG and Azure DevOps Server 2020
PDF
センサーデバイスのデータを使った Microsoft Azure Machine Learning 実装入門
PDF
Try! Visual Studio 209 git feature
PDF
Virtual Machine Scale Sets 概要
PDF
私のMCP試験の挑み方
PPTX
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
PPTX
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
PDF
Azure Boards and Azure Test Plans inside out.
PPTX
Microsoft Azure で スマホからIoTまで
PDF
「何もしないのにCIが失敗した」を防ぐ
PDF
JAZUG5周年総会 仮想マシンの?(ハテナ)を試す
PDF
Deploy Strategy with Azure Pipelines
PPTX
本番運用で使うVisual Studio
PPTX
Azure 三つ巴チームが送るIgnite 振り返り!
PPTX
JAZUG沖縄第二回 Azure App Service Web Apps
Azure DevOpsとセキュリティ
Azure DevOps Management in Organization
What's new Azure DevOps in //Build 2019
Running Kubernetes on Azure
ぱぱっと理解するSpring Cloudの基本
Introduce TFSUG and Azure DevOps Server 2020
センサーデバイスのデータを使った Microsoft Azure Machine Learning 実装入門
Try! Visual Studio 209 git feature
Virtual Machine Scale Sets 概要
私のMCP試験の挑み方
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Boards and Azure Test Plans inside out.
Microsoft Azure で スマホからIoTまで
「何もしないのにCIが失敗した」を防ぐ
JAZUG5周年総会 仮想マシンの?(ハテナ)を試す
Deploy Strategy with Azure Pipelines
本番運用で使うVisual Studio
Azure 三つ巴チームが送るIgnite 振り返り!
JAZUG沖縄第二回 Azure App Service Web Apps
Ad

Similar to Visual Studio 2017 で Azure Functions の開発 (20)

PDF
ゆるふわAzure Functions
PDF
Azure Functions と Serverless - 概要と企業向け Tips
PPTX
Azure serverless!! azure functionsでサーバーを意識しない開発
PDF
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
PDF
Azure Functionsでサーバーレスアプリケーション構築
PDF
20190514 Smart Store - Azure servlerless architecture
PDF
Smart Store サーバーレスアーキテクチャ編
PPTX
Azure Functionsを業務利用する時の勘所
PDF
Azure Functionsでサーバーレスアプリケーション構築
PPTX
「Azure durable functions」の概要
PDF
[Japan Tech summit 2017] APP 003
PPTX
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
PDF
Azure Functions Tips
PDF
Smart store servlerless-20191030-40min
PPTX
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
PDF
はじめての Azure 開発
PDF
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
PDF
[HAKODATE Developer Conference 2018] 「Azure Functions」で始めるサーバーレス アプリケーション開発
PDF
5分では終わりそうにないfunctionsの話
PDF
サーバーレスで作る スマホアプリバックエンド
ゆるふわAzure Functions
Azure Functions と Serverless - 概要と企業向け Tips
Azure serverless!! azure functionsでサーバーを意識しない開発
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
Azure Functionsでサーバーレスアプリケーション構築
20190514 Smart Store - Azure servlerless architecture
Smart Store サーバーレスアーキテクチャ編
Azure Functionsを業務利用する時の勘所
Azure Functionsでサーバーレスアプリケーション構築
「Azure durable functions」の概要
[Japan Tech summit 2017] APP 003
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
Azure Functions Tips
Smart store servlerless-20191030-40min
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
はじめての Azure 開発
Azure と Visual Studio で実践するモダナイゼーションとクラウド ネイティブ アプリケーション開発
[HAKODATE Developer Conference 2018] 「Azure Functions」で始めるサーバーレス アプリケーション開発
5分では終わりそうにないfunctionsの話
サーバーレスで作る スマホアプリバックエンド
Ad

More from Yasuaki Matsuda (7)

PPTX
Azure event grid 紹介
PPTX
Moderator Slide for Global Azure Bootcamp 2019@Sapporo
PPTX
Container x azure x kubernetes
PPTX
NV シリーズのインスタンスでGPU使ってイロイロ想像する
PPTX
Black jumbodogをcoreclrで動かしてみた
PPTX
さくらのクラウド
PPTX
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1
Azure event grid 紹介
Moderator Slide for Global Azure Bootcamp 2019@Sapporo
Container x azure x kubernetes
NV シリーズのインスタンスでGPU使ってイロイロ想像する
Black jumbodogをcoreclrで動かしてみた
さくらのクラウド
Microsoft Azureで描く未来 !CLR/H &Windows女子部 ー lesson1

Visual Studio 2017 で Azure Functions の開発