DocumentDBのChange Feed機能を使う方法

アナウンスされてから気になっていた、DocumentDBのChange Feedについて、ようやくじっくり調べられたので、理解したことをメモしておきます。前回に引き続きのDocumentDBネタですが、今回はXamarinは登場しませんっ。

Read More

XamarinからAzure DocumentDB(NoSQL)を利用する

これまでXamarinからは、(サーバを経由せず)直接DocumentDBに接続することはできませんでした。

しかし!How To Build Planet Scale Mobile App in Minutes with Xamarin and DocumentDBでアナウンスがあったように、ついにXamarinから直接DocumentDBに接続することが可能になりました(両方とも個人的な推し技術なので一人で舞い上がってます・・)。

これが実現した背景には、.NET Core対応のDocumentDB SDKがリリースされたことがあるのですが、個人的にはXamarinを.NET Standardで使うきっかけにもなる出来事にもなりました(いろいろ苦労もしました)。

Read More

WordPressをAppService on Linux上にデプロイする

AzureのApp Service on Linux(プレビュー)上にWordPressを構築する機会がありましたので、概要と手順を紹介します。
結論としては、Github連動などのApp Service付加機能を使うことで、Windows版とほぼ変わらない手順でLinux環境にもWordPressを構築できることを確認できました。

Read More

DocumentDBのコレクションをJSONにエクスポートする

AzureのDocumentDBにはちょっとお試ししたい時などに使えるFreeプランがありません。
なので、ちょっとした開発作業で使う場合などは、蓄積したDocumentDBのデータをJSONファイルとしてエクスポートしてしまい、課金の対象となるコレクションはすぐに削除するようにしています。

通常、データベースのサービスには何らかのインポート/エクスポートのツールが存在しているものです。古くからよくお世話になっているのは、オンプレならSQL ServerのSSISだったり、Azure上ならSQL DatabaseポータルでのBLOBへのエクスポート機能あたりでしょうか。

ところが、DocumentDBには一括エクスポートするような機能がポータルには存在していません。かといって、一時的な作業のためにREST APIやSDKなどを駆使してエクスポートするのもしんどいので、Azure DocumentDB Data Migration Toolというデータ移行用のツールをエクスポートにも利用するのがおすすめです。

Read More

Azure Functionsを使ってDocumentDBのコレクション情報を取得する

DocumentDBのデータの格納状況やRUの消費状況などのメトリクスは、基本的にポータルで確認することができますが、グラフでざっと全体感を見るよりも、特定のコレクションについての正確な情報が知りたい局面などもあると思います。

そのような時は、公式ドキュメントにも述べられているように、DocumentDBのAPI群を使ってコレクションのより詳細な使用状況データを取得するのが一般的です。

DocumentDB APIにはRESTを使ってアクセスする方法がありますが、さすがデータベースのマネージドサービスというだけあって、他のサービスのRESTよりもアクセス方法が厳しく、キーさえあれば良いというわけにはいかないとても複雑な手続きが必要です(ハッシュの生成に結局コードを書かなきゃいけない等、個人的には二度とやりたくない系)。

なので特に事情がなければ、REST APIではなく、DocumentDB .NET SDKを使って実装するのがオススメです。この記事では、せっかくなのでGAしたばかりのAzure Functions上に実装して、HTTPトリガーから気軽にDocumentDB APIを呼び出せるように実装してみたいと思います。

Read More

Xamarinアプリの認証にAzure AD B2Cを使ってみよう

本エントリーは Xamarin Advent Calendar 2016 (その1) 8日目のエントリーです。

Xamarinで開発したアプリは、Azure Mobile Appsと組み合わせることで簡単に認証を組み込めることは各所で説明されている通りです。

Mobile Appsの基盤であるAzure App Serviceでは、執筆時点(2016年12月)では以下のIDプロバイダーがサポートされています(これはEasy Authとも呼ばれているようです)。

  • Azure Active Directory
  • Facebook
  • Google
  • Microsoft
  • Twitter

これだけのIDプロバイダーがサポートされていればだいたいの場面で事足りるのでは?と思うかもしれませんが、例えばソーシャルアカウントを使わずにメールアドレスでサインアップできる認証方法を採用したい場合はどうすれば良いのでしょうか?

Read More

Azure App ServiceにLet's Encryptを導入する

常時HTTPSが主流になりつつあるので、Azure App Serviceで運用しているサイトもLet’s Encryptを使ってサクッとHTTPS化を済ませたいところです。

App Serviceには「Site Extentions」という機能を追加できる仕組みがあり、Let’s Encrypt用の機能拡張もGithubで開発されているものが使えるようになっています。

Read More