あなたのコードを利用してAzureサービスを初期化することができます。また、StorageClient/DocumentDbClientのシングルトンサービスを追加して、サービスが存在するかどうかを確認し、Azureサービスに対してCURD操作を実行する前に特定のリソースを作成することもできます。私のAzureBlobStorageClient
のコードスニペットはこちらを参照してください。
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
services.AddOptions();
services.Configure<AzureStorageConfig>(Configuration.GetSection("AzureStorageConfig"));
services.AddSingleton<AzureBlobStorageClient>();
services.AddMvc();
}
appsettings.json
"AzureStorageConfig": {
"AccountName": "<your-storage-account-name>",
"AccountKey": "<your-storage-account-key>"
}
AzureBlobStorageClient.cs
public class AzureBlobStorageClient
{
private CloudBlobClient _cloudBlobClient;
public AzureBlobStorageClient(IOptions<AzureStorageConfig> config)
{
var storageAccount = new CloudStorageAccount(new StorageCredentials(config.Value.AccountName, config.Value.AccountKey), true);
_cloudBlobClient=storageAccount.CreateCloudBlobClient();
}
public async Task<bool> EnsureContainer(string containerName)
{
var storageContainer = _cloudBlobClient.GetContainerReference(containerName);
return await storageContainer.CreateIfNotExistsAsync();
}
}
public class AzureStorageConfig
{
public string AccountName { get; set; }
public string AccountKey { get; set; }
}
AzureStorageController.cs
[Route("api/[controller]")]
[Authorize]
public class AzureStorageController : Controller
{
private AzureBlobStorageClient _storageClient;
public ValuesController(AzureBlobStorageClient storageClient)
{
_storageClient = storageClient;
}
[HttpGet]
public async Task<string> Get()
{
//_storageClient.EnsureContainer("<blob-container-name>");
return await Task.FromResult("hello world");
}
}