SlideShare a Scribd company logo
Azure FunctionsとCSX
2017年2月16日
第5回 城東.NET勉強会
まずは自己紹介
・名前
木下 裕之
・HN:Kingkino
・SNS
Twitter @kingkinoko FaceBookやってます。GitとLinkedInもちょこっと・・・。
・Azure暦:6年
・Azure Function暦:6ヶ月
・MCSA : Cloud Platform (MCP 70-532:70-533)
※この資料は2017年2月16日時点での情報を元に作成しています。
AzureFunctionsとは
Azure Functionは非常駐型のプロセスをイベントによってトリガーして実行するサービスです。
いわゆるサーバレスアーキテクチャで動作しているのでプログラマはコードだけ意識すればいいようになっています。
特徴としては下記が挙げられます
• インフラの管理コストを削減できる
• アプリケーションサーバーとしては自由度が低いが、BaaSよりかは自由度が高いコンピューティングが可能
• 常駐型と比較するとアプリケーションのプロセス起動によるオーバーヘッドが大きくなり、速度が遅くなる可
能性がある
2016年4月にPublic Previewになって2016年11月にGAしました。
2016年の4月はLineのDeveloper公開があったためFunctionsと連携したLineBotを試している人が多かったです。
出展:https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-overview
Azure Functionsで出来る事
Functions Template
言語
C# F# JavaScript Php PowerShell Python Batch Bash
BlobTrigger 〇 〇 〇
Empty 〇 〇 〇 〇 〇 〇 〇 〇
EventHubTrigger 〇 〇 〇
Facelocator 〇 〇
GenericWebhook 〇 〇
GitHUBCommenter 〇 〇
GitHubWebhook 〇 〇
HttpGET(CRUD) 〇 〇 〇
HttpPOST(CRUD) 〇 〇
HttpPUT(CRUD) 〇 〇
HttpTrigger 〇 〇 〇 〇
Image resize 〇
ManualTrigger 〇 〇
QueueTrigger 〇 〇 〇 〇 〇 〇 〇 〇
SAS Token Generator 〇 〇
ServiceBusQueueTrigger 〇 〇
ServiceBusTopicTrigger 〇 〇
TimerTrigger 〇 〇 〇
Script Script node
Azure Functionsでは下記のテンプレートが用意されています。
Azure Functions開発(Azure Portal編)
Azure Portal画面で開発することが可能です。
左図はFaceLocatorテンプレートを言語C#を選択して
作成したものになります。C#のように見えますが実
際のところはCSharpScriptです。なので拡張子がCSX
になっています。
この画面ではコード補完やインテリセンスがサポート
されていないためメモ帳でコーディングするような
ニュータイプ並みのコーディング能力を求められます。
Functionsのテスト用のWebPostコントローラや実行
状況を監視するためのモニターが用意されています。
実行監視モニターはライブ監視ができます。起動しな
かったりと不安定ですが意外と便利です。
この画面では開発はせずにテストや実行監視、ログ確
認等をするのが推奨されます。
Azure Functions開発(Visual Studio 編)
参考:「VS Tools for Azure Functions」 https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/
「Visual Studio Tools for Azure Functions」をイン
ストールするとVisual StudioでFunctionsの開発がで
きます。
Azure Functions用のエミュレータも用意されている
のでローカル実行・ブレークポイントやウォッチ式に
よるデバッグが可能です。
但し、CSharpScriptのインテリセンスの効き方は微
妙です。
※誤解がないように説明しておきbますとVisual
StudioでCSharpScriptのインテリセンスは効きます。
C#インタラクティブではサポートされています。
Azure FunctionsのcsxファイルでCSharpScriptのイ
ンテリセンスが一部サポートされておりませんが
AzurePortalよりかは開発しやすいです。
Azure Functions開発(デモ 編)
Facelocatorのデモ
下記のURLでデモと同じ内容を記載していますのでご興味があれば参照ください。
http://blog.kokoni.jp/2017/02/06/azurefunctions%E3%81%AEfacelocatorcsharp%E3%82
%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/
Azure Functions開発の考察1
先にも説明しましたとおりAzure Functionsの開発ではCSharpScriptのインテリセンスが一部効きません。
つまりCSharpScriptでの開発は非常に効率が悪いということになります・・・。
■ 対応策
1. F#スクリプトを利用する。F#は全般的にVSが対応しているのでF#スクリプトでもインテリセンスが効き
ます。
2. Node.jsを利用する。Node Tools For Visual Studioをインストールすればインテリセンスが効きます。
参考:https://www.visualstudio.com/ja/vs/node-js/
対応策としてはC#以外を利用するという結論になってしまいます・・・。
どうしてもインテリセンスの効いた環境でFunctions開発したい人は、今年の1月5日にサポートされたプリコン
パイルを利用しましょう。プリコンパイルをサポートしたことでてコンパイル済みアセンブリ(DLL)を参照する
ことが出来る様になりました。
Azure Functions開発の考察2
プリコンパイル版で開発を行えばVisual StudioとC#恩恵を享受した開発ができます。
プリコンパイルに対応したことでcsxの価値が下がりました。
もちろんcsxで開発するメリットが全くないわけではないですがプリコンパイルの方がメリットは多いです。
但しプリコンパイル版にはデメリットもあります。
デプロイ時は手動でAzure Functionsにアップロードする必要があります。
AppServiceが古いDLLをキャッシュするのでデプロイするたびに再起動が必要になったりとかkuduでw3cのプ
ロセスをキルする必要があります。
上記の対応はpower shellで対応しようと思えばできなくはないです。
参考:
https://github.com/Azure/azure-webjobs-sdk-script/wiki/Precompiled-functions
https://buchizo.wordpress.com/2017/01/06/azure-functions-
%E3%81%AE%E3%83%97%E3%83%AA%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB
%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88/
Azure Functions開発のまとめ
現状の結論としては「もう少し様子を見ましょう」となります。
Visual Studio 2017でもしかしたらCSXのインテリセンスをフルサポートするかもしれません。
もしくは今後プリコンパイルを主流にVisual Studioを対応させAzure Functions用のCIやCD機能を追加するか
もしれません。
Azure Bot ServiceもFunctions上で稼動しているので早急に方向性を決めてもらってC#で快適なFunctions生
活を送れるようになれればいいなぁと思う次第です。
WebAppsではなくAzure Bot Service(Functions)でLINE Bot作りたいんじゃ・・・。

