Azure Cosmos DB を使用するアプリケーションでマルチマスターを構成するConfigure multi-master in your applications that use Azure Cosmos DB

複数の書き込みリージョンが有効なアカウントが作成されたら、お使いのアプリケーションで DocumentClient 用の ConnectionPolicy に対して 2 つの変更を行って、Azure Cosmos DB でマルチマスター機能とマルチホーミング機能を有効にする必要があります。Once an account has been created with multiple write regions enabled, you must make two changes in your application to the ConnectionPolicy for the DocumentClient to enable the multi-master and multi-homing capabilities in Azure Cosmos DB. ConnectionPolicy の中で、UseMultipleWriteLocations を true に設定し、アプリケーションのデプロイ先となるリージョンの名前を SetCurrentLocation に渡します。Within the ConnectionPolicy, set UseMultipleWriteLocations to true and pass the name of the region where the application is deployed to SetCurrentLocation. これにより、渡された場所との地理的な近接性に基づいて PreferredLocations プロパティが設定されます。This will populate the PreferredLocations property based on the geo-proximity from location passed in. 後で新しいリージョンがアカウントに追加された場合でも、アプリケーションの更新や再デプロイを行う必要はなく、近接するリージョンが自動的に検出され、リージョンのイベントが発生した場合は自動ホーミングが実行されます。If a new region is later added to the account, the application does not have to be updated or redeployed, it will automatically detect the closer region and will auto-home on to it should a regional event occur.

注意

初期構成が単一書き込みリージョンである Cosmos アカウントを、ダウンタイムなしで複数書き込みリージョン (つまりマルチマスター) に構成できます。Cosmos accounts initially configured with single write region can be configured to multiple write regions (i.e. multi-master) with zero down time. 詳細については、複数書き込みリージョンの構成に関する記事を参照してください。To learn more see, Configure multiple-write regions

.NET SDK v2.NET SDK v2

アプリケーションでマルチマスターを有効にするには、UseMultipleWriteLocationstrue に設定します。To enable multi-master in your application, set UseMultipleWriteLocations to true. また、SetCurrentLocation は、アプリケーションがデプロイされ、Azure Cosmos DB がレプリケートされているリージョンに設定します。Also, set SetCurrentLocation to the region in which the application is being deployed and where Azure Cosmos DB is replicated:

ConnectionPolicy policy = new ConnectionPolicy
    {
        ConnectionMode = ConnectionMode.Direct,
        ConnectionProtocol = Protocol.Tcp,
        UseMultipleWriteLocations = true
    };
policy.SetCurrentLocation("West US 2");

.NET SDK v3.NET SDK v3

アプリケーションでマルチマスターを有効にするには、ApplicationRegion を、アプリケーションがデプロイされ、Cosmos DB がレプリケートされているリージョンに設定します。To enable multi-master in your application, set ApplicationRegion to the region in which the application is being deployed and where Cosmos DB is replicated:

CosmosClient cosmosClient = new CosmosClient(
    "<connection-string-from-portal>", 
    new CosmosClientOptions()
    {
        ApplicationRegion = Regions.WestUS2,
    });

必要な場合は、CosmosClientBuilderWithApplicationRegion を使用して同じ結果を得ることもできます。Optionally, you can use the CosmosClientBuilder and WithApplicationRegion to achieve the same result:

CosmosClientBuilder cosmosClientBuilder = new CosmosClientBuilder("<connection-string-from-portal>")
            .WithApplicationRegion(Regions.WestUS2);
CosmosClient client = cosmosClientBuilder.Build();

Java Async SDKJava Async SDK

アプリケーションでマルチマスターを有効にするには、policy.setUsingMultipleWriteLocations(true) を設定し、policy.setPreferredLocations は、アプリケーションがデプロイされ、Cosmos DB がレプリケートされているリージョンに設定します。To enable multi-master in your application, set policy.setUsingMultipleWriteLocations(true) and set policy.setPreferredLocations to the region in which the application is being deployed and where Cosmos DB is replicated:

ConnectionPolicy policy = new ConnectionPolicy();
policy.setUsingMultipleWriteLocations(true);
policy.setPreferredLocations(Collections.singletonList(region));

AsyncDocumentClient client =
    new AsyncDocumentClient.Builder()
        .withMasterKeyOrResourceToken(this.accountKey)
        .withServiceEndpoint(this.accountEndpoint)
        .withConsistencyLevel(ConsistencyLevel.Eventual)
        .withConnectionPolicy(policy).build();

Node.js、JavaScript、および TypeScript SDKNode.js, JavaScript, and TypeScript SDKs

アプリケーションでマルチマスターを有効にするには、connectionPolicy.UseMultipleWriteLocationstrue に設定します。To enable multi-master in your application, set connectionPolicy.UseMultipleWriteLocations to true. また、connectionPolicy.PreferredLocations は、アプリケーションがデプロイされ、Cosmos DB がレプリケートされているリージョンに設定します。Also, set connectionPolicy.PreferredLocations to the region in which the application is being deployed and where Cosmos DB is replicated:

const connectionPolicy: ConnectionPolicy = new ConnectionPolicy();
connectionPolicy.UseMultipleWriteLocations = true;
connectionPolicy.PreferredLocations = [region];

const client = new CosmosClient({
  endpoint: config.endpoint,
  auth: { masterKey: config.key },
  connectionPolicy,
  consistencyLevel: ConsistencyLevel.Eventual
});

Python SDKPython SDK

アプリケーションでマルチマスターを有効にするには、connection_policy.UseMultipleWriteLocationstrue に設定します。To enable multi-master in your application, set connection_policy.UseMultipleWriteLocations to true. また、connection_policy.PreferredLocations は、アプリケーションがデプロイされ、Cosmos DB がレプリケートされているリージョンに設定します。Also, set connection_policy.PreferredLocations to the region in which the application is being deployed and where Cosmos DB is replicated.

connection_policy = documents.ConnectionPolicy()
connection_policy.UseMultipleWriteLocations = True
connection_policy.PreferredLocations = [region]

client = cosmos_client.CosmosClient(self.account_endpoint, {
                                    'masterKey': self.account_key}, connection_policy, documents.ConsistencyLevel.Session)

次の手順Next steps

次の記事を参照してください。Read the following articles: