AzureCosmosExtensions Methods
ClassMethods14 members
Extension methods for adding Azure Cosmos DB resources to the application model.
AddAzureCosmosDB(IDistributedApplicationBuilder, string)Section titled AddAzureCosmosDB(IDistributedApplicationBuilder, string)extensionIResourceBuilder<AzureCosmosDBResource> Adds an Azure Cosmos DB connection to the application model.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBResource> AddAzureCosmosDB( this IDistributedApplicationBuilder builder, string name) { // ... }}Parameters
builderIDistributedApplicationBuilderThe Hosting.IDistributedApplicationBuilder.namestringThe name of the resource. This name will be used as the connection string name when referenced in a dependency.Returns
IResourceBuilder<AzureCosmosDBResource>A reference to the ApplicationModel.IResourceBuilder`1.AddContainer(IResourceBuilder<AzureCosmosDBDatabaseResource>, string, string, string?)Section titled AddContainer(IResourceBuilder<AzureCosmosDBDatabaseResource>, string, string, string?)extensionIResourceBuilder<AzureCosmosDBContainerResource> Adds a container to the associated Cosmos DB database resource.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBContainerResource> AddContainer( this IResourceBuilder<AzureCosmosDBDatabaseResource> builder, string name, string partitionKeyPath, string? containerName = null) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBDatabaseResource>CosmosDBDatabase resource builder.namestringName of container resource.partitionKeyPathstringPartition key path for the container.containerNamestring?optionalThe name of the container. If not provided, this defaults to the same value as name.Returns
IResourceBuilder<AzureCosmosDBContainerResource>A reference to the ApplicationModel.IResourceBuilder`1.AddContainer(IResourceBuilder<AzureCosmosDBDatabaseResource>, string, IEnumerable<string>, string?)Section titled AddContainer(IResourceBuilder<AzureCosmosDBDatabaseResource>, string, IEnumerable<string>, string?)extensionIResourceBuilder<AzureCosmosDBContainerResource> Adds a container to the associated Cosmos DB database resource with hierarchical partition keys.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBContainerResource> AddContainer( this IResourceBuilder<AzureCosmosDBDatabaseResource> builder, string name, IEnumerable<string> partitionKeyPaths, string? containerName = null) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBDatabaseResource>CosmosDBDatabase resource builder.namestringName of container resource.partitionKeyPathsIEnumerable<string>Hierarchical partition key paths for the container.containerNamestring?optionalThe name of the container. If not provided, this defaults to the same value as name.Returns
IResourceBuilder<AzureCosmosDBContainerResource>A reference to the ApplicationModel.IResourceBuilder`1.AddCosmosDatabase(IResourceBuilder<AzureCosmosDBResource>, string, string?)Section titled AddCosmosDatabase(IResourceBuilder<AzureCosmosDBResource>, string, string?)extensionIResourceBuilder<AzureCosmosDBDatabaseResource> Adds a database to the associated Cosmos DB account resource.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBDatabaseResource> AddCosmosDatabase( this IResourceBuilder<AzureCosmosDBResource> builder, string name, string? databaseName = null) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBResource>AzureCosmosDB resource builder.namestringThe name of the database resource.databaseNamestring?optionalThe name of the database. If not provided, this defaults to the same value as name.Returns
IResourceBuilder<AzureCosmosDBDatabaseResource>A reference to the ApplicationModel.IResourceBuilder`1.AddDatabase(IResourceBuilder<AzureCosmosDBResource>, string)Section titled AddDatabase(IResourceBuilder<AzureCosmosDBResource>, string)extensionIResourceBuilder<AzureCosmosDBResource> Adds a database to the associated Cosmos DB account resource.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBResource> AddDatabase( this IResourceBuilder<AzureCosmosDBResource> builder, string databaseName) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBResource>AzureCosmosDB resource builder.databaseNamestringName of database.Returns
IResourceBuilder<AzureCosmosDBResource>A reference to the ApplicationModel.IResourceBuilder`1.Remarks
This method is not available in polyglot app hosts. Use
AzureCosmosExtensions.AddCosmosDatabase instead.RunAsEmulator(IResourceBuilder<AzureCosmosDBResource>, Action<IResourceBuilder<AzureCosmosDBEmulatorResource>>)Section titled RunAsEmulator(IResourceBuilder<AzureCosmosDBResource>, Action<IResourceBuilder<AzureCosmosDBEmulatorResource>>)extensionIResourceBuilder<AzureCosmosDBResource> Configures an Azure Cosmos DB resource to be emulated using the Azure Cosmos DB emulator with the NoSQL API. This resource requires an
AzureCosmosDBResource to be added to the application model. For more information on the Azure Cosmos DB emulator, see https://learn.microsoft.com/azure/cosmos-db/emulator#authentication. public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBResource> RunAsEmulator( this IResourceBuilder<AzureCosmosDBResource> builder, Action<IResourceBuilder<AzureCosmosDBEmulatorResource>>? configureContainer = null) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBResource>The Azure Cosmos DB resource builder.configureContainerAction<IResourceBuilder<AzureCosmosDBEmulatorResource>>optionalCallback that exposes underlying container used for emulation to allow for customization.Returns
IResourceBuilder<AzureCosmosDBResource>A reference to the ApplicationModel.IResourceBuilder`1.Remarks
When using the Azure Cosmos DB emulator, the container requires a TLS/SSL certificate. For more information, see https://learn.microsoft.com/azure/cosmos-db/how-to-develop-emulator?tabs=docker-linux#export-the-emulators-tlsssl-certificate. This version of the package defaults to the tag of the / container image.
RunAsPreviewEmulator(IResourceBuilder<AzureCosmosDBResource>, Action<IResourceBuilder<AzureCosmosDBEmulatorResource>>)Section titled RunAsPreviewEmulator(IResourceBuilder<AzureCosmosDBResource>, Action<IResourceBuilder<AzureCosmosDBEmulatorResource>>)extensionIResourceBuilder<AzureCosmosDBResource> Configures an Azure Cosmos DB resource to be emulated using the Azure Cosmos DB Linux-based emulator (preview) with the NoSQL API. This resource requires an
AzureCosmosDBResource to be added to the application model. For more information on the Azure Cosmos DB emulator, see https://learn.microsoft.com/azure/cosmos-db/emulator-linux. public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBResource> RunAsPreviewEmulator( this IResourceBuilder<AzureCosmosDBResource> builder, Action<IResourceBuilder<AzureCosmosDBEmulatorResource>>? configureContainer = null) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBResource>The Azure Cosmos DB resource builder.configureContainerAction<IResourceBuilder<AzureCosmosDBEmulatorResource>>optionalCallback that exposes underlying container used for emulation to allow for customization.Returns
IResourceBuilder<AzureCosmosDBResource>A reference to the ApplicationModel.IResourceBuilder`1.Remarks
This version of the package defaults to the tag of the / container image.
WithAccessKeyAuthentication(IResourceBuilder<AzureCosmosDBResource>)Section titled WithAccessKeyAuthentication(IResourceBuilder<AzureCosmosDBResource>)extensionIResourceBuilder<AzureCosmosDBResource> Configures the resource to use access key authentication with Azure Cosmos DB.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBResource> WithAccessKeyAuthentication( this IResourceBuilder<AzureCosmosDBResource> builder) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBResource>The Azure Cosmos DB resource builder.Returns
IResourceBuilder<AzureCosmosDBResource>A reference to the ApplicationModel.IResourceBuilder`1 builder.Remarks
The following example creates an Azure Cosmos DB resource that uses access key authentication.
var builder = DistributedApplication.CreateBuilder(args);
var cosmosdb = builder.AddAzureCosmosDB("cache") .WithAccessKeyAuthentication();
builder.AddProject<Projects.ProductService>() .WithReference(cosmosdb);
builder.Build().Run();WithAccessKeyAuthentication(IResourceBuilder<AzureCosmosDBResource>, IResourceBuilder<IAzureKeyVaultResource>)Section titled WithAccessKeyAuthentication(IResourceBuilder<AzureCosmosDBResource>, IResourceBuilder<IAzureKeyVaultResource>)extensionIResourceBuilder<AzureCosmosDBResource> Configures the resource to use access key authentication with Azure Cosmos DB.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBResource> WithAccessKeyAuthentication( this IResourceBuilder<AzureCosmosDBResource> builder, IResourceBuilder<IAzureKeyVaultResource> keyVaultBuilder) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBResource>The Azure Cosmos DB resource builder.keyVaultBuilderIResourceBuilder<IAzureKeyVaultResource>The Azure Key Vault resource builder where the connection string used to connect to this AzureCosmosDBResource will be stored.Returns
IResourceBuilder<AzureCosmosDBResource>A reference to the ApplicationModel.IResourceBuilder`1 builder.WithDataExplorer(IResourceBuilder<AzureCosmosDBEmulatorResource>, int?)Section titled WithDataExplorer(IResourceBuilder<AzureCosmosDBEmulatorResource>, int?)extensionIResourceBuilder<AzureCosmosDBEmulatorResource> Configures the Azure Cosmos DB preview emulator to expose the Data Explorer endpoint.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBEmulatorResource> WithDataExplorer( this IResourceBuilder<AzureCosmosDBEmulatorResource> builder, int? port = null) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBEmulatorResource>Builder for the Cosmos emulator containerportint?optionalOptional host port to bind the Data Explorer to.Returns
IResourceBuilder<AzureCosmosDBEmulatorResource>Cosmos emulator resource builder.Remarks
The Data Explorer is only available with
AzureCosmosExtensions.RunAsPreviewEmulator. WithDataVolume(IResourceBuilder<AzureCosmosDBEmulatorResource>, string?)Section titled WithDataVolume(IResourceBuilder<AzureCosmosDBEmulatorResource>, string?)extensionIResourceBuilder<AzureCosmosDBEmulatorResource> Adds a named volume for the data folder to an Azure Cosmos DB emulator resource.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBEmulatorResource> WithDataVolume( this IResourceBuilder<AzureCosmosDBEmulatorResource> builder, string? name = null) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBEmulatorResource>The builder for the AzureCosmosDBEmulatorResource.namestring?optionalThe name of the volume. Defaults to an auto-generated name based on the application and resource names.Returns
IResourceBuilder<AzureCosmosDBEmulatorResource>A builder for the AzureCosmosDBEmulatorResource.WithDefaultAzureSku(IResourceBuilder<AzureCosmosDBResource>)Section titled WithDefaultAzureSku(IResourceBuilder<AzureCosmosDBResource>)extensionIResourceBuilder<AzureCosmosDBResource> Configures the Azure Cosmos DB resource to be deployed use the default SKU provided by Azure.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBResource> WithDefaultAzureSku( this IResourceBuilder<AzureCosmosDBResource> builder) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBResource>The builder for the Azure Cosmos DB resource.Returns
IResourceBuilder<AzureCosmosDBResource>A reference to the ApplicationModel.IResourceBuilder`1.WithGatewayPort(IResourceBuilder<AzureCosmosDBEmulatorResource>, int?)Section titled WithGatewayPort(IResourceBuilder<AzureCosmosDBEmulatorResource>, int?)extensionIResourceBuilder<AzureCosmosDBEmulatorResource> Configures the gateway port for the Azure Cosmos DB emulator.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBEmulatorResource> WithGatewayPort( this IResourceBuilder<AzureCosmosDBEmulatorResource> builder, int? port) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBEmulatorResource>Builder for the Cosmos emulator containerportint?Host port to bind to the emulator gateway port.Returns
IResourceBuilder<AzureCosmosDBEmulatorResource>Cosmos emulator resource builder.WithPartitionCount(IResourceBuilder<AzureCosmosDBEmulatorResource>, int)Section titled WithPartitionCount(IResourceBuilder<AzureCosmosDBEmulatorResource>, int)extensionIResourceBuilder<AzureCosmosDBEmulatorResource> Configures the partition count for the Azure Cosmos DB emulator.
public static class AzureCosmosExtensions{ public static IResourceBuilder<AzureCosmosDBEmulatorResource> WithPartitionCount( this IResourceBuilder<AzureCosmosDBEmulatorResource> builder, int count) { // ... }}Parameters
builderIResourceBuilder<AzureCosmosDBEmulatorResource>Builder for the Cosmos emulator containercountintDesired partition count.Returns
IResourceBuilder<AzureCosmosDBEmulatorResource>Cosmos emulator resource builder.Remarks
Not calling this method will result in the default of 10 partitions. The actual started partitions is always one more than specified. See this documentation about setting the partition count.