More Related Content

PPTX
Azureコスト管理機能のお話
PPTX
「Azure durable functions」の概要
PPTX
Azureもくもく会@東京のいままでとこれからと
PDF
Sensu Introduction
PDF
Azure serverlesssummit2018
PDF
各社のFaaSを比較してみる
PPTX
AzureStorageのオブジェクトレプリケートを試してみた
PDF
Sensuでネットワーク監視やってみた
Azureコスト管理機能のお話
「Azure durable functions」の概要
Azureもくもく会@東京のいままでとこれからと
Sensu Introduction
Azure serverlesssummit2018
各社のFaaSを比較してみる
AzureStorageのオブジェクトレプリケートを試してみた
Sensuでネットワーク監視やってみた

What's hot (20)

PDF
20190731 Azure Functions x Line at Azure Tech Lab #4
PPTX
azure functionsでlinebotを作ってみた
PPTX
Azure DevOpsで技術同人誌作成
PPTX
Client Side Balzorでツールを作ってみた
PDF
イケてる分析基盤をつくる
PDF
OSS監視ツールSensuの紹介
PDF
sensuのちょっと進んだ使い方
PDF
[MW07] OSS on Azure で構築するモバイルバックエンド
PDF
implyを用いたアクセスログの可視化
PPTX
第15回JSSUG「Azure SQL Database 超入門」
PDF
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
PDF
DatadogでAWS監視やってみた
PPTX
NGINX Ingress With GKE
PDF
第3回岡山PHP勉強会
PDF
しみじみサーバーレス
PDF
はじめよう Azure Functions
PDF
これからAzureを始める人へ(LT)
PDF
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
PPT
Fkss1.0 基本設計書
PDF
Azure Kubernetes ServiceとCI/CD pipeline
20190731 Azure Functions x Line at Azure Tech Lab #4
azure functionsでlinebotを作ってみた
Azure DevOpsで技術同人誌作成
Client Side Balzorでツールを作ってみた
イケてる分析基盤をつくる
OSS監視ツールSensuの紹介
sensuのちょっと進んだ使い方
[MW07] OSS on Azure で構築するモバイルバックエンド
implyを用いたアクセスログの可視化
第15回JSSUG「Azure SQL Database 超入門」
[DO13] 楽天のクラウドストレージ使いこなし術 Azure と OSS で少しずつ進めるレガシー脱却
DatadogでAWS監視やってみた
NGINX Ingress With GKE
第3回岡山PHP勉強会
しみじみサーバーレス
はじめよう Azure Functions
これからAzureを始める人へ(LT)
LINE LIFF with Azure ハンズオン資料 - Azure サービス解説
Fkss1.0 基本設計書
Azure Kubernetes ServiceとCI/CD pipeline
Ad

Similar to azure functionsとcsx (20)

PDF
ゆるふわAzure Functions
PPTX
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
PDF
Azure Functionsでサーバーレスアプリケーション構築
PDF
Azure Functionsでサーバーレスアプリケーション構築
PPTX
Azure Functions あれこれ
PDF
[Japan Tech summit 2017] APP 003
PDF
Azure Functions と Serverless - 概要と企業向け Tips
PPTX
Azure Functionsを業務利用する時の勘所
PDF
[HAKODATE Developer Conference 2018] 「Azure Functions」で始めるサーバーレス アプリケーション開発
PDF
5分では終わりそうにないfunctionsの話
PPTX
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
PPTX
Dotnetconf2017
PPTX
Azure serverless!! azure functionsでサーバーを意識しない開発
PPTX
Visual Studio 2017 で Azure Functions の開発
PDF
Azure Functions 入門
PDF
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
PDF
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第8回.pdf
PDF
20190514 Smart Store - Azure servlerless architecture
PDF
Smart Store サーバーレスアーキテクチャ編
PDF
サーバーレスの常識を覆す Azure Durable Functionsを使い倒す
ゆるふわAzure Functions
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Functionsでサーバーレスアプリケーション構築
Azure Functionsでサーバーレスアプリケーション構築
Azure Functions あれこれ
[Japan Tech summit 2017] APP 003
Azure Functions と Serverless - 概要と企業向け Tips
Azure Functionsを業務利用する時の勘所
[HAKODATE Developer Conference 2018] 「Azure Functions」で始めるサーバーレス アプリケーション開発
5分では終わりそうにないfunctionsの話
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
Dotnetconf2017
Azure serverless!! azure functionsでサーバーを意識しない開発
Visual Studio 2017 で Azure Functions の開発
Azure Functions 入門
[AC11] サーバー管理よ、サヨウナラ。サーバーレスアーキテクチャの意義と実践
AZ-305 Microsoft Azure Infrastructure Solutions 取得学習会 第8回.pdf
20190514 Smart Store - Azure servlerless architecture
Smart Store サーバーレスアーキテクチャ編
サーバーレスの常識を覆す Azure Durable Functionsを使い倒す
Ad

More from 裕之 木下 (11)

PPTX
ノンコーディングでLineBotを作る MS FLOW編
PPTX
クラウドで動画配信
PPTX
Xamrin de live2d
PPTX
Azure vs aws比較 エンコード ace用
PPTX
ノンプログラミングで楽したい
PPTX
azure botserviceをもっと身近に
PPTX
azure障害は忘れたころにやってくる
PPTX
明日から役立つazure①
PPTX
昨今のpaas事情
PPTX
懲りずにazure functionsでlinebotを作ってみた
PPTX
build2017のazure関連情報まとめ
ノンコーディングでLineBotを作る MS FLOW編
クラウドで動画配信
Xamrin de live2d
Azure vs aws比較 エンコード ace用
ノンプログラミングで楽したい
azure botserviceをもっと身近に
azure障害は忘れたころにやってくる
明日から役立つazure①
昨今のpaas事情
懲りずにazure functionsでlinebotを作ってみた
build2017のazure関連情報まとめ

azure functionsとcsx