O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Azure Functions 入門

2.264 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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 プロ生ちゃんアイコン公開中!

×