Procedura di configurazione della distribuzione globale in Azure Cosmos DB mediante l'API Graph

Questo articolo illustra come usare il portale di Azure per configurare la distribuzione globale in Azure Cosmos DB e quindi connettersi tramite l'API Graph (anteprima).

Questo articolo illustra le attività seguenti:

  • Configurare la distribuzione globale tramite il portale di Azure
  • Configurare la distribuzione globale tramite le API Graph (anteprima)

In questo video di Azure Friday, con Scott Hanselman e Karthik Raman, Principal Engineering Manager, sono disponibili altre informazioni sulla distribuzione globale in Azure Cosmos DB.

Per informazioni sul funzionamento della replica di database globale in Azure Cosmos DB, vedere Distribuire i dati a livello globale con Azure Cosmos DB.

Aggiungere aree di database globali tramite il portale di Azure

Azure Cosmos DB è disponibile in tutte le aree di Azure del mondo. Dopo aver selezionato il livello di coerenza predefinito per l'account di database, è possibile associare una o più aree, a seconda del livello di coerenza predefinito e delle esigenze di distribuzione globale scelti.

  1. Nella barra a sinistra del portale di Azure fare clic su Azure Cosmos DB.
  2. Nel pannello Azure Cosmos DB selezionare l'account di database da modificare.
  3. Nel pannello dell'account fare clic su Replica i dati a livello globale dal menu.
  4. Nel pannello Replica i dati a livello globale selezionare le aree da aggiungere o rimuovere facendo clic su di esse nella mappa e quindi scegliere Salva. L'aggiunta di aree ha un costo. Per altre informazioni, vedere la pagina relativa ai prezzi o l'articolo Distribuire i dati a livello globale con Azure Cosmos DB.

    Fare clic sulle aree nella mappa per aggiungerle o rimuoverle

Dopo l'aggiunta di una seconda area, nel pannello Replica i dati a livello globale del portale viene abilitata l'opzione Failover manuale. È possibile usare questa opzione per testare il processo di failover o per modificare l'area di scrittura primaria. Dopo avere aggiunto una terza area, l'opzione Priorità di failover viene abilitata nello stesso pannello per poter modificare l'ordine di failover per le operazioni di lettura.

Selezionare aree di database globali

Esistono due scenari comuni per la configurazione di due o più aree:

  1. Offerta di accesso con bassa latenza ai dati indipendentemente dalla posizione del mondo in cui si trovano gli utenti finali
  2. Aggiunta di resilienza a livello di area per garantire continuità aziendale e ripristino di emergenza (BCDR)

Per offrire l'accesso con bassa latenza agli utenti finali, è consigliabile distribuire l'applicazione e aggiungere Azure Cosmos DB nelle aree corrispondenti alla località in cui si trovano gli utenti dell'applicazione.

Per finalità BCDR, è consigliabile aggiungere le aree in base alle coppie di aree descritte nell'articolo Continuità aziendale e ripristino di emergenza nelle aree geografiche abbinate di Azure.

Connessione a un'area preferita tramite l'API Graph con .NET SDK

L'API Graph viene esposta come libreria di estensione oltre al DocumentDB SDK.

Per sfruttare la distribuzione globale, le applicazioni client possono specificare un elenco di aree, nell'ordine preferito, da usare per eseguire operazioni sui documenti. Questa operazione può essere eseguita impostando il criterio di connessione. A seconda della configurazione dell'account Azure Cosmos DB, della disponibilità corrente delle aree e dell'elenco delle preferenze specificato, l'SDK sceglierà l'endpoint ottimale per eseguire le operazioni di scrittura e lettura.

L'elenco delle preferenze viene specificato nella fase di inizializzazione di una connessione usando gli SDK. Gli SDK accettano il parametro facoltativo "PreferredLocations", ovvero un elenco ordinato di aree di Azure.

  • Scritture: l'SDK invia automaticamente tutte le scritture all'area di scrittura corrente.
  • Letture: tutte le letture verranno inviate alla prima area disponibile nell'elenco PreferredLocations. Se la richiesta ha esito negativo, il client trasferisce l'elenco all'area successiva e così via. Gli SDK tenteranno di leggere solo dalle aree specificate nell'elenco PreferredLocations. Quindi se l'account Cosmos DB è disponibile ad esempio in tre aree, ma il client specifica solo due delle aree di non scrittura per PreferredLocations, le letture non verranno distribuite fuori dall'area di scrittura, anche in caso di failover.

L'applicazione può verificare l'endpoint di scrittura e lettura corrente scelto dall'SDK controllando due proprietà, WriteEndpoint e ReadEndpoint, disponibili nella versione dell'SDK 1.8 e nelle versioni successive. Se la proprietà PreferredLocations non è impostata, tutte le richieste verranno distribuite dall'area di scrittura corrente.

Uso dell'SDK

Ad esempio, in .NET SDK il parametro ConnectionPolicy per il costruttore DocumentClient dispone di una proprietà denominata PreferredLocations. È possibile impostare questa proprietà su un elenco di nomi di aree. I nomi visualizzati per le aree di Azure possono essere specificati come parte di PreferredLocations.

Nota

Gli URL per gli endpoint non devono essere considerati come costanti di lunga durata. Il servizio può aggiornare gli URL in qualsiasi momento. L'SDK gestisce la modifica in modo automatico.

// Getting endpoints from application settings or other configuration location
Uri accountEndPoint = new Uri(Properties.Settings.Default.GlobalDatabaseUri);
string accountKey = Properties.Settings.Default.GlobalDatabaseKey;

ConnectionPolicy connectionPolicy = new ConnectionPolicy();

//Setting read region selection preference
connectionPolicy.PreferredLocations.Add(LocationNames.WestUS); // first preference
connectionPolicy.PreferredLocations.Add(LocationNames.EastUS); // second preference
connectionPolicy.PreferredLocations.Add(LocationNames.NorthEurope); // third preference

// initialize connection
DocumentClient docClient = new DocumentClient(
    accountEndPoint,
    accountKey,
    connectionPolicy);

// connect to Azure Cosmos DB
await docClient.OpenAsync().ConfigureAwait(false);

L'esercitazione è terminata. Per informazioni su come gestire la coerenza dell'account con replica globale, vedere Livelli di coerenza in Azure Cosmos DB. Per informazioni sul funzionamento della replica di database globale in Azure Cosmos DB, vedere Distribuire i dati a livello globale con Azure Cosmos DB.

Passaggi successivi

In questa esercitazione sono state eseguite le operazioni seguenti:

  • Configurare la distribuzione globale tramite il portale di Azure
  • Configurare la distribuzione globale tramite le API di DocumentDB

È ora possibile passare all'esercitazione successiva per imparare a sviluppare in locale usando l'emulatore locale di Azure Cosmos DB.