示例#1
0
        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);
     }
 }