Compartilhar via


Persistência de granularidade do Azure Cosmos DB for NoSQL

O provedor de persistência de granularidade do Azure Cosmos DB dá suporte à API para NoSQL.

Instalar pacote NuGet

Instale os Pacotes NuGet Microsoft.Orleans.Persistence.Cosmos e Microsoft.Orleans.Clustering.Cosmos. O provedor do Azure Cosmos DB armazena o estado em um item de contêiner.

Importante

O nome do banco de dados padrão usado pelo provedor é Orleans. O nome do contêiner de clustering padrão é OrleansCluster e o nome do contêiner de armazenamento padrão é OrleansStorage. O contêiner de cluster espera um valor de chave de partição /ClusterId e o contêiner de armazenamento espera /PartitionKey.

Configurar o provedor de clustering

Para configurar o provedor de clustering, use o método de extensão HostingExtensions.UseCosmosClustering. Nesse método, você pode personalizar o nome e a taxa de transferência do banco de dados ou contêiner, habilitar a criação de recursos ou configurar as credenciais do cliente.

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>");
    });

Configurar o provedor de armazenamento

Configure o provedor de persistência de granularidade do Azure Cosmos DB usando o método de extensão 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>");
    });