Zum Inhalt springen

Storage Account

starlightViewModes.switchTo

Blob Storage

Ein Blob Storage ist wie ein Dateisystem aufgebaut, in welchem man Dateien hochladen, herunterladen und löschen kann. Allerdings benötigt man einen Container - eine Art root-Verzeichnis -, in welchen man alle Dateien hinein speichern kann. Theoretisch gesehen, kann man unendlich viele Container anlegen.

Terminal-Fenster
dotnet add package Azure.Storage.Blobs
var blobServiceClient = new BlobServiceClient("UseDevelopmentStorage=true");
var blobContainerClient = blobServiceClient.GetBlobContainerClient(containerName);
var blobClient = blobContainerClient.GetBlobClient(fileName);
await blobClient.UploadAsync(localFilePath, true);
// List all blobs in the container
await foreach (BlobItem blobItem in blobContainerClient.GetBlobsAsync())
{
Console.WriteLine("\t" + blobItem.Name);
}

Table Storage

Im Table Storage kann man prinzipiell jedes JSON Objekt hinein speichern. Wenn die JSON Objekte gleiche Felder haben, werden die Werte in gleichen Spalten gespeichert.

Terminal-Fenster
dotnet add package Azure.Data.Tables
var tableServiceClient = new TableServiceClient("UseDevelopmentStorage=true");
var tableClient = new TableClient("UseDevelopmentStorage=true", tableName);
var tableEntity = new TableEntity(partitionKey, "trueberryless")
{
{ "Name", "trueberryless" },
{ "DateOfBirth", "20.04.1969" }
};
await tableClient.AddEntityAsync(tableEntity);

Queue Storage

Ein Queue Storage persistiert Messages bis diese ausgelesen wurden. Dadurch wird die Koppelung des Gesamtsystems reduziert, da zwei Microservices, die ständig miteinander kommunizieren, nicht gleichzeitig laufen müssen, um Nachrichten austauschen zu können. Diese Nachrichten werden einfach im Queue Storage zwischengespeichert. Man erstellt aus quasi einen dritten Service, um zwei andere Services zu entkoppeln.

Terminal-Fenster
dotnet add package Azure.Storage.Queues
var queueServiceClient = new QueueServiceClient("UseDevelopmentStorage=true");
var queueClient = queueServiceClient.GetQueueClient(queueName);
var sendReceipt = await queueClient.SendMessageAsync("Hello, World!");