.NET CoreのWebページからBlob Storage上にファイルを作成する


C#を使って、AzureのBlob Storage上にファイルを作ります。

1. Blob Storageの作成

Azureにサインインして、Blob Storageを作成します。
あまりお金は使いたくないので、なるべく安いプランを使用します。

(1) Azureにサインインして、「ストレージアカウント」を選択
(2) 以下のような感じに設定します。レプリケーションを「LRS」に変更。

※ ホットよりクールのほうが安いけど、微々たる差に見えたのでホットのままにしました。

(3) その他はデフォルトのままで作成。

これでBlob Storageは完成です。

2. コンテナーの作成

作成したBlob Storage上にコンテナーを作成します。

(1) 作成したBlob Storageを選択
(2) メニューから「コンテナー」を選択

(3) 画面上部のメニューにある「+ コンテナー」を選択
(4) テキトーに名前を決めます。アクセスレベルはデフォルトにしておきます。
(5) 「作成」を選択

これでコンテナーが完成します。

3. 接続文字列の取得

Webからコンテナーにファイルを作成するために、接続文字列を取得しておきます。

(1) 作成したBlob Storageを選択
(2) メニューの「設定」にある「アクセスキー」を選択
(3) key1とkey2の二つがあるので、片方の「接続文字列」を控えておきます。

4. C#のコード

Blob Storageにファイルを作成するためのコードを打ちます。

    public class AzureBlobService
    {
        private readonly CloudStorageAccount _account;
        private readonly AppSettings _appSettings;

        public AzureBlobService(AppSettings appSettings)
        {
            _appSettings = appSettings;

            // 設定ファイルから接続文字列を取得 
            var connectionString = appSettings.AzureStorageConfig.AZURE_STORAGE_CONNECTION_STRING;

            // ストレージアカウントのオブジェクトを作成
            _account = CloudStorageAccount.Parse(connectionString);
        }

        public async Task CreateBlobAsync(string blobName)
        {
            // Blobクライアントを作成
            var client = _account.CreateCloudBlobClient();

            // Blobコンテナの参照を取得
            var container = client.GetContainerReference(_appSettings.AzureStorageConfig.ContainerName);

            // Blobコンテナが存在していなかったら作成
            await container.CreateIfNotExistsAsync();

            // Blobの追加
            {
                // 引数に指定されたファイル名で作成する
                var blob = container.GetBlockBlobReference(blobName + ".txt");

                // 引数に指定した内容がファイルに書き込まれる
                await blob.UploadTextAsync("file content");
            }
        }
    }

このメソッドを実行したところ、ちゃんとコンテナーにファイルが作成されたことが確認できました。

次は、このファイルの内容をAzureのリソーステンプレートの内容にするのが目標ですね・・・
(Webからいろいろ入力して、リソーステンプレートを作りたい)