Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure Functions 入門

2,314 views

Published on

プロ生勉強会 第45回@名古屋のスライド

Published in: Technology
  • Be the first to comment

Azure Functions 入門

  1. 1. Azure Functions 入門 jz5 プロ生勉強会 第45回 @名古屋 2016/11/26
  2. 2. プロフィール • jz5 • 仕事1: プロ生ちゃんP • 仕事2: プログラマー • Xamarin 歴: 1年と少し • Visual Basic 歴: 20年近く
  3. 3. ゴール • Azure Functions を実際に 使ってみて(デモを見て)どういう感じの ものかを知る・簡単に使えるのを知る
  4. 4. Azure Functions (関数) • 2016/11 正式サービス開始 • ※ このニュースで知って使ってみました • “サーバーレス アーキテクチャ”
  5. 5. “サーバーレス”アーキテクチャ • 「サーバー不要のコードアーキテクチャを 使用してイベントを処理」 –Azure Functions Web サイトより • AWS Lambda が有名らしい(はじめた?) • Amazon, Google, IBM, Microsoft で 少し定義が違う?
  6. 6. サーバーがない…だと?
  7. 7. サーバーはありまーす!
  8. 8. たぶんこういうこと • ──これまで • サーバー仮想化の技術等で必要なときに スケールアップ・スケールアウトできる 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 PV
  9. 9. でも • 実は1日3PV… • 応答1秒とすると1日3秒しかサーバー使ってない… • でも24時間サーバー運用… • 3アクセスされる瞬間だけ1秒動かせれば…
  10. 10. こうできる • 要求時のみ実行してその分だけ費用発生 0時 2時 4時 6時 8時 10時 12時 14時 16時 18時 20時 22時 PV
  11. 11. サーバーレスで解決 • 自分でサーバーの運用/管理 –費用: 時間・CPU/メモリ等のスペック・転送量など で計算 • サーバーは”自分で”運用/管理しない • リクエストがあったときの処理(コード)を登録 –費用: 実行回数・実行時間やメモリ使用量などで計算
  12. 12. Azure Functions の一般的なシナリオ • タイマーベースの処理 • Azure サービスのイベント処理 • SaaS イベント処理 • Web アプリアーキテクチャ • モバイルバックエンド • リアルタイム ストリーム処理 • リアルタイム BOT メッセージング 公式サイトより
  13. 13. 実際のところ • 例にした Web サイトをサーバーレスに 置き換えは向いてない感じ –将来はできるようになるかも?
  14. 14. Azure Functions 料金 • 料金(よく変わったりするみたい) –実行時間: ¥0.001632/GB秒 –実行回数: ¥20.40/100万回 • 月々一定量まで無料 • ※ サーバー占有プランあり!? ※GB秒: 実行時のメモリ消費量 x 秒数 例: メモリ1GB使って1秒間実行 = 1GB秒
  15. 15. 実際に使ってみる(関数の作成) 1. Azure Functions ポータルでサインイン – functions.azure.com 2. シナリオの選択 3. 言語の選択 ※「クイックスタート」の例 いろいろなテンプレートからも選べる
  16. 16. 使える言語 • C# • F# • Node.js • Python • PHP • Batch • Bash
  17. 17. 例1: HTTP要求に対しHTMLページを返す • webhook + API シナリオから作成 • 編集して保存後「関数の URL」にアクセスするとサイト が見れる using System.Net; using System.Net.Http.Headers; public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log) { var res = new HttpResponseMessage(); res.Content = new StringContent("<html><body>プロ生ちゃん</body></html>"); res.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html"); return res; }
  18. 18. (例1 画面)
  19. 19. 例1の関数 補足 • 「新しい関数」からテンプレートを選ぶ場合「HTTP要 求を受信するたびに実行される C# 関数」 – HTTP要求は一番わかりやすいかも • テンプレートのコードをもとにパラメーターによりい ろいろレスポンス結果を変えるコードも簡単に書ける • コードは run.csx ファイルを編集している – 「ファイルの表示」から関数のファイル構成を見れる
  20. 20. どんな関数が作れる? • トリガー(何が起きた時に関数を実行開始す るか)は大きく分類して3種類 1. スケジュールした時間ごとに実行 2. Webhook/HTTP要求されたときに実行 3. Azure サービスに関するイベント発生で実行 • Azure ストレージ BLOB が追加されたときなど ※ Webhook: Web サービスから指定した URL を呼び出してもらう仕組み
  21. 21. 関数の構成 • 関数の構成(トリガーの種類など)は function.json に書かれている • 「統合」ページである程度編集できる
  22. 22. 「統合」ページ
  23. 23. 例2: GitHub 連携 • Issue のコメントが投稿されたら関数を実行 • この記事の内容をデモ – https://docs.microsoft.com/ja-jp/azure/azure- functions/functions-create-a-web-hook-or-api-function • GitHub シークレットは「キー」を表示して「関数キー」の値を 使う – ※ Azure 関数からのレスポンス Message が “The WebHook signature provided by the ‘X-Hub-Signature’ header field does not match the value expected by the ‘GitHubWebHookReceiver’ receiver. WebHook request is invalid.” のとき
  24. 24. コードの書き方(C#) • .NET Framework のアセンブリは #r “System.Web.Http” のように記述して参照 • NuGet パッケージも使える –json ファイルを追加・記述する必要あり • #load “foo.csx” のように記述して他のコードを 再利用できる https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-reference-csharp
  25. 25. Visual Studio でローカルデバッグ • Web サイトでコーディングはエディターが貧弱… • Azure Functions の仕組みはオープンソース • ソースコードをダウンロードして環境構築して ローカルデバッグできる ※ 試してません
  26. 26. 継続的なデプロイ • Git, GitHub, Bitbucket, Mercurial, Dropbox, OneDrive, Visual Studio Team Services をサポート • 有効にするとポータルで編集できない • 「関数アプリの設定」→「継続的インテグ レーション」→「セットアップ」 https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-continuous-deployment
  27. 27. デプロイ デモ: GitHub 連携 1. GitHub との連携をセットアップ 2. GitHub リポジトリに関数ファイルを作成 3. Azure Functions ポータルで確認
  28. 28. Azure Functions まとめ • 必要なコードだけをクラウドで実行できる – サーバー運用しない – 生産性もアップ? • トリガーは タイマー・HTTP要求・Azure イベント • 実行した分だけ支払い • C# や Node.js で開発 – 3rd パーティライブラリも使える – GitHub や Visual Studio なども使える
  29. 29. 活用できるかはアイデア次第
  30. 30. ご清聴ありがとうございました Azure Functions 入門 jz5 プロ生勉強会 第45回@名古屋 2016/11/26 プロ生ちゃんアイコン公開中!

×