日本独自 Build 企画:
“MVP Build パーソナルスポンサー”
MVP Build パーソナルスポンサーとは?
Build 2021 の参加者が
セッション内容の理解をより深めて
実践するために役立つ
サンプルコードを提供いただいた
Microsoft MVP 受賞者
大平かづみ / Kazumi OHIRA
• Microsoft MVP for Azure
• Infrastructure as Code やGitHub
Actions による自動化が得意
• Code Polaris
• Hack Everything.
• Cogbot
• Node-RED ユーザーグループ
• @dz_
• @dzeyelid
• zenn.dev/dzeyelid
Open Source on Azure – Developers
Tell All
https://azure.microsoft.com/en-us/resources/videos/open-source-on-azure-developers-tell-all/
経緯
経緯
https://news.microsoft.com/build-2021-book-of-news/
Book of News
経緯
https://news.microsoft.com/build-2021-book-of-news/
Book of News
経緯
https://news.microsoft.com/build-2021-book-of-news/
要は Docker で動くそうだ
Book of News
経緯
https://news.microsoft.com/build-2021-book-of-news/
要は Docker で動くそうだ
Book of News
Docker で動くなら、
VS Code の Dev Container に組み込めるな💡
経緯
https://news.microsoft.com/build-2021-book-of-news/
要は Docker で動くそうだ
Book of News
Docker で動くなら、
VS Code の Dev Container に組み込めるな💡
Dev Container で動くなら、
GitHub Codespaces で動かせる!🚀
Azure Cosmos DB Emulator
on Docker を GitHub
Codespaces で動かす!
くらでべ
Micorosoft Build 2021 MVP パーソナルスポンサー
ベースとなる技術
ベースとなる技術
Azure Cosmos DB
GitHub Codespaces
Visual Studio Code の
Dev Container の仕組み
Azure Cosmos DB とは
• フルマネージドの NoSQL データベース
• 大規模から小規模まで幅広く対応
• 高パフォーマンス、グローバルでスケーラブル
• 課金方法が柔軟
• プロビジョニングしたスループットのによる課金
• Free レベルや、従量課金型のサーバーレス モデルも
• SQLでクエリ書けるほか、MongoDB や Cassandra、Gremlin など
Azure Cosmos DB エミュレータ
• これまでは、Azure Cosmos DB Emulator = Windows のみ
• Azure Cosmos DB Linux Emulator がリリース! ← 🆕
• すなわち Docker コンテナ版
• 現在はプレビューモードで、SQL API のみサポート
Azure Cosmos DB エミュレータ
Azure Cosmos DB リファレンス
• Azure Cosmos DB の概要 | Microsoft Docs
• Azure Cosmos DB の価格モデル | Microsoft Docs
• Choose an API in Azure Cosmos DB | Microsoft Docs
• Azure Cosmos DB Emulator を使用したローカルでのインストールと開
発 | Microsoft Docs
• Docker for Linux 上で Azure Cosmos DB エミュレーターを実行する |
Microsoft Docs
• Azure Cosmos DB Emulator 証明書をエクスポートする | Microsoft
Docs
GitHub Codespaces
https://github.com/features/codespaces
GitHub Codespaces
• GitHub 上にホストされた"開発環境"🛠
• どこからでも💻🖥
• ブラウザから
• Codespaces 拡張をインストールした Visual Studio Code から
• コラボレーションのしやすさ🤝
• 環境の設定がコードなので、新規構築、環境の共有が用意
• 現在はベータ版公開
• この期間、申請すれば無料で利用可能
GitHub Codespaces
• ポート フォワーディング
• ブラウザでは一時的にURLが割り当てられる
• GitHub の認証を通した Private アクセス(ログイン済みのブラウザならスムーズ
• Make public を行うことで public アクセスも可能
• VS Code で実行中の場合は localhost でアクセス可能
• 課金方法
• (一般提供後)ストレージとコンピューティングの使用量に対して課金
• ベータ期間中は無料(Standard: 4core, 8GB RAM, 32GB)
GitHub Codespaces
環境のカスタマイズは、
Visual Studio Code の Dev Container
GitHub Codespaces リファレンス
• GitHub Codespaces Documentation - GitHub Docs
• codespace で開発する - GitHub Docs
• プロジェクトの Codespace の設定 - GitHub Docs
• Forwarding ports in your codespace - GitHub Docs
• Codespaces の支払いについて - GitHub Docs
Visual Studio Code
の Dev Container の仕組み
• VS Code の Remote - SSH, WSL, Containers
Visual Studio Code
の Dev Container の仕組み
• VS Code の Remote - SSH, WSL, Containers
Visual Studio Code
の Dev Container の仕組み
• VS Code の Remote – Containers
• Docker コンテナに接続して開発できる
• 単一または docker-compose を用いて複数コンテナを扱うことが
できる
• 設定は、 コードで記述可能
• devcontainer.json
• Dockerfile、 docker-compose.yml
Visual Studio Code リファレンス
• Visual Studio Code Remote Development
• Developing inside a Container using Visual Studio Code
Remote Development
• Create a development container using Visual Studio Code
Remote Development
• Advanced Container Configuration (visualstudio.com)
• devcontainer.json reference (visualstudio.com)
つくったもの
https://github.com/dzeyelid/cosmos-db-emulator-on-codespaces
構成
GitHub Codespaces
Azure Functions
開発環境
Azure Cosmos DB
Linux Emulator
ポート フォワーディング
7071ポート 8081ポート
デモあらすじ
• リポジトリの構成を紹介する
• リポジトリから Codespaces を開く
• ローカル実行した Azure Functions へアクセスする(7071ポート)
• Cosmos DB Linux Emulator のUIにアクセスする(8081ポート)
• https://{{ endpoint }}/_explorer/index.html
• VS Code で開いてみる
今回のポイント
Cosmos DB Linux Emulator
GitHub Codespaces
Visual Studio Code の
Dev Container の仕組み

Azure Cosmos DB Emulator on Docker を GitHub Codespaces で動かす!