in azure/functions/decorators/function_app.py [0:0]
def cosmos_db_trigger(self,
arg_name: str,
connection: str,
database_name: str,
container_name: str,
lease_connection: Optional[str] = None,
lease_database_name: Optional[str] = None,
lease_container_name: Optional[str] = None,
create_lease_container_if_not_exists: Optional[
bool] = None,
leases_container_throughput: Optional[int] = None,
lease_container_prefix: Optional[str] = None,
feed_poll_delay: Optional[int] = None,
lease_acquire_interval: Optional[int] = None,
lease_expiration_interval: Optional[int] = None,
lease_renew_interval: Optional[int] = None,
max_items_per_invocation: Optional[int] = None,
start_from_beginning: Optional[time] = None,
start_from_time: Optional[time] = None,
preferred_locations: Optional[str] = None,
data_type: Optional[
Union[DataType, str]] = None,
**kwargs: Any) -> \
Callable[..., Any]:
"""The cosmos_db_trigger decorator adds :class:`CosmosDBTrigger`
to the :class:`FunctionBuilder` object
for building :class:`Function` object used in worker function
indexing model. This decorator will work only with extension bundle 4.x
and above. For additional details, please refer
https://aka.ms/cosmosdb-v4-update.
This is equivalent to defining CosmosDBTrigger in the function.json
which enables function to be triggered when CosmosDB data is changed.
All optional fields will be given default value by function host when
they are parsed by function host.
Ref: https://aka.ms/azure-function-binding-cosmosdb-v4
:param arg_name: The name of the variable that represents
:class:`DocumentList` object in function code
:param connection: The name of an app setting or setting collection
that specifies how to connect to the Azure Cosmos DB account being
monitored.
:param database_name: The name of the Azure Cosmos DB database with
the collection being monitored
:param container_name: The name of the container being monitored
:param lease_connection: (Optional) The name of an app setting or
setting container that specifies how to connect to the Azure Cosmos
DB account that holds the lease container
:param lease_database_name: The name of the database that holds the
collection used to store leases
:param lease_container_name: (Optional) The name of the container used
to store leases. When not set, the value leases is used
:param create_lease_container_if_not_exists: (Optional) When set to
true, the leases container is automatically created when it doesn't
already exist. The default value is false. When using Azure AD
identities if you set the value to true, creating containers is not an
allowed operation and your Function won't be able to start
:param leases_container_throughput: (Optional) Defines the number of
Request Units to assign when the leases container is created. This
setting is only used when createLeaseContainerIfNotExists is set to
true. This parameter is automatically set when the binding is created
using the portal
:param lease_container_prefix: (Optional) When set, the value is added
as a prefix to the leases created in the Lease container for this
function. Using a prefix allows two separate Azure Functions to share
the same Lease container by using different prefixes
:param feed_poll_delay: The time (in milliseconds) for the delay
between polling a partition for new changes on the feed, after all
current changes are drained
:param lease_acquire_interval: When set, it defines,
in milliseconds, the interval to kick off a task to compute if
partitions are distributed evenly among known host instances
:param lease_expiration_interval: When set, it defines,
in milliseconds, the interval for which the lease is taken on a
lease representing a partition
:param lease_renew_interval: When set, it defines, in milliseconds,
the renew interval for all leases for partitions currently held by
an instance
:param max_items_per_invocation: When set, this property sets the
maximum number of items received per Function call
:param start_from_beginning: This option tells the Trigger to read
changes from the beginning of the collection's change history
instead of starting at the current time
:param start_from_time: (Optional) Gets or sets the date and time from
which to initialize the change feed read operation. The recommended
format is ISO 8601 with the UTC designator, such as
2021-02-16T14:19:29Z. This is only used to set the initial trigger
state. After the trigger has a lease state, changing this value has
no effect
:param preferred_locations: Defines preferred locations (regions)
for geo-replicated database accounts in the Azure Cosmos DB service
:param data_type: Defines how Functions runtime should treat the
parameter value
:param kwargs: Keyword arguments for specifying additional binding
fields to include in the binding json
:return: Decorator function.
"""
trigger = CosmosDBTrigger(
name=arg_name,
connection=connection,
database_name=database_name,
container_name=container_name,
lease_connection=lease_connection,
lease_database_name=lease_database_name,
lease_container_name=lease_container_name,
create_lease_container_if_not_exists=create_lease_container_if_not_exists, # NoQA
leases_container_throughput=leases_container_throughput,
lease_container_prefix=lease_container_prefix,
feed_poll_delay=feed_poll_delay,
lease_acquire_interval=lease_acquire_interval,
lease_expiration_interval=lease_expiration_interval,
lease_renew_interval=lease_renew_interval,
max_items_per_invocation=max_items_per_invocation,
start_from_beginning=start_from_beginning,
start_from_time=start_from_time,
preferred_locations=preferred_locations,
data_type=parse_singular_param_to_enum(data_type, DataType),
**kwargs)
@self._configure_function_builder
def wrap(fb):
def decorator():
fb.add_trigger(trigger=trigger)
return fb
return decorator()
return wrap