Advertisement
Advertisement

More Related Content

Similar to azure functionsとcsx(20)

Advertisement
Advertisement

azure functionsとcsx

  1. Azure FunctionsとCSX 2017年2月16日 第5回 城東.NET勉強会
  2. まずは自己紹介 ・名前 木下 裕之 ・HN:Kingkino ・SNS Twitter @kingkinoko FaceBookやってます。GitとLinkedInもちょこっと・・・。 ・Azure暦:6年 ・Azure Function暦:6ヶ月 ・MCSA : Cloud Platform (MCP 70-532:70-533) ※この資料は2017年2月16日時点での情報を元に作成しています。
  3. 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
  4. 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では下記のテンプレートが用意されています。
  5. Azure Functions開発(Azure Portal編) Azure Portal画面で開発することが可能です。 左図はFaceLocatorテンプレートを言語C#を選択して 作成したものになります。C#のように見えますが実 際のところはCSharpScriptです。なので拡張子がCSX になっています。 この画面ではコード補完やインテリセンスがサポート されていないためメモ帳でコーディングするような ニュータイプ並みのコーディング能力を求められます。 Functionsのテスト用のWebPostコントローラや実行 状況を監視するためのモニターが用意されています。 実行監視モニターはライブ監視ができます。起動しな かったりと不安定ですが意外と便利です。 この画面では開発はせずにテストや実行監視、ログ確 認等をするのが推奨されます。
  6. 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よりかは開発しやすいです。
  7. 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/
  8. 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)を参照する ことが出来る様になりました。
  9. 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/
  10. 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作りたいんじゃ・・・。
Advertisement