このページの本文へ

FIXER cloud.config Tech Blog

実用性重視! AzureのマネージドID活用のサンプルコード〔概要〕

2022年09月02日 10時00分更新

文● 松枝宏樹/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「実用性重視!AzureのマネージドID活用のサンプルコード(概要)」を再編集したものです。

 Azure のマネージド ID は分かれば非常に有用な概念なのですが、いざ実装するとなった場合、インフラとアプリケーションが密接に関わっていることもあってハードルが高く思うケースがあると思います。

 そんな皆様のために、いつもの当たり障りのない記事ではなく、しっかり実用的に使えるコードを用意しました。

 早速全体像をご紹介します。

サンプルコードの概要

 コードは下記にあります。

https://github.com/hirokimatsueda/azure-managed-id-sample

 何らかのデータを Functions を経由して Cosmos DB に保管・取得するアプリとインフラのコードのサンプルです。

 

データは少なくとも id と category の値を持つことを想定します。こんな感じで。
{
  "id": "abc123",
  "category": "test",
  "data": "aaaabbbbcccc"
}

 category は Cosmos DB 上のパーティションキーとして設定しますので、一定の法則で値が入ると良いことがありそうですね。

アーキテクチャ

 ユーザーからのリクエストを Functions で受け取り、Cosmos DB とデータのやり取りをするシンプルな構成です。

 Functions の認証は Functions の webbook の API キーを利用します。

 Functions から Cosmos DB にアクセスする手段は様々なものがありますが、表題の通りマネージド ID を使用を想定しています。

コードの構成

 applications フォルダに Functions 上で動作する C#のアプリケーションがあり、infrastructure フォルダに Azure リソースを構築するための terraform のコードがあります。

 infrastructure フォルダの terraform を実行して Azure 上に Functions と Cosmos DB、その他関連リソースを作成した後、applications フォルダのアプリを Functions にデプロイすればアプリにアクセス可能になります。

まとめ

 サンプルコードの概要をご説明しました。

 アーキテクチャ図はシンプルなので、少し安心してもらえたのではないかと思います。

 terraform と Functions 上のアプリの解説記事もありますので、引き続きご確認いただければ幸いです。

⇒ インフラコードの説明

⇒ アプリコードの説明

松枝宏樹/FIXER
 愛知県在住、リモートワーク気味なエンジニア。
 得意分野はC#、ASP.NET、terraform、AKSなど。

カテゴリートップへ