ROMANCE DAWN for the new world

Microsoft Azure を中心とした技術情報を書いています。

Global Azure Boot Camp 2016 in Japan に参加して LT してきました

jazug.doorkeeper.jp

昨日、Global Azure Boot Camp 2016 in Japan に参加して LT してきました。

speakerdeck.com

Azure Machine Learning の入門的なネタで話しました。回帰分析、クラスタリング、レコメンドあたりのシナリオが分かりやすいです。身近なデータで試してみると面白いので、ぜひ触ってみてください。他の方々の LT も個性的な内容が多く、楽しめました。ついに、VR の世界からデプロイできる時代になりました(笑)

本編としては、Servce Fabric のセッションが、さすが近江さんという内容でした。60 分で理解できるボリュームではないので、第3の Paas として使いこなせるように、しっかりと勉強していきたいです。数回に分けて勉強会を開催する予定があるそうなので、ぜひ参加してみたいです。

まだプレビューですが、Data Lake もいろいろと試したいです。現状、ログ系のデータは Table や Blob に入れっぱなしなので、分析とかに活用できればいいなと期待しています。

追記

LT の内容を別の記事にまとめました。
gooner.hateblo.jp

Azure Functions で SendGrid の Event Webhook からの通知を受け取ってみる

Build 2016 報告会で LT した内容を記事にまとめておきます。
gooner.hateblo.jp
Azure Functions を利用して、SendGrid の Event Webhook から POST されたデータを受け取り、Azure DocumentDB に登録してみます。従来の方法については、過去の記事で書いていますので、Azure Functions との連携にポイントを絞ってまとめます。
gooner.hateblo.jp

Azure Functions を作成する

Azure ポータルから Azure Functions を作成します。テンプレートには、JavaScript の Generic - Webhook を使います。
Trigger の WebHook type を「Not a WebHook」に変更します。初期値の「Generic JSON」のままでは、SendGrid の Event Webhook の通知を受け取れずにかなり悩んだので、忘れずに変更しましょう。

f:id:TonyTonyKun:20160408185754p:plain

続いて、Output に Azure DocumentDB を設定します。Database と Collection がなければ作るように設定し、Azure DocumentDB を作成します。作成に数分かかるので、Azure DocumentDB のステータスが Online になるまで待ちます。

f:id:TonyTonyKun:20160408185836p:plain

最後に、POST された JSON データを Azure DocumentDB に Outputするように、コードを編集します。Document parameter name が「document」なので、bindings にリクエストのボディをセットするだけで OK です。

f:id:TonyTonyKun:20160408185857p:plain

Event Webhook から POST する URL を設定する

SendGrid のダッシュボードで、Mail Settings メニューから Event Notification を Enabled します。HTTP POST URL には、Azure Function Urlを設定します。送信に失敗したメールアドレスの情報を取得したいので、Dropped、Deferred、Bounced のアクションを設定しました。

f:id:TonyTonyKun:20160408185934p:plain

結果確認

存在しないメールアドレス(test@example.com)にメールを送信すると、Azure DocumentDB に JSON データが登録されます。Azure ポータルの Document Explorer から登録されたデータを確認できます。

f:id:TonyTonyKun:20160408190004p:plain

まとめ

今までなら、ASP.NET Web API を実装して、Azure DocumentDB にログを転送するコードを書いて、Azure Web Apps にデプロイする手間が必要でしたが、Azure Functions ならサーバーをデプロイする必要もないですし、僅か数行のコードを書くだけです。まだ Preview ですが、面白いサービスなので、これからも使っていきたいです。
最後に、本当は、Azure Functions のコードを C# で書きたかったのですが、Azure DocumentDB に上手く Output できず、仕方なく Node.js を使いました。C# で Output する方法も調べておきたいところです。

Build 2016 報告会に参加して LT してきました

thinkit.connpass.com


昨日、Build 2016 報告会に参加して LT してきました。

speakerdeck.com



決選投票まで残りましたが、残念ながら de:code の参加チケットは当たりませんでした。でも、Azure Functions の面白さを多少でも伝えることができたと思いますし、懇親会では AWS や Google を使っている方々のお話を聞くことができたり、有意義な時間を過ごせました。こういったエンジニア同士のつながりは貴重ですし、今後も大切にしていきたいと思います。
インプレスさんでは、これからも勉強会を開催していくとのことだったので、また機会があれば参加したいです。

追記

LT の内容を別の記事にまとめました。
gooner.hateblo.jp