【Microsoft Azure】WebアプリとAzure Storageを連携する

こんにちは。この記事では、Webアプリケーションのストレージとして、Azure Storageを利用する場合の連携方法について、整理しておこうと思います。

こちら、Microsoftが提供する「Microsoft Learn」のシナリオに沿って学習を進めていますので、オリジナル版はこちらをご参照ください。

https://docs.microsoft.com/ja-jp/learn/modules/connect-an-app-to-azure-storage/3-exercise-create-your-app?pivots=javascript

Node JSで簡易アプリケーションを作成する

まずは、連携させるもとの超絶簡易アプリケーションをNodeJSで作成します。

Azure Cloud Shell を利用してコマンドラインから作っていきます。

mkdir PhotoSharingApp

cd PhotoSharingApp
npm init -y

touch index.js

index.jsに以下のコードを書き込みます。

#!/usr/bin/env node

function main() {
    console.log('Hello, World!');
}

main();

保存した上で、アプリケーションを実行します。

node index.js

ストレージアカウントを作成する

こちらは、前の記事をご参考にしていただければと思います。

アプリからAzure Storageに接続できるようにする

Azure-Storageへのアクセスは、Azureの提供するREST-APIを経由して行われます。

まずはこれをアプリ側で呼び出せるように準備を行います。

azure-storageパッケージのインストール

JavaScript(NodeJS)の場合、azure-storageをnpm経由でインストールします。

–saveオプションを指定することで、package.jsonにも書き込まれます。

npm install azure-storage --save

アプリにAzure-Storageの構成を追加する

次に、アプリ側でREST-APIを使うために必要な、認証情報などの設定を行います。

今回は、.envファイルを作成し、そちらに構成設定を記述する方式をとります。

まずは空ファイルを作り・・

touch .env

Azure-Storageの認証情報を取得し・・・

az storage account show-connection-string \
    --resource-group learn-0b23dff6-997e-4471-a2a3-0a0e4c68b9c4 \
    --query connectionString \
    --name <name>

このコマンドで返ってくる” “で囲まれた文言を、.envに以下の形式で追加します。(valueの部分を置き換え)

AZURE_STORAGE_CONNECTION_STRING=<value>

そして、アプリ側でこの構成ファイルを読み込めるようにするために、dotenvというライブラリを追加でインストールした上で、index.jsに以下コードを追加します。

npm install dotenv --save
## index.js

#!/usr/bin/env node
require('dotenv').config();

## 先ほどのHello Worldは消してしまってOKです

以上で、アプリケーションからAzure-Storageを操作する準備は整いました。

Azure Storageを操作するコードを記述する(サンプル)

例えば、BLOB Storageのコンテナを作成する処理を書きたい場合、以下のように書けば良いです。

各APIの仕様の詳細は、ここでは解説いたしませんので、公式ドキュメントを参照ください。

#!/usr/bin/env node

## 環境構成ファイルの読み込む
require('dotenv').config();

const util = require('util');

## Azure Storageオブジェクトの初期化
const storage = require('azure-storage');

## BLOBストレージコンテナを作成するためのコード
const blobService = storage.createBlobService();
const createContainerAsync = util.promisify(blobService.createContainerIfNotExists).bind(blobService);

const containerName = 'photoblobs';

async function main() {
    try {
        var result = await createContainerAsync(containerName);
        if (result.created) {
            console.log(`Blob container ${containerName} created`);
        }
        else {
            console.log(`Blob container ${containerName} already exists.`);
        }
    }
    catch (err) {
        console.log(err.message);
    }
}

main();
実行結果

Azure Portal上からも、Blobコンテナが作成されたことが確認できました!

以上、アプリケーション上でAzure Storageを操作する手順を解説いたしました。

再掲ですが、こちらはMicrosoft Learn上でも紹介されていますので、ぜひご参照ください!

https://docs.microsoft.com/ja-jp/learn/

この記事を気に入っていただけたらシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。

ABOUT US

Yuu113
初めまして。Yuu113と申します。 兵庫県出身、東京でシステムエンジニアをしております。現在は主にデータ分析、機械学習を活用してビジネスモデリングに取り組んでいます。日々学んだことや経験したことを整理していきたいと思い、ブログを始めました。旅行、カメラ、IT技術、江戸文化が大好きですので、これらについても記事にしていきたいと思っています。