OSC (オープンソースカンファレンス) 2018 北海道 ~ ハンズオンの補足

今回のハンズオンで触れたの補足記事になります。参加者向けとなります。

https://osc2018-kitaazu.azurewebsites.net/

の下部にある share からスライドを見ていただくとわかるかもしれません。

要約

今回の実装したところは以下のようになります。
Basic C# テンプレートを元に、特定のアクティビティ (メッセージ)で、添付ファイル (Attachment Class)があるときだけ、Bot Frameworkが提供してくれているイメージのURLを引数として、Custom Vision – Custom Vision Prediction 2.0 – PredictImageUrl を呼び出し、結果を文字列にして返す。

Bot Service

ボットの実装をぐっと楽にしてくれるものになります。
https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-3.0

Bot Framework Bot Builder (https://github.com/Microsoft/BotBuilder)

また、ハンズオン中にこれはどういうメンバーを持っているか?といったような質問がありました。リファレンスとして参照するものは、. NET SDK のものを見ていただければよいかと思います。(下のリンク)

https://docs.microsoft.com/en-us/azure/bot-service/dotnet/bot-builder-dotnet-overview?view=azure-bot-service-3.0

C# スクリプト

今回のハンズオンでは、.NET を扱えて、Visual Studio が不要な C# スクリプト(.csx)をベースに、API呼び出しを追加しました。この記事(++C++; // 未確認飛行 C – C#スクリプト実行)を参考にするとわかりやすいかもしれません。 #r で必要とするアセンブリの参照を追加すること。 #load で追加した csx ファイルを読み込んでいます。それ以外は、スクリプトではない、C#と全く同じになります。

Visual Studio を使って、C#として同じこともできますので、Visual Studio をお持ちの方はそちらのほうが、ぐっと楽になります。

Custom Vision プレビュー

ボットの判断能力となるものになります。概要としては、こちらを
これは、画像と分類を教えてあげることで勉強してくれます。
成果として、画像を分類してくれます。教えられたそれぞれの分類に対して、0 ~ 1.00のスコアが与えられます。展示・ハンズオン用の「ラムネ判別機」は、ラムネ、ボトル、チュアブル、飲み物、フローズン、などの分類を教えました。
これは、ブラウザで作ることができるため、今回のハンズオンにぴったりでした。また、受け取った画像は、学習データとして蓄積させていくことができます。もちろん、学習データとして蓄積しないようにもできます。
ラムネ判別機の画像は100程度からスタートして、展示中も学習を続けて130枚程度になりました。

App Service

Web Chat を配置したものになります。概要としては、こちらを
見ていただくとわかりますが、本来はアプリケーションを動作させるものです。
が、今回はオンラインでの編集機能を使いたいためこれを利用しました。
App Service Editor

Azure Functions

ボットの本体の部分です。
しかし、これは、Bot Service (Functions Bot)の一部となります。
概要はこちら

まとめ

というわけで、実はこのハンズオンに参加された方、30分弱で大きく3つ以上のサービスに触れていました。
目的としては、動くものができる!としていましたので、それぞれの使い方を触れる時間はありませんでした。
なお、プレビューの機能も含まれていることは注意してください。
もしどこかの機能に興味があれば、ぜひ、チャレンジしてみてください!
それでは!

ClearDBから、Azure Database for MySQL(Preview) への移行

このブログを作ったときから、ClearDBを使い続けていましたが、今年になって、Azure としてMySQLのマネージドサービスが出た(Preview)ということで、マイグレーションしてみました。

参考にしたのはこの記事
(ほぼそのまま)

https://azure.microsoft.com/ja-jp/blog/cleardb-migration-to-azure-database-for-mysql/

やったこと

  1. リンクの「https://dev.mysql.com/downloads/workbench/」からworkbenchをダウンロードしてインストール
  2. Azureポータル上から、ClearDBの接続文字列を拾い集める。ホスト名、ユーザー名、パスワード。
  3. workbenchを起動して、接続先を登録しておく。テスト接続成功でOK
  4. Azureで作っておいた Azure Database for MySQL の接続文字列を取得。ホスト名、ユーザー名、パスワード。
  5. 同様にworkbenchで接続する。このときポータル上から作業している端末のIPアドレスを許可するように設定する。「+自分の IP を追加」を選ぶと早い。
    保存。
  6. あとは、最初の記事のようにマイグレーションウィザードと!
  7. しかし、途中クエリのタイムアウトエラーが起きたので、サーバーパラメーターの「long_query_time」を10から30に変更して何度かRetryして成功。
  8. WordPress側は、ルートにある「wp-config.php」を書き換えた
  9. しかし、SSL接続を強制しているため、接続エラーとなる。(一度Debugを有効にして確認した)
  10. そこで、「wp-config.php」に
    define('MYSQL_CLIENT_FLAGS', MYSQL_CLIENT_SSL);

を追加して無事に完了

レスポンスは気持ち早くなったような気がしている。

何よりこの記事の画像にしているように、パフォーマンスをメトリックで確認できるので、使っていく中で適切なスケールとかも見えてきそうなところ。

 

Paas上のDevOps というものを受講してみて

とあるきっかけからチャレンジ

Welcome to Microsoft’s Azure Paas上のDevOps!

結果からいうと、合格点70%に対して70%!
で、問題の翻訳の質があんまりよくないのもあったけど、
何を聞かれているのか全くわからないのもあった。。。(多分私のスキル不足)

ほかに受講できるもの「azure-skills」

とはいえ、コースの内容は面白いものでした。

5つのモジュールで構成されており、
最初のモジュールは、DevOpsとは、なぜ?といったような考え方から入り、
自動化するアプローチ、どうしていったらいいかとか。

そして中盤からツールの使い方へフォーカスして、
コードを用いた、ハンズオンまで用意されていました。
このとき、Azureのサブスクリプションや、Visual Studio 2015 が必要になりました。
コースや個人差があるとは思いますが、
全体で12時間以上かかっていたような気がします。補足資料もじっくり読むともっともっとかかりそう。

かかるということはそれだけ多くの内容を知ることができるので、
これはVirtual Academyとは比にならないくらい。

おすすめしたい!と思いますー

ハンズオン

一部内容が古いものがあって、今のAzureに当てはめたときに・・・という補完が必要でした。またビルドエラーになるものもあるので、そこを問題ないようにもっていくというのも一つの醍醐味かなぁと。コードはVS2015のASP.NET Coreであるために、xprojが採用されてます。これは既に古い存在なので、もしかしたら時間とともに動かなくなっていくかも…

Bad Request

何日にも分けてやってたりすると、途中Bad Requestが出るので、
プライベートモードにしたブラウザを使うか、クッキーや履歴を消してログインしなおすと大丈夫でした。
(ヘッダーサイズが大きすぎるぞと怒られるらしい)

認定書?

受講した人に聞くところ、私は最終試験70%だったために、特に何もなく終わったのですが、70%以上の成績をおさめると認定書?みたいなものがもらえるようです。
知識・経験不足…がんばろう

JAZUG 札幌支部第10回勉強会 ~祝!! きたあず2周年記念勉強会~

無事に終了しましたー

そして、ひさしぶりにBlog更新

今回、登壇がメインで、ほとんどスタッフ業務にかかわらなかった分、いろいろ聞けて良かったー(懇親会参加される方はお金払ってください。というくらいしかしていない。ごめんなさい。ごめんなさい・・・)

今回は、きたあず2名、福岡から2名、SendGridの方が1名のセッションでした。

1.BaaSとAzureを絡めたお話(仮)

前半はかるたの話で、いつの間にかWebな話に。

2.Webアプリと他のサービスを絡めてみよう!

自分のセッションは、がんばった!!・・・として。Webアプリの話はできたので、よかったけど、時間があればApplicationInsghtsで、PowerBIのダッシュボード表示を説明したかった!!

 

3.Web制作的にWebAppsを活かす使い方

実際に使った話で、黒い画面がコワイ人でも安心して使えるというWebアプリサービス。

非常にわかりやすいセッションでした!そんな視点でAzure見たことなかったので、IaaSとか出したら、大変なことになりそうと。いろいろ考えさせられました。

4.PaaSを使い倒すためにApp Serviceのおさらいしよう

おさらいのあと、API中毒になればいい!と言い残し、気付いたら登壇者はとうじょうのぞみさん(仮)に変身していて、ライブプログラミングのうえ去っていかれました。

5.Azureでサードパーティサービスを活用する。SendGridを例に。

メールサービスの在り方が変わってきてるよねー。から始まり、スパムメールとして扱われてしまった話、AzureのMarketPlaceからでもサービス開始できるよーと。ただしアカウントは公式サイトで作ったものと違うので注意してねーとのこと。さっそく作ってみましたが、まだ何も活用はしてません。API使えるってことで、SchedulerやらWebJobやら、自動処理の結果を返すものとして組み合わせてみたいですね。

発表資料
Twitterのまとめ
余談

ApplicatoinInsightsをPowerBIに出してましたが、結果報告していませんでしたので、ここで。

人気のあった例外は、Null参照の16回!

ログイン者のアクセストップは67回!

・・・みなさんストレスたまってなくて何よりです!

デバイスは、

Windows10、Windows7、Ubuntu、Windows8.1、OSX10.11、なぜか、WindowsPhone10.0、OSX10.10の順でした。

これは、サーバーサイドにいろいろ埋め込めるってのが面白いサービスですねー

 

ちなみに、上は私の独自ダッシュボードですが、PowerBIのテンプレートのApplicationInsghtsで作ると、日ごとに情報を集約してくれるレポートとダッシュボードがありました。こんな感じ。

さいご

次回は未定です。

個人的に少し回数増えてもいいのじゃないかとも思いますが、アンケートの結果も踏まえてまたよりよくしていきたいなぁときっとおそらくスタッフ一同思っているんじゃないかと思います。

それでは!

 

Microsoft Azure クイック スタート テンプレート試してみた – Web アプリと Redis Cache

今日のテンプレート

Create a Web App plus Redis Cache using a template

ぽちっと!

このテンプレートは、日本語の説明があるようなのでそちらを参照してみてください。ホストにステートとかキャッシュを持つようなWebAppでスケールアウトを行う場合、ホスト固有の情報は複数のホストがあると同期されない。または、アクセスが早い揮発性の大容量メモリがほしいなど。この性質を解決するために、RedisCacheサービスを使うという方法をいつか試したいなぁとか思ったりしました。(これぞ!という実のある用途・目的を思いついてない)もちろんステートを永続化するなら、DBやStorageを使う方法も考えられます。またASP.NETならセッションプロバイダーを独自で実装してしまえば、どうにでもなってしまうでしょう。VNet接続で、IaaSなASPNETStateServerにつなぐ方法もあるかもしれません。(ただ、レスポンスとかどうなるか要検証だとは思う)BlackJumboDogもなんかできそうだなぁとか妄想してはいます。テンプレートを眺めながら何かわくわくしている反面、時間が足りないと感じる今日でした。

それでは!