public async Task <DatabaseAccountInner> CreateDatabaseAccountAsync( IResourceGroup resourceGroup, string cosmosDBAccountName, IDictionary <string, string> tags = null, CancellationToken cancellationToken = default ) { try { tags = tags ?? new Dictionary <string, string>(); Log.Information($"Creating Azure CosmosDB Account: {cosmosDBAccountName} ..."); var databaseAccountParameters = new DatabaseAccountCreateUpdateParametersInner { Location = resourceGroup.RegionName, Tags = tags, //DatabaseAccountOfferType = "Standard", Kind = DatabaseAccountKind.GlobalDocumentDB, ConsistencyPolicy = new ConsistencyPolicy { DefaultConsistencyLevel = DefaultConsistencyLevel.Strong, MaxStalenessPrefix = 10, MaxIntervalInSeconds = 5 }, Locations = new List <Location> { new Location { LocationName = resourceGroup.RegionName, FailoverPriority = 0, IsZoneRedundant = false } } }; databaseAccountParameters.Validate(); var cosmosDBAccount = await _cosmosDBManagementClient .DatabaseAccounts .CreateOrUpdateAsync( resourceGroup.Name, cosmosDBAccountName, databaseAccountParameters, cancellationToken ); Log.Information($"Created Azure CosmosDB Account: {cosmosDBAccountName}"); return(cosmosDBAccount); } catch (Exception ex) { Log.Error(ex, $"Failed to create Azure CosmosDB Account: {cosmosDBAccountName}"); throw; } }
/// <summary> /// Creates or updates an Azure Cosmos DB database account. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// Name of an Azure resource group. /// </param> /// <param name='accountName'> /// Cosmos DB database account name. /// </param> /// <param name='createUpdateParameters'> /// The parameters to provide for the current database account. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <DatabaseAccountInner> CreateOrUpdateAsync(this IDatabaseAccountsOperations operations, string resourceGroupName, string accountName, DatabaseAccountCreateUpdateParametersInner createUpdateParameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, accountName, createUpdateParameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }