CosmosDBInput Interface

Implements

java.lang.annotation.Annotation

public interface CosmosDBInput
implements java.lang.annotation.Annotation

Place this on a parameter whose value would come from CosmosDB. The parameter type can be one of the following:

  • Some native Java types such as String
  • Nullable values using Optional
  • Any POJO type

The following example shows a Java function that retrieves a single document. The function is triggered by an HTTP request that uses a query string to specify the ID to look up. That ID is used to retrieve a ToDoItem document from the specified database and collection. A sample URL would be like: http://localhost:7071/api/getItem?id=myid.

@FunctionName("getItem")
 public String cosmosDbQueryById(
    @HttpTrigger(name = "req",
                  methods = {HttpMethod.GET},
                  authLevel = AuthorizationLevel.ANONYMOUS) Optional<String> dummy,
    @CosmosDBInput(name = "database",
                      databaseName = "ToDoList",
                      collectionName = "Items",
                      id = "{Query.id}",
                      connectionStringSetting = "AzureCosmosDBConnection") Optional<String> item
 ) {
     return item.orElse("Not found");
 }

Method Summary

Modifier and Type Method and Description
abstract java.lang.String collectionName()

Defines the collection name of the CosmosDB to which to bind.

abstract java.lang.String connectionStringSetting()

Defines the app setting name that contains the CosmosDB connection string.

abstract java.lang.String dataType()

Defines how Functions runtime should treat the parameter value.

abstract java.lang.String databaseName()

Defines the database name of the CosmosDB to which to bind.

abstract java.lang.String id()

Defines the ID of the CosmosDB to which to bind.

abstract java.lang.String name()

The variable name used in function.json.

abstract java.lang.String partitionKey()

Defines partition key value for the lookup.

abstract java.lang.String sqlQuery()

Defines the SQL query string to which to bind.

Method Details

collectionName

public abstract String collectionName()

Defines the collection name of the CosmosDB to which to bind.

Returns:

The collection name string.

connectionStringSetting

public abstract String connectionStringSetting()

Defines the app setting name that contains the CosmosDB connection string.

Returns:

The app setting name of the connection string.

dataType

public abstract String dataType()

Defines how Functions runtime should treat the parameter value. Possible values are:

  • "": get the value as a string, and try to deserialize to actual parameter type like POJO
  • string: always get the value as a string
  • binary: get the value as a binary data, and try to deserialize to actual parameter type byte[]

Returns:

The dataType which will be used by the Functions runtime.

databaseName

public abstract String databaseName()

Defines the database name of the CosmosDB to which to bind.

Returns:

The database name string.

id

public abstract String id()

Defines the ID of the CosmosDB to which to bind.

Returns:

The ID string.

name

public abstract String name()

The variable name used in function.json.

Returns:

The variable name used in function.json.

partitionKey

public abstract String partitionKey()

Defines partition key value for the lookup. May include binding parameters.

Returns:

partition key value

sqlQuery

public abstract String sqlQuery()

Defines the SQL query string to which to bind.

Returns:

The SQL query string.

Applies to