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

完了

.NET Core アプリケーションにサポートを追加して、構成ファイルから接続文字列を取得しましょう。 JSON ファイルで構成を管理するために必要なプラミングを追加することから始めます。

JSON 構成ファイルを作成する

  1. まだ移動していない場合は、ディレクトリを PhotoSharingApp ディレクトリに移動します。

    cd PhotoSharingApp
    
  2. 次のコマンドを入力します。touch ツールを使って、appsettings.json という名前のファイルが作成されます。

    touch appsettings.json
    
  3. エディターでプロジェクトを開きます。 ローカルで作業している場合は、任意のエディターを使用できます。 拡張クロスプラットフォーム IDE である Visual Studio Code をお勧めします。 Azure Cloud Shell (右側) で作業している場合は、Cloud Shell エディターを使用することをお勧めします。 次のコマンドを使用して、いずれかの環境でエディターを開きます。

    code .
    
  4. エディターで、appsettings.json ファイルを選び、次のテキストを追加します。

    {
        "ConnectionStrings": {
            "StorageAccount": "<value>"
        }
    }
    
  5. キーボード ショートカット (Ctrl + S) を使うか、または (エディターのタイトル バーにある省略記号 [...] アイコンを選び) コンテキスト メニューから [保存] を選んでファイルを保存します。

  6. ここで、Azure コマンドを使って実際のストレージ アカウント接続文字列を取得する必要があります。 Cloud Shell セッションで、次のコマンド (<name> を、前の演習で作成した一意のストレージ アカウント名に置き換える) を貼り付けてから、Enter キーを押してコマンドを実行します。

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. 応答には引用符で囲まれた接続文字列が含まれ、次の例のようになります。

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
    
  8. 接続文字列をコピーし、エディター内の appsettings.json ファイルで、<value> プレースホルダーをこの接続文字列に置き換えます。

  9. Ctrl + S キーを押して、ファイルを保存します。

  10. エディターで、プロジェクト ファイル PhotoSharingApp.csproj を開きます

  11. 次の構成ブロックをコピーし、既存の <ItemGroup> ブロックの下に貼り付けます。

    <ItemGroup>
        <None Update="appsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  12. Ctrl + S キーを押して、ファイルを保存します。 (このファイルは必ず保存してください。そうしないと、以下のパッケージを追加するときに変更内容が失われます)。

JSON 構成ファイルを読み込むためのサポートを追加する

Cloud Shell コンソールで、次のコードをコピーして実行し、Microsoft.Extensions.Configuration.Json NuGet パッケージに参照を追加します。

dotnet add package Microsoft.Extensions.Configuration.Json

構成ファイルを読み取るためのコードを追加する

これで構成の読み取りを有効にするために必要なライブラリが追加されたので、コンソール アプリケーション内でその機能を有効にする必要があります。

  1. エディターで、Program.cs を選択します。

  2. ファイルの先頭には、コメント付きのコード行があります。 その行を削除し、次のコード行をファイルの先頭に追加します。

    using System;    
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
  3. Main メソッドの内容 ("Hello World!" を含む行) を次のコードに置き換えます。

    namespace PhotoSharingApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("appsettings.json");
    
                var configuration = builder.Build();
            }
        }
    }
    

    このコードにより、appsettings.json ファイルから読み込む構成システムが初期化されます。

    これで、Program.cs ファイルは、このようになります。

    using System;
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
    namespace PhotoSharingApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("appsettings.json");
    
                var configuration = builder.Build();
            }
        }
    }
    
  4. ファイルを保存します。

Node.js アプリケーションにサポートを追加して、構成ファイルから接続文字列を取得しましょう。 JavaScript ファイルから構成を管理するために必要なプラミングを追加することから始めます。

.env 構成ファイルを作成する

  1. Azure Cloud Shell セッションで、次のコマンドを入力して、プロジェクト用の正しい作業ディレクトリにいることを確認します。

    cd PhotoSharingApp 
    
  2. 次のコマンドを入力して、.env という名前のファイルを作成します。

    touch .env
    
  3. Cloud Shell エディターでプロジェクトを開きます。

    code .
    
  4. エディターで、.env ファイルを選択し、次のテキストを追加します。

    Note

    新しいファイルを表示するには、コード内で更新ボタンを選ぶことが必要になる場合があります。

    AZURE_STORAGE_CONNECTION_STRING=<value>
    

    ヒント

    AZURE_STORAGE_CONNECTION_STRING は、Storage API でアクセス キーを検索するために使われるハード コーディングされた環境変数です。

  5. キーボード ショートカット (Ctrl + S) を使うか、またはエディターのタイトル バーにある省略記号アイコン [...] を選び、コンテキスト メニューから [保存] を選んでファイルを保存します。

  6. ここで、Azure コマンドを使用して実際のストレージ アカウント接続文字列を取得する必要があります。 Cloud Shell セッションで、次のコマンドを実行します。これにより、<name> が、前の演習で作成したストレージ アカウント名に置き換えられます。

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. 応答は、引用符で囲まれた長い接続文字列で、次の例のようになります。

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="  
    
  8. 接続文字列をコピーし、.env ファイルで、<value> をこの接続文字列に置き換えます。

  9. Ctrl + S キーを押して、ファイルを保存します。

環境構成ファイルを読み取るためのサポートを追加する

dotenv パッケージを追加することによって、Node.js アプリに .env ファイルから読み取るためのサポートを含めることができます。

  1. Cloud Shell セッションで、次のコマンドを実行します。npm を使って、dotenv パッケージに依存関係が追加されます。

    npm install dotenv --save
    

構成ファイルを読み取るためのコードを追加する

これで構成の読み取りを有効にするために必要なライブラリが追加されたので、アプリケーションでその機能を有効にする必要があります。

  1. エディターで、index.js ファイルを開きます。

  2. ファイルの先頭には、コード行 #!/usr/bin/env node があります。 その行の下に、次のコード行を追加します。

    require('dotenv').config();
    
  3. Ctrl + S キーを押して、ファイルを保存します。

これで JSON 構成がすべて接続されたので、ストレージ アカウントを使用するコードの追加を開始できます。