Condividi tramite


Persistenza della grana di Azure Cosmos DB for NoSQL

Il provider di persistenza della grana di Azure Cosmos DB supporta l'API per NoSQL.

Installare il pacchetto NuGet

Installare i pacchetti NuGet Microsoft.Orleans.Persistence.Cosmos e Microsoft.Orleans.Clustering.Cosmos. Il provider Azure Cosmos DB archivia lo stato in un elemento contenitore.

Importante

Per impostazione predefinita, il nome del database usato dal provider è Orleans. Per impostazione predefinita, il nome del contenitore clustering è OrleansCluster e il nome del contenitore di archiviazione è OrleansArchiviazione. Il contenitore cluster prevede un valore della chiave di partizione di /ClusterId e il contenitore di archiviazione prevede /PartitionKey.

Configurare il provider di clustering

Per configurare il provider di clustering, usare il metodo di estensione HostingExtensions.UseCosmosClustering. In questo metodo è possibile personalizzare il nome e la velocità effettiva del database o del contenitore, abilitare la creazione di risorse o configurare le credenziali del client.

siloBuilder.UseCosmosClustering(
    configureOptions: static options =>
    {
        options.IsResourceCreationEnabled = true;
        options.DatabaseName = "OrleansAlternativeDatabase";
        options.ContainerName = "OrleansClusterAlternativeContainer";
        options.ContainerThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000);
        options.ConfigureCosmosClient("<azure-cosmos-db-nosql-connection-string>");
    });

Configurare il provider di archiviazione

Configurare il provider di persistenza di Azure Cosmos DB usando il metodo di estensione HostingExtensions.AddCosmosGrainStorage.

siloBuilder.AddCosmosGrainStorage(
    name: "profileStore",
    configureOptions: static options =>
    {
        options.IsResourceCreationEnabled = true;
        options.DatabaseName = "OrleansAlternativeDatabase";
        options.ContainerName = "OrleansStorageAlternativeContainer";
        options.ContainerThroughputProperties = ThroughputProperties.CreateAutoscaleThroughput(1000);
        options.ConfigureCosmosClient("<azure-cosmos-db-nosql-connection-string>");
    });