■サンプル
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using System;
using System.Configuration;
namespace GetStorageFunc
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
// local.settings.jsonのValueからTestの値を取得する事ができる
var str = ConfigurationManager.AppSettings.Get("Test");
Console.WriteLine(str);
// Azure Storageの接続文字列からAzure Storageアカウントを解析
// ConfigurationManager.ConnectionStrings["StorageConStr"].ConnectionStringで
// local.settings.jsonの「ConnectionStrings」に記載した「StorageConStr」を参照する
// "ConnectionStrings" : {"StorageConStr" : "ストレージの接続文字列"}
CloudStorageAccount account = CloudStorageAccount.Parse(
ConfigurationManager.ConnectionStrings["StorageConStr"].ConnectionString);
// Blobクライアント生成
CloudBlobClient client = account.CreateCloudBlobClient();
// Blobクライアントにコンテナー名をセットして、Azure Storageのコンテナーを参照できるようにする
CloudBlobContainer container = client.GetContainerReference("test");
// コンテナーが存在してない場合は作成
container.CreateIfNotExistsAsync().Wait();
// コンテナーからファイル内容を取得(第一引数:プレフィックス文字 第二引数:フラットリストにblobを一覧表示するかどうか)
foreach (IListBlobItem item in container.ListBlobs(null, false))
{
// CloudBlockBlob型にキャスト
CloudBlockBlob blob = (CloudBlockBlob)item;
// ファイル名
string fileName = blob.Name;
// ファイル内容
var fileContents = blob.DownloadTextAsync().Result;
}
}
}
